Page MenuHomePhabricator

D20386.id48653.diff
No OneTemporary

D20386.id48653.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -609,6 +609,7 @@
'DifferentialRevisionIDCommitMessageField' => 'applications/differential/field/DifferentialRevisionIDCommitMessageField.php',
'DifferentialRevisionInlineTransaction' => 'applications/differential/xaction/DifferentialRevisionInlineTransaction.php',
'DifferentialRevisionInlinesController' => 'applications/differential/controller/DifferentialRevisionInlinesController.php',
+ 'DifferentialRevisionJIRAIssueURIsHeraldField' => 'applications/differential/herald/DifferentialRevisionJIRAIssueURIsHeraldField.php',
'DifferentialRevisionListController' => 'applications/differential/controller/DifferentialRevisionListController.php',
'DifferentialRevisionListView' => 'applications/differential/view/DifferentialRevisionListView.php',
'DifferentialRevisionMailReceiver' => 'applications/differential/mail/DifferentialRevisionMailReceiver.php',
@@ -6226,6 +6227,7 @@
'DifferentialRevisionIDCommitMessageField' => 'DifferentialCommitMessageField',
'DifferentialRevisionInlineTransaction' => 'PhabricatorModularTransactionType',
'DifferentialRevisionInlinesController' => 'DifferentialController',
+ 'DifferentialRevisionJIRAIssueURIsHeraldField' => 'DifferentialRevisionHeraldField',
'DifferentialRevisionListController' => 'DifferentialController',
'DifferentialRevisionListView' => 'AphrontView',
'DifferentialRevisionMailReceiver' => 'PhabricatorObjectMailReceiver',
diff --git a/src/applications/differential/herald/DifferentialRevisionJIRAIssueURIsHeraldField.php b/src/applications/differential/herald/DifferentialRevisionJIRAIssueURIsHeraldField.php
new file mode 100644
--- /dev/null
+++ b/src/applications/differential/herald/DifferentialRevisionJIRAIssueURIsHeraldField.php
@@ -0,0 +1,44 @@
+<?php
+
+final class DifferentialRevisionJIRAIssueURIsHeraldField
+ extends DifferentialRevisionHeraldField {
+
+ const FIELDCONST = 'differential.revision.jira.uris';
+
+ public function getHeraldFieldName() {
+ return pht('JIRA Issue URIs');
+ }
+
+ public function supportsObject($object) {
+ $provider = PhabricatorJIRAAuthProvider::getJIRAProvider();
+ if (!$provider) {
+ return false;
+ }
+
+ return parent::supportsObject($object);
+ }
+
+ public function getHeraldFieldValue($object) {
+ $adapter = $this->getAdapter();
+ $viewer = $adapter->getViewer();
+
+ $jira_phids = PhabricatorEdgeQuery::loadDestinationPHIDs(
+ $object->getPHID(),
+ PhabricatorJiraIssueHasObjectEdgeType::EDGECONST);
+ if (!$jira_phids) {
+ return array();
+ }
+
+ $xobjs = id(new DoorkeeperExternalObjectQuery())
+ ->setViewer($viewer)
+ ->withPHIDs($jira_phids)
+ ->execute();
+
+ return mpull($xobjs, 'getObjectURI');
+ }
+
+ protected function getHeraldFieldStandardType() {
+ return self::STANDARD_TEXT_LIST;
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 21, 9:18 PM (1 w, 2 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7716020
Default Alt Text
D20386.id48653.diff (2 KB)

Event Timeline