@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 PhluxVariableEditor
4 extends PhabricatorApplicationTransactionEditor {
5
6 public function getEditorApplicationClass() {
7 return PhabricatorPhluxApplication::class;
8 }
9
10 public function getEditorObjectsDescription() {
11 return pht('Phlux Variables');
12 }
13
14 public function getTransactionTypes() {
15 $types = parent::getTransactionTypes();
16 $types[] = PhluxTransaction::TYPE_EDIT_KEY;
17 $types[] = PhluxTransaction::TYPE_EDIT_VALUE;
18 $types[] = PhabricatorTransactions::TYPE_VIEW_POLICY;
19 $types[] = PhabricatorTransactions::TYPE_EDIT_POLICY;
20 return $types;
21 }
22
23 protected function getCustomTransactionOldValue(
24 PhabricatorLiskDAO $object,
25 PhabricatorApplicationTransaction $xaction) {
26 switch ($xaction->getTransactionType()) {
27 case PhluxTransaction::TYPE_EDIT_KEY:
28 return $object->getVariableKey();
29 case PhluxTransaction::TYPE_EDIT_VALUE:
30 return $object->getVariableValue();
31 }
32
33 return parent::getCustomTransactionOldValue($object, $xaction);
34 }
35
36 protected function getCustomTransactionNewValue(
37 PhabricatorLiskDAO $object,
38 PhabricatorApplicationTransaction $xaction) {
39 switch ($xaction->getTransactionType()) {
40 case PhluxTransaction::TYPE_EDIT_KEY:
41 case PhluxTransaction::TYPE_EDIT_VALUE:
42 return $xaction->getNewValue();
43 }
44 return parent::getCustomTransactionNewValue($object, $xaction);
45 }
46
47 protected function applyCustomInternalTransaction(
48 PhabricatorLiskDAO $object,
49 PhabricatorApplicationTransaction $xaction) {
50 switch ($xaction->getTransactionType()) {
51 case PhluxTransaction::TYPE_EDIT_KEY:
52 $object->setVariableKey($xaction->getNewValue());
53 return;
54 case PhluxTransaction::TYPE_EDIT_VALUE:
55 $object->setVariableValue($xaction->getNewValue());
56 return;
57 }
58 return parent::applyCustomInternalTransaction($object, $xaction);
59 }
60
61 protected function applyCustomExternalTransaction(
62 PhabricatorLiskDAO $object,
63 PhabricatorApplicationTransaction $xaction) {
64 switch ($xaction->getTransactionType()) {
65 case PhluxTransaction::TYPE_EDIT_KEY:
66 case PhluxTransaction::TYPE_EDIT_VALUE:
67 return;
68 }
69 return parent::applyCustomExternalTransaction($object, $xaction);
70 }
71
72}