Page MenuHomePhabricator

D8284.diff
No OneTemporary

D8284.diff

Index: resources/celerity/map.php
===================================================================
--- resources/celerity/map.php
+++ resources/celerity/map.php
@@ -407,7 +407,7 @@
'rsrc/js/application/search/behavior-reorder-queries.js' => '34397f68',
'rsrc/js/application/slowvote/behavior-slowvote-embed.js' => 'a51fdb2e',
'rsrc/js/application/transactions/behavior-transaction-comment-form.js' => '9084a36f',
- 'rsrc/js/application/transactions/behavior-transaction-list.js' => 'bfb45968',
+ 'rsrc/js/application/transactions/behavior-transaction-list.js' => '3c918aa8',
'rsrc/js/application/uiexample/JavelinViewExample.js' => 'd4a14807',
'rsrc/js/application/uiexample/ReactorButtonExample.js' => '44524435',
'rsrc/js/application/uiexample/ReactorCheckboxExample.js' => '7ba325ee',
@@ -598,7 +598,7 @@
'javelin-behavior-phabricator-show-all-transactions' => '7c273581',
'javelin-behavior-phabricator-tooltips' => 'e5dd1c6d',
'javelin-behavior-phabricator-transaction-comment-form' => '9084a36f',
- 'javelin-behavior-phabricator-transaction-list' => 'bfb45968',
+ 'javelin-behavior-phabricator-transaction-list' => '3c918aa8',
'javelin-behavior-phabricator-watch-anchor' => '06e05112',
'javelin-behavior-phame-post-preview' => '61d927ec',
'javelin-behavior-pholio-mock-edit' => '1e1e8bb0',
@@ -1057,6 +1057,14 @@
2 => 'javelin-util',
3 => 'javelin-request',
),
+ '3c918aa8' =>
+ array(
+ 0 => 'javelin-behavior',
+ 1 => 'javelin-stratcom',
+ 2 => 'javelin-workflow',
+ 3 => 'javelin-dom',
+ 4 => 'javelin-fx',
+ ),
'403a3dce' =>
array(
0 => 'javelin-install',
@@ -1592,14 +1600,6 @@
1 => 'javelin-dom',
2 => 'javelin-reactor-dom',
),
- 'bfb45968' =>
- array(
- 0 => 'javelin-behavior',
- 1 => 'javelin-stratcom',
- 2 => 'javelin-workflow',
- 3 => 'javelin-dom',
- 4 => 'javelin-fx',
- ),
'c01153ea' =>
array(
0 => 'javelin-behavior',
Index: src/applications/config/storage/PhabricatorConfigTransaction.php
===================================================================
--- src/applications/config/storage/PhabricatorConfigTransaction.php
+++ src/applications/config/storage/PhabricatorConfigTransaction.php
@@ -89,12 +89,10 @@
$new_text = PhabricatorConfigJSON::prettyPrintJSON($new['value']);
}
- $view = id(new PhabricatorApplicationTransactionTextDiffDetailView())
- ->setUser($viewer)
- ->setOldText($old_text)
- ->setNewText($new_text);
-
- return $view->render();
+ return $this->renderTextCorpusChangeDetails(
+ $viewer,
+ $old_text,
+ $new_text);
}
public function getColor() {
Index: src/applications/differential/customfield/DifferentialSummaryField.php
===================================================================
--- src/applications/differential/customfield/DifferentialSummaryField.php
+++ src/applications/differential/customfield/DifferentialSummaryField.php
@@ -64,6 +64,18 @@
$xaction->renderHandleLink($object_phid));
}
- // TODO: Support hasChangeDetails() in CustomFields.
+ public function getApplicationTransactionHasChangeDetails(
+ PhabricatorApplicationTransaction $xaction) {
+ return true;
+ }
+
+ public function getApplicationTransactionChangeDetails(
+ PhabricatorApplicationTransaction $xaction,
+ PhabricatorUser $viewer) {
+ return $xaction->renderTextCorpusChangeDetails(
+ $viewer,
+ $xaction->getOldValue(),
+ $xaction->getNewValue());
+ }
}
Index: src/applications/legalpad/storage/LegalpadTransaction.php
===================================================================
--- src/applications/legalpad/storage/LegalpadTransaction.php
+++ src/applications/legalpad/storage/LegalpadTransaction.php
@@ -68,15 +68,10 @@
}
public function renderChangeDetails(PhabricatorUser $viewer) {
- $old = $this->getOldValue();
- $new = $this->getNewValue();
-
- $view = id(new PhabricatorApplicationTransactionTextDiffDetailView())
- ->setUser($viewer)
- ->setOldText($old)
- ->setNewText($new);
-
- return $view->render();
+ return $this->renderTextCorpusChangeDetails(
+ $viewer,
+ $this->getOldValue(),
+ $this->getNewValue());
}
}
Index: src/applications/maniphest/storage/ManiphestTransaction.php
===================================================================
--- src/applications/maniphest/storage/ManiphestTransaction.php
+++ src/applications/maniphest/storage/ManiphestTransaction.php
@@ -631,17 +631,10 @@
}
public function renderChangeDetails(PhabricatorUser $viewer) {
- $old = $this->getOldValue();
- $new = $this->getNewValue();
-
- require_celerity_resource('differential-changeset-view-css');
-
- $view = id(new PhabricatorApplicationTransactionTextDiffDetailView())
- ->setUser($viewer)
- ->setOldText($old)
- ->setNewText($new);
-
- return $view->render();
+ return $this->renderTextCorpusChangeDetails(
+ $viewer,
+ $this->getOldValue(),
+ $this->getNewValue());
}
public function getMailTags() {
Index: src/applications/passphrase/storage/PassphraseCredentialTransaction.php
===================================================================
--- src/applications/passphrase/storage/PassphraseCredentialTransaction.php
+++ src/applications/passphrase/storage/PassphraseCredentialTransaction.php
@@ -91,15 +91,10 @@
}
public function renderChangeDetails(PhabricatorUser $viewer) {
- $old = $this->getOldValue();
- $new = $this->getNewValue();
-
- $view = id(new PhabricatorApplicationTransactionTextDiffDetailView())
- ->setUser($viewer)
- ->setOldText(json_encode($old))
- ->setNewText(json_encode($new));
-
- return $view->render();
+ return $this->renderTextCorpusChangeDetails(
+ $viewer,
+ json_encode($this->getOldValue()),
+ json_encode($this->getNewValue()));
}
Index: src/applications/phlux/storage/PhluxTransaction.php
===================================================================
--- src/applications/phlux/storage/PhluxTransaction.php
+++ src/applications/phlux/storage/PhluxTransaction.php
@@ -43,15 +43,10 @@
}
public function renderChangeDetails(PhabricatorUser $viewer) {
- $old = $this->getOldValue();
- $new = $this->getNewValue();
-
- $view = id(new PhabricatorApplicationTransactionTextDiffDetailView())
- ->setUser($viewer)
- ->setOldText(json_encode($old))
- ->setNewText(json_encode($new));
-
- return $view->render();
+ return $this->renderTextCorpusChangeDetails(
+ $viewer,
+ json_encode($this->getOldValue()),
+ json_encode($this->getNewValue()));
}
Index: src/applications/pholio/storage/PholioTransaction.php
===================================================================
--- src/applications/pholio/storage/PholioTransaction.php
+++ src/applications/pholio/storage/PholioTransaction.php
@@ -283,12 +283,10 @@
$new = reset($new);
}
- $view = id(new PhabricatorApplicationTransactionTextDiffDetailView())
- ->setUser($viewer)
- ->setOldText($old)
- ->setNewText($new);
-
- return $view->render();
+ return $this->renderTextCorpusChangeDetails(
+ $viewer,
+ $old,
+ $new);
}
public function getColor() {
Index: src/applications/ponder/storage/PonderAnswerTransaction.php
===================================================================
--- src/applications/ponder/storage/PonderAnswerTransaction.php
+++ src/applications/ponder/storage/PonderAnswerTransaction.php
@@ -95,15 +95,10 @@
}
public function renderChangeDetails(PhabricatorUser $viewer) {
- $old = $this->getOldValue();
- $new = $this->getNewValue();
-
- $view = id(new PhabricatorApplicationTransactionTextDiffDetailView())
- ->setUser($viewer)
- ->setOldText($old)
- ->setNewText($new);
-
- return $view->render();
+ return $this->renderTextCorpusChangeDetails(
+ $viewer,
+ $this->getOldValue(),
+ $this->getNewValue());
}
}
Index: src/applications/ponder/storage/PonderQuestionTransaction.php
===================================================================
--- src/applications/ponder/storage/PonderQuestionTransaction.php
+++ src/applications/ponder/storage/PonderQuestionTransaction.php
@@ -135,15 +135,10 @@
}
public function renderChangeDetails(PhabricatorUser $viewer) {
- $old = $this->getOldValue();
- $new = $this->getNewValue();
-
- $view = id(new PhabricatorApplicationTransactionTextDiffDetailView())
- ->setUser($viewer)
- ->setOldText($old)
- ->setNewText($new);
-
- return $view->render();
+ return $this->renderTextCorpusChangeDetails(
+ $viewer,
+ $this->getOldValue(),
+ $this->getNewValue());
}
public function getActionStrength() {
Index: src/applications/repository/storage/PhabricatorRepositoryTransaction.php
===================================================================
--- src/applications/repository/storage/PhabricatorRepositoryTransaction.php
+++ src/applications/repository/storage/PhabricatorRepositoryTransaction.php
@@ -381,15 +381,10 @@
}
public function renderChangeDetails(PhabricatorUser $viewer) {
- $old = $this->getOldValue();
- $new = $this->getNewValue();
-
- $view = id(new PhabricatorApplicationTransactionTextDiffDetailView())
- ->setUser($viewer)
- ->setOldText($old)
- ->setNewText($new);
-
- return $view->render();
+ return $this->renderTextCorpusChangeDetails(
+ $viewer,
+ $this->getOldValue(),
+ $this->getNewValue());
}
}
Index: src/applications/slowvote/storage/PhabricatorSlowvoteTransaction.php
===================================================================
--- src/applications/slowvote/storage/PhabricatorSlowvoteTransaction.php
+++ src/applications/slowvote/storage/PhabricatorSlowvoteTransaction.php
@@ -119,15 +119,7 @@
}
public function renderChangeDetails(PhabricatorUser $viewer) {
- $old = $this->getOldValue();
- $new = $this->getNewValue();
-
- $view = id(new PhabricatorApplicationTransactionTextDiffDetailView())
- ->setUser($viewer)
- ->setOldText($old)
- ->setNewText($new);
-
- return $view->render();
+ return $this->renderTextCorpusChangeDetails($viewer);
}
Index: src/applications/transactions/storage/PhabricatorApplicationTransaction.php
===================================================================
--- src/applications/transactions/storage/PhabricatorApplicationTransaction.php
+++ src/applications/transactions/storage/PhabricatorApplicationTransaction.php
@@ -250,6 +250,29 @@
return null;
}
+ protected function getTransactionCustomField() {
+ switch ($this->getTransactionType()) {
+ case PhabricatorTransactions::TYPE_CUSTOMFIELD:
+ $key = $this->getMetadataValue('customfield:key');
+ if (!$key) {
+ return null;
+ }
+
+ $field = PhabricatorCustomField::getObjectField(
+ $this->getObject(),
+ PhabricatorCustomField::ROLE_APPLICATIONTRANSACTIONS,
+ $key);
+ if (!$field) {
+ return null;
+ }
+
+ $field->setViewer($this->getViewer());
+ return $field;
+ }
+
+ return null;
+ }
+
public function shouldHide() {
switch ($this->getTransactionType()) {
case PhabricatorTransactions::TYPE_VIEW_POLICY:
@@ -396,13 +419,8 @@
}
case PhabricatorTransactions::TYPE_CUSTOMFIELD:
- $key = $this->getMetadataValue('customfield:key');
- $field = PhabricatorCustomField::getObjectField(
- $this->getObject(),
- PhabricatorCustomField::ROLE_APPLICATIONTRANSACTIONS,
- $key);
+ $field = $this->getTransactionCustomField();
if ($field) {
- $field->setViewer($this->getViewer());
return $field->getApplicationTransactionTitle($this);
} else {
return pht(
@@ -460,13 +478,8 @@
$this->renderHandleLink($author_phid),
$this->renderHandleLink($object_phid));
case PhabricatorTransactions::TYPE_CUSTOMFIELD:
- $key = $this->getMetadataValue('customfield:key');
- $field = PhabricatorCustomField::getObjectField(
- $this->getObject(),
- PhabricatorCustomField::ROLE_APPLICATIONTRANSACTIONS,
- $key);
+ $field = $this->getTransactionCustomField();
if ($field) {
- $field->setViewer($this->getViewer());
return $field->getApplicationTransactionTitleForFeed($this, $story);
} else {
return pht(
@@ -524,11 +537,43 @@
}
public function hasChangeDetails() {
+ switch ($this->getTransactionType()) {
+ case PhabricatorTransactions::TYPE_CUSTOMFIELD:
+ $field = $this->getTransactionCustomField();
+ if ($field) {
+ return $field->getApplicationTransactionHasChangeDetails($this);
+ }
+ break;
+ }
return false;
}
public function renderChangeDetails(PhabricatorUser $viewer) {
- return null;
+ switch ($this->getTransactionType()) {
+ case PhabricatorTransactions::TYPE_CUSTOMFIELD:
+ $field = $this->getTransactionCustomField();
+ if ($field) {
+ return $field->getApplicationTransactionChangeDetails($this, $viewer);
+ }
+ break;
+ }
+
+ return $this->renderTextCorpusChangeDetails();
+ }
+
+ public function renderTextCorpusChangeDetails(
+ PhabricatorUser $viewer,
+ $old,
+ $new) {
+
+ require_celerity_resource('differential-changeset-view-css');
+
+ $view = id(new PhabricatorApplicationTransactionTextDiffDetailView())
+ ->setUser($viewer)
+ ->setOldText($old)
+ ->setNewText($new);
+
+ return $view->render();
}
public function attachTransactionGroup(array $group) {
Index: src/applications/transactions/view/PhabricatorApplicationTransactionView.php
===================================================================
--- src/applications/transactions/view/PhabricatorApplicationTransactionView.php
+++ src/applications/transactions/view/PhabricatorApplicationTransactionView.php
@@ -175,11 +175,7 @@
'a',
array(
'href' => '/transactions/detail/'.$xaction->getPHID().'/',
- 'sigil' => 'transaction-detail',
- 'mustcapture' => true,
- 'meta' => array(
- 'anchor' => $this->anchorOffset,
- ),
+ 'sigil' => 'workflow',
),
pht('(Show Details)'));
}
Index: src/infrastructure/customfield/field/PhabricatorCustomField.php
===================================================================
--- src/infrastructure/customfield/field/PhabricatorCustomField.php
+++ src/infrastructure/customfield/field/PhabricatorCustomField.php
@@ -904,6 +904,27 @@
}
+ public function getApplicationTransactionHasChangeDetails(
+ PhabricatorApplicationTransaction $xaction) {
+ if ($this->proxy) {
+ return $this->proxy->getApplicationTransactionHasChangeDetails(
+ $xaction);
+ }
+ return false;
+ }
+
+ public function getApplicationTransactionChangeDetails(
+ PhabricatorApplicationTransaction $xaction,
+ PhabricatorUser $viewer) {
+ if ($this->proxy) {
+ return $this->proxy->getApplicationTransactionChangeDetails(
+ $xaction,
+ $viewer);
+ }
+ return null;
+ }
+
+
/* -( Edit View )---------------------------------------------------------- */
Index: webroot/rsrc/js/application/transactions/behavior-transaction-list.js
===================================================================
--- webroot/rsrc/js/application/transactions/behavior-transaction-list.js
+++ webroot/rsrc/js/application/transactions/behavior-transaction-list.js
@@ -75,19 +75,6 @@
e.kill();
});
- JX.DOM.listen(list, 'click', 'transaction-detail', function(e) {
- if (!e.isNormalClick()) {
- return;
- }
-
- JX.Workflow.newFromLink(e.getTarget())
- .setData({anchor: e.getData('anchor')})
- .setHandler(ontransactions)
- .start();
-
- e.kill();
- });
-
JX.Stratcom.listen(
['submit', 'didSyntheticSubmit'],
'transaction-append',

File Metadata

Mime Type
text/plain
Expires
Sat, Aug 2, 6:47 PM (3 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
8864134
Default Alt Text
D8284.diff (15 KB)

Event Timeline