Page MenuHomePhabricator

D15444.diff
No OneTemporary

D15444.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
@@ -1429,9 +1429,9 @@
'NuanceImportCursorPHIDType' => 'applications/nuance/phid/NuanceImportCursorPHIDType.php',
'NuanceItem' => 'applications/nuance/storage/NuanceItem.php',
'NuanceItemController' => 'applications/nuance/controller/NuanceItemController.php',
- 'NuanceItemEditController' => 'applications/nuance/controller/NuanceItemEditController.php',
'NuanceItemEditor' => 'applications/nuance/editor/NuanceItemEditor.php',
'NuanceItemListController' => 'applications/nuance/controller/NuanceItemListController.php',
+ 'NuanceItemManageController' => 'applications/nuance/controller/NuanceItemManageController.php',
'NuanceItemPHIDType' => 'applications/nuance/phid/NuanceItemPHIDType.php',
'NuanceItemQuery' => 'applications/nuance/query/NuanceItemQuery.php',
'NuanceItemSearchEngine' => 'applications/nuance/query/NuanceItemSearchEngine.php',
@@ -5692,9 +5692,9 @@
'PhabricatorApplicationTransactionInterface',
),
'NuanceItemController' => 'NuanceController',
- 'NuanceItemEditController' => 'NuanceController',
'NuanceItemEditor' => 'PhabricatorApplicationTransactionEditor',
'NuanceItemListController' => 'NuanceItemController',
+ 'NuanceItemManageController' => 'NuanceController',
'NuanceItemPHIDType' => 'PhabricatorPHIDType',
'NuanceItemQuery' => 'NuanceQuery',
'NuanceItemSearchEngine' => 'PhabricatorApplicationSearchEngine',
diff --git a/src/applications/nuance/application/PhabricatorNuanceApplication.php b/src/applications/nuance/application/PhabricatorNuanceApplication.php
--- a/src/applications/nuance/application/PhabricatorNuanceApplication.php
+++ b/src/applications/nuance/application/PhabricatorNuanceApplication.php
@@ -42,8 +42,7 @@
'item/' => array(
$this->getQueryRoutePattern() => 'NuanceItemListController',
'view/(?P<id>[1-9]\d*)/' => 'NuanceItemViewController',
- 'edit/(?P<id>[1-9]\d*)/' => 'NuanceItemEditController',
- 'new/' => 'NuanceItemEditController',
+ 'manage/(?P<id>[1-9]\d*)/' => 'NuanceItemManageController',
),
'source/' => array(
$this->getQueryRoutePattern() => 'NuanceSourceListController',
diff --git a/src/applications/nuance/controller/NuanceItemEditController.php b/src/applications/nuance/controller/NuanceItemEditController.php
deleted file mode 100644
--- a/src/applications/nuance/controller/NuanceItemEditController.php
+++ /dev/null
@@ -1,104 +0,0 @@
-<?php
-
-final class NuanceItemEditController extends NuanceController {
-
- public function handleRequest(AphrontRequest $request) {
- $viewer = $this->getViewer();
- $id = $request->getURIData('id');
-
- $item = id(new NuanceItemQuery())
- ->setViewer($viewer)
- ->withIDs(array($id))
- ->requireCapabilities(
- array(
- PhabricatorPolicyCapability::CAN_VIEW,
- PhabricatorPolicyCapability::CAN_EDIT,
- ))
- ->executeOne();
- if (!$item) {
- return new Aphront404Response();
- }
-
- $title = pht('Item %d', $item->getID());
-
- $crumbs = $this->buildApplicationCrumbs();
- $crumbs->addTextCrumb($title);
- $crumbs->addTextCrumb(pht('Edit'));
-
- $properties = $this->buildPropertyView($item);
- $actions = $this->buildActionView($item);
- $properties->setActionList($actions);
-
- $box = id(new PHUIObjectBoxView())
- ->setHeaderText($title)
- ->addPropertyList($properties);
-
- $timeline = $this->buildTransactionTimeline(
- $item,
- new NuanceItemTransactionQuery());
-
- $timeline->setShouldTerminate(true);
-
- return $this->buildApplicationPage(
- array(
- $crumbs,
- $box,
- $timeline,
- ),
- array(
- 'title' => $title,
- ));
- }
-
- private function buildPropertyView(NuanceItem $item) {
- $viewer = $this->getViewer();
-
- $properties = id(new PHUIPropertyListView())
- ->setUser($viewer)
- ->setObject($item);
-
- $properties->addProperty(
- pht('Date Created'),
- phabricator_datetime($item->getDateCreated(), $viewer));
-
- $properties->addProperty(
- pht('Requestor'),
- $viewer->renderHandle($item->getRequestorPHID()));
-
- $properties->addProperty(
- pht('Source'),
- $viewer->renderHandle($item->getSourcePHID()));
-
- $properties->addProperty(
- pht('Queue'),
- $viewer->renderHandle($item->getQueuePHID()));
-
- $source = $item->getSource();
- $definition = $source->getDefinition();
-
- $definition->renderItemEditProperties(
- $viewer,
- $item,
- $properties);
-
- return $properties;
- }
-
- private function buildActionView(NuanceItem $item) {
- $viewer = $this->getViewer();
- $id = $item->getID();
-
- $actions = id(new PhabricatorActionListView())
- ->setUser($viewer);
-
- $actions->addAction(
- id(new PhabricatorActionView())
- ->setName(pht('View Item'))
- ->setIcon('fa-eye')
- ->setHref($this->getApplicationURI("item/view/{$id}/")));
-
- return $actions;
- }
-
-
-}
diff --git a/src/applications/nuance/controller/NuanceItemManageController.php b/src/applications/nuance/controller/NuanceItemManageController.php
new file mode 100644
--- /dev/null
+++ b/src/applications/nuance/controller/NuanceItemManageController.php
@@ -0,0 +1,109 @@
+<?php
+
+final class NuanceItemManageController extends NuanceController {
+
+ public function handleRequest(AphrontRequest $request) {
+ $viewer = $this->getViewer();
+ $id = $request->getURIData('id');
+
+ $item = id(new NuanceItemQuery())
+ ->setViewer($viewer)
+ ->withIDs(array($id))
+ ->executeOne();
+ if (!$item) {
+ return new Aphront404Response();
+ }
+
+ $title = pht('Item %d', $item->getID());
+
+ $crumbs = $this->buildApplicationCrumbs();
+ $crumbs->addTextCrumb(
+ pht('Items'),
+ $this->getApplicationURI('item/'));
+ $crumbs->addTextCrumb(
+ $title,
+ $item->getURI());
+ $crumbs->addTextCrumb(pht('Manage'));
+ $crumbs->setBorder(true);
+
+ $properties = $this->buildPropertyView($item);
+ $curtain = $this->buildCurtain($item);
+
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title);
+
+ $timeline = $this->buildTransactionTimeline(
+ $item,
+ new NuanceItemTransactionQuery());
+ $timeline->setShouldTerminate(true);
+
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setCurtain($curtain)
+ ->addPropertySection(pht('DETAILS'), $properties)
+ ->setMainColumn($timeline);
+
+ return $this->newPage()
+ ->setTitle($title)
+ ->setCrumbs($crumbs)
+ ->appendChild($view);
+ }
+
+ private function buildPropertyView(NuanceItem $item) {
+ $viewer = $this->getViewer();
+
+ $properties = id(new PHUIPropertyListView())
+ ->setUser($viewer);
+
+ $properties->addProperty(
+ pht('Date Created'),
+ phabricator_datetime($item->getDateCreated(), $viewer));
+
+ $requestor_phid = $item->getRequestorPHID();
+ if ($requestor_phid) {
+ $requestor_view = $viewer->renderHandle($requestor_phid);
+ } else {
+ $requestor_view = phutil_tag('em', array(), pht('None'));
+ }
+ $properties->addProperty(pht('Requestor'), $requestor_view);
+
+ $properties->addProperty(
+ pht('Source'),
+ $viewer->renderHandle($item->getSourcePHID()));
+
+ $queue_phid = $item->getQueuePHID();
+ if ($queue_phid) {
+ $queue_view = $viewer->renderHandle($queue_phid);
+ } else {
+ $queue_view = phutil_tag('em', array(), pht('None'));
+ }
+ $properties->addProperty(pht('Queue'), $queue_view);
+
+ $source = $item->getSource();
+ $definition = $source->getDefinition();
+
+ $definition->renderItemEditProperties(
+ $viewer,
+ $item,
+ $properties);
+
+ return $properties;
+ }
+
+ private function buildCurtain(NuanceItem $item) {
+ $viewer = $this->getViewer();
+ $id = $item->getID();
+
+ $curtain = $this->newCurtainView($item);
+
+ $curtain->addAction(
+ id(new PhabricatorActionView())
+ ->setName(pht('View Item'))
+ ->setIcon('fa-eye')
+ ->setHref($item->getURI()));
+
+ return $curtain;
+ }
+
+
+}
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
@@ -17,32 +17,34 @@
$title = pht('Item %d', $item->getID());
$crumbs = $this->buildApplicationCrumbs();
+ $crumbs->addTextCrumb(
+ pht('Items'),
+ $this->getApplicationURI('item/'));
$crumbs->addTextCrumb($title);
+ $crumbs->setBorder(true);
$properties = $this->buildPropertyView($item);
- $actions = $this->buildActionView($item);
- $properties->setActionList($actions);
-
- $box = id(new PHUIObjectBoxView())
- ->setHeaderText($title)
- ->addPropertyList($properties);
-
- return $this->buildApplicationPage(
- array(
- $crumbs,
- $box,
- ),
- array(
- 'title' => $title,
- ));
+ $curtain = $this->buildCurtain($item);
+
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title);
+
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setCurtain($curtain)
+ ->addPropertySection(pht('DETAILS'), $properties);
+
+ return $this->newPage()
+ ->setTitle($title)
+ ->setCrumbs($crumbs)
+ ->appendChild($view);
}
private function buildPropertyView(NuanceItem $item) {
$viewer = $this->getViewer();
$properties = id(new PHUIPropertyListView())
- ->setUser($viewer)
- ->setObject($item);
+ ->setUser($viewer);
$properties->addProperty(
pht('Date Created'),
@@ -59,27 +61,24 @@
return $properties;
}
- private function buildActionView(NuanceItem $item) {
+ private function buildCurtain(NuanceItem $item) {
$viewer = $this->getViewer();
$id = $item->getID();
- $actions = id(new PhabricatorActionListView())
- ->setUser($viewer);
-
$can_edit = PhabricatorPolicyFilter::hasCapability(
$viewer,
$item,
PhabricatorPolicyCapability::CAN_EDIT);
- $actions->addAction(
+ $curtain = $this->newCurtainView($item);
+
+ $curtain->addAction(
id(new PhabricatorActionView())
- ->setName(pht('Edit Item'))
- ->setIcon('fa-pencil')
- ->setHref($this->getApplicationURI("item/edit/{$id}/"))
- ->setDisabled(!$can_edit)
- ->setWorkflow(!$can_edit));
+ ->setName(pht('Manage Item'))
+ ->setIcon('fa-cogs')
+ ->setHref($this->getApplicationURI("item/manage/{$id}/")));
- return $actions;
+ return $curtain;
}

File Metadata

Mime Type
text/plain
Expires
Thu, Mar 13, 11:36 PM (1 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7390687
Default Alt Text
D15444.diff (10 KB)

Event Timeline