@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.)
hq.recaptime.dev/wiki/Phorge
phorge
phabricator
1<?php
2
3final class HarbormasterBuildStepEditor
4 extends PhabricatorApplicationTransactionEditor {
5
6 public function getEditorApplicationClass() {
7 return PhabricatorHarbormasterApplication::class;
8 }
9
10 public function getEditorObjectsDescription() {
11 return pht('Harbormaster Build Steps');
12 }
13
14 public function getTransactionTypes() {
15 $types = parent::getTransactionTypes();
16
17 $types[] = HarbormasterBuildStepTransaction::TYPE_CREATE;
18 $types[] = HarbormasterBuildStepTransaction::TYPE_NAME;
19 $types[] = HarbormasterBuildStepTransaction::TYPE_DEPENDS_ON;
20 $types[] = HarbormasterBuildStepTransaction::TYPE_DESCRIPTION;
21
22 return $types;
23 }
24
25 protected function getCustomTransactionOldValue(
26 PhabricatorLiskDAO $object,
27 PhabricatorApplicationTransaction $xaction) {
28
29 switch ($xaction->getTransactionType()) {
30 case HarbormasterBuildStepTransaction::TYPE_CREATE:
31 return null;
32 case HarbormasterBuildStepTransaction::TYPE_NAME:
33 if ($this->getIsNewObject()) {
34 return null;
35 }
36 return $object->getName();
37 case HarbormasterBuildStepTransaction::TYPE_DEPENDS_ON:
38 if ($this->getIsNewObject()) {
39 return null;
40 }
41 return $object->getDetail('dependsOn', array());
42 case HarbormasterBuildStepTransaction::TYPE_DESCRIPTION:
43 if ($this->getIsNewObject()) {
44 return null;
45 }
46 return $object->getDescription();
47 }
48
49 return parent::getCustomTransactionOldValue($object, $xaction);
50 }
51
52 protected function getCustomTransactionNewValue(
53 PhabricatorLiskDAO $object,
54 PhabricatorApplicationTransaction $xaction) {
55
56 switch ($xaction->getTransactionType()) {
57 case HarbormasterBuildStepTransaction::TYPE_CREATE:
58 return true;
59 case HarbormasterBuildStepTransaction::TYPE_NAME:
60 case HarbormasterBuildStepTransaction::TYPE_DEPENDS_ON:
61 case HarbormasterBuildStepTransaction::TYPE_DESCRIPTION:
62 return $xaction->getNewValue();
63 }
64
65 return parent::getCustomTransactionNewValue($object, $xaction);
66 }
67
68 protected function applyCustomInternalTransaction(
69 PhabricatorLiskDAO $object,
70 PhabricatorApplicationTransaction $xaction) {
71
72 switch ($xaction->getTransactionType()) {
73 case HarbormasterBuildStepTransaction::TYPE_CREATE:
74 return;
75 case HarbormasterBuildStepTransaction::TYPE_NAME:
76 return $object->setName($xaction->getNewValue());
77 case HarbormasterBuildStepTransaction::TYPE_DEPENDS_ON:
78 return $object->setDetail('dependsOn', $xaction->getNewValue());
79 case HarbormasterBuildStepTransaction::TYPE_DESCRIPTION:
80 return $object->setDescription($xaction->getNewValue());
81 }
82
83 return parent::applyCustomInternalTransaction($object, $xaction);
84 }
85
86 protected function applyCustomExternalTransaction(
87 PhabricatorLiskDAO $object,
88 PhabricatorApplicationTransaction $xaction) {
89
90 switch ($xaction->getTransactionType()) {
91 case HarbormasterBuildStepTransaction::TYPE_CREATE:
92 case HarbormasterBuildStepTransaction::TYPE_NAME:
93 case HarbormasterBuildStepTransaction::TYPE_DEPENDS_ON:
94 case HarbormasterBuildStepTransaction::TYPE_DESCRIPTION:
95 return;
96 }
97
98 return parent::applyCustomExternalTransaction($object, $xaction);
99 }
100
101}