Page MenuHomePhabricator

D15537.id37457.diff
No OneTemporary

D15537.id37457.diff

diff --git a/src/applications/nuance/controller/NuanceItemViewController.php b/src/applications/nuance/controller/NuanceItemViewController.php
--- a/src/applications/nuance/controller/NuanceItemViewController.php
+++ b/src/applications/nuance/controller/NuanceItemViewController.php
@@ -76,6 +76,10 @@
$curtain->addAction($action);
}
+ foreach ($impl->getItemCurtainPanels($item) as $panel) {
+ $curtain->addPanel($panel);
+ }
+
return $curtain;
}
diff --git a/src/applications/nuance/github/NuanceGitHubRawEvent.php b/src/applications/nuance/github/NuanceGitHubRawEvent.php
--- a/src/applications/nuance/github/NuanceGitHubRawEvent.php
+++ b/src/applications/nuance/github/NuanceGitHubRawEvent.php
@@ -91,7 +91,13 @@
}
public function getComment() {
- return 'TODO: Actually extract comment text.';
+ if (!$this->isIssueEvent() && !$this->isPullRequestEvent()) {
+ return null;
+ }
+
+ $raw = $this->raw;
+
+ return idxv($raw, array('payload', 'comment', 'body'));
}
public function getURI() {
diff --git a/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php b/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php
--- a/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php
+++ b/src/applications/nuance/github/__tests__/NuanceGitHubRawEventTestCase.php
@@ -51,6 +51,7 @@
'id' => $event->getID(),
'uri' => $event->getURI(),
'title.full' => $event->getEventFullTitle(),
+ 'comment' => $event->getComment(),
);
// Only verify the keys which are actually present in the test. This
diff --git a/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.pull.txt b/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.pull.txt
--- a/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.pull.txt
+++ b/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.pull.txt
@@ -160,5 +160,6 @@
"pull.number": 2,
"id": 3740938746,
"uri": "https://github.com/epriestley/poems/pull/2#issuecomment-194282800",
- "title.full": "GitHub epriestley/poems Pull Request #2 (Comment)"
+ "title.full": "GitHub epriestley/poems Pull Request #2 (Comment)",
+ "comment": "wub wub"
}
diff --git a/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.txt b/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.txt
--- a/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.txt
+++ b/src/applications/nuance/github/__tests__/repositoryevents/IssueCommentEvent.created.txt
@@ -97,5 +97,6 @@
"issue.number": 1,
"id": 3733510485,
"uri": "https://github.com/epriestley/poems/issues/1#issuecomment-193528669",
- "title.full": "GitHub epriestley/poems Issue #1 (Comment)"
+ "title.full": "GitHub epriestley/poems Issue #1 (Comment)",
+ "comment": "comment on issue"
}
diff --git a/src/applications/nuance/item/NuanceGitHubEventItemType.php b/src/applications/nuance/item/NuanceGitHubEventItemType.php
--- a/src/applications/nuance/item/NuanceGitHubEventItemType.php
+++ b/src/applications/nuance/item/NuanceGitHubEventItemType.php
@@ -154,6 +154,29 @@
return $actions;
}
+ public function getItemCurtainPanels(NuanceItem $item) {
+ $viewer = $this->getViewer();
+
+ $panels = array();
+
+ $xobj = $this->getExternalObject($item);
+ if ($xobj) {
+ $xobj_phid = $xobj->getPHID();
+
+ $task = id(new ManiphestTaskQuery())
+ ->setViewer($viewer)
+ ->withBridgedObjectPHIDs(array($xobj_phid))
+ ->executeOne();
+ if ($task) {
+ $panels[] = $this->newCurtainPanel($item)
+ ->setHeaderText(pht('Imported As'))
+ ->appendChild($viewer->renderHandle($task->getPHID()));
+ }
+ }
+
+ return $panels;
+ }
+
protected function handleAction(NuanceItem $item, $action) {
$viewer = $this->getViewer();
$controller = $this->getController();
diff --git a/src/applications/nuance/item/NuanceItemType.php b/src/applications/nuance/item/NuanceItemType.php
--- a/src/applications/nuance/item/NuanceItemType.php
+++ b/src/applications/nuance/item/NuanceItemType.php
@@ -44,6 +44,10 @@
return array();
}
+ public function getItemCurtainPanels(NuanceItem $item) {
+ return array();
+ }
+
abstract public function getItemTypeDisplayName();
abstract public function getItemDisplayName(NuanceItem $item);
@@ -82,6 +86,10 @@
->setHref($action_uri);
}
+ final protected function newCurtainPanel(NuanceItem $item) {
+ return id(new PHUICurtainPanelView());
+ }
+
final public function buildActionResponse(NuanceItem $item, $action) {
$response = $this->handleAction($item, $action);

File Metadata

Mime Type
text/plain
Expires
Sat, May 11, 11:56 AM (3 w, 2 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6278023
Default Alt Text
D15537.id37457.diff (4 KB)

Event Timeline