diff --git a/resources/celerity/map.php b/resources/celerity/map.php --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -147,7 +147,7 @@ 'rsrc/css/phui/phui-status.css' => '2f562399', 'rsrc/css/phui/phui-tag-view.css' => '295d81c4', 'rsrc/css/phui/phui-text.css' => '23e9b4b7', - 'rsrc/css/phui/phui-timeline-view.css' => '23fe340a', + 'rsrc/css/phui/phui-timeline-view.css' => '17905388', 'rsrc/css/phui/phui-workboard-view.css' => '84f2c272', 'rsrc/css/phui/phui-workpanel-view.css' => '97b69459', 'rsrc/css/sprite-actions.css' => '969ad0e5', @@ -762,7 +762,7 @@ 'phui-status-list-view-css' => '2f562399', 'phui-tag-view-css' => '295d81c4', 'phui-text-css' => '23e9b4b7', - 'phui-timeline-view-css' => '23fe340a', + 'phui-timeline-view-css' => '17905388', 'phui-workboard-view-css' => '84f2c272', 'phui-workpanel-view-css' => '97b69459', 'policy-css' => '957ea14c', diff --git a/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php b/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php --- a/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php +++ b/src/applications/transactions/editor/PhabricatorApplicationTransactionEditor.php @@ -661,6 +661,11 @@ $herald_xactions = $this->applyHeraldRules($object, $xactions); if ($herald_xactions) { + $xscript_id = $this->getHeraldTranscript()->getID(); + foreach ($herald_xactions as $herald_xaction) { + $herald_xaction->setMetadataValue('herald:transcriptID', $xscript_id); + } + // NOTE: We're acting as the omnipotent user because rules deal with // their own policy issues. We use a synthetic author PHID (the // Herald application) as the author of record, so that transactions diff --git a/src/applications/transactions/storage/PhabricatorApplicationTransaction.php b/src/applications/transactions/storage/PhabricatorApplicationTransaction.php --- a/src/applications/transactions/storage/PhabricatorApplicationTransaction.php +++ b/src/applications/transactions/storage/PhabricatorApplicationTransaction.php @@ -757,6 +757,21 @@ return true; } + public function renderExtraInformationLink() { + $herald_xscript_id = $this->getMetadataValue('herald:transcriptID'); + + if ($herald_xscript_id) { + return phutil_tag( + 'a', + array( + 'href' => '/herald/transcript/'.$herald_xscript_id.'/', + ), + pht('View Herald Transcript')); + } + + return null; + } + /* -( PhabricatorPolicyInterface Implementation )-------------------------- */ diff --git a/src/applications/transactions/view/PhabricatorApplicationTransactionView.php b/src/applications/transactions/view/PhabricatorApplicationTransactionView.php --- a/src/applications/transactions/view/PhabricatorApplicationTransactionView.php +++ b/src/applications/transactions/view/PhabricatorApplicationTransactionView.php @@ -190,6 +190,22 @@ pht('(Show Details)')); } + private function buildExtraInformationLink( + PhabricatorApplicationTransaction $xaction) { + + $link = $xaction->renderExtraInformationLink(); + if (!$link) { + return null; + } + + return phutil_tag( + 'span', + array( + 'class' => 'phui-timeline-extra-information', + ), + array(" \xC2\xB7 ", $link)); + } + protected function shouldGroupTransactions( PhabricatorApplicationTransaction $u, PhabricatorApplicationTransaction $v) { @@ -313,6 +329,14 @@ ); } } + + if (!$this->isPreview) { + $more = $this->buildExtraInformationLink($xaction); + if ($more) { + $title = array($title, ' ', $more); + } + } + $event->setTitle($title); } diff --git a/webroot/rsrc/css/phui/phui-timeline-view.css b/webroot/rsrc/css/phui/phui-timeline-view.css --- a/webroot/rsrc/css/phui/phui-timeline-view.css +++ b/webroot/rsrc/css/phui/phui-timeline-view.css @@ -307,3 +307,9 @@ .device-phone .phui-timeline-older-transactions-are-hidden { margin: 0 8px; } + + +.phui-timeline-title .phui-timeline-extra-information a { + font-weight: normal; + color: {$bluetext}; +}