Page MenuHomePhabricator

D17120.diff
No OneTemporary

D17120.diff

diff --git a/src/applications/differential/editor/DifferentialRevisionEditEngine.php b/src/applications/differential/editor/DifferentialRevisionEditEngine.php
--- a/src/applications/differential/editor/DifferentialRevisionEditEngine.php
+++ b/src/applications/differential/editor/DifferentialRevisionEditEngine.php
@@ -262,6 +262,31 @@
->attachComment($inline);
}
+ $viewer_phid = $viewer->getPHID();
+ $viewer_is_author = ($object->getAuthorPHID() == $viewer_phid);
+ if ($viewer_is_author) {
+ $state_map = PhabricatorTransactions::getInlineStateMap();
+
+ $inlines = id(new DifferentialDiffInlineCommentQuery())
+ ->setViewer($viewer)
+ ->withRevisionPHIDs(array($object->getPHID()))
+ ->withFixedStates(array_keys($state_map))
+ ->execute();
+ if ($inlines) {
+ $old_value = mpull($inlines, 'getFixedState', 'getPHID');
+ $new_value = array();
+ foreach ($old_value as $key => $state) {
+ $new_value[$key] = $state_map[$state];
+ }
+
+ $xactions[] = id(new DifferentialTransaction())
+ ->setTransactionType(PhabricatorTransactions::TYPE_INLINESTATE)
+ ->setIgnoreOnNoEffect(true)
+ ->setOldValue($old_value)
+ ->setNewValue($new_value);
+ }
+ }
+
return $xactions;
}
diff --git a/src/applications/differential/editor/DifferentialTransactionEditor.php b/src/applications/differential/editor/DifferentialTransactionEditor.php
--- a/src/applications/differential/editor/DifferentialTransactionEditor.php
+++ b/src/applications/differential/editor/DifferentialTransactionEditor.php
@@ -58,6 +58,7 @@
$types[] = PhabricatorTransactions::TYPE_COMMENT;
$types[] = PhabricatorTransactions::TYPE_VIEW_POLICY;
$types[] = PhabricatorTransactions::TYPE_EDIT_POLICY;
+ $types[] = PhabricatorTransactions::TYPE_INLINESTATE;
$types[] = DifferentialTransaction::TYPE_ACTION;
$types[] = DifferentialTransaction::TYPE_INLINE;
@@ -256,6 +257,23 @@
return parent::applyCustomInternalTransaction($object, $xaction);
}
+ protected function expandTransactions(
+ PhabricatorLiskDAO $object,
+ array $xactions) {
+
+ // If we have an "Inline State" transaction already, the caller built it
+ // for us so we don't need to expand it again.
+ foreach ($xactions as $xaction) {
+ switch ($xaction->getTransactionType()) {
+ case PhabricatorTransactions::TYPE_INLINESTATE:
+ $this->didExpandInlineState = true;
+ break;
+ }
+ }
+
+ return parent::expandTransactions($object, $xactions);
+ }
+
protected function expandTransaction(
PhabricatorLiskDAO $object,
PhabricatorApplicationTransaction $xaction) {

File Metadata

Mime Type
text/plain
Expires
Sat, Feb 1, 11:44 PM (7 h, 52 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7083123
Default Alt Text
D17120.diff (2 KB)

Event Timeline