Differential D20399 Diff 48690 src/applications/dashboard/controller/panel/PhabricatorDashboardPanelViewController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/dashboard/controller/panel/PhabricatorDashboardPanelViewController.php
| Show All 29 Lines | $crumbs->addTextCrumb( | ||||
| pht('Panels'), | pht('Panels'), | ||||
| $this->getApplicationURI('panel/')); | $this->getApplicationURI('panel/')); | ||||
| $crumbs->addTextCrumb($panel->getMonogram()); | $crumbs->addTextCrumb($panel->getMonogram()); | ||||
| $crumbs->setBorder(true); | $crumbs->setBorder(true); | ||||
| $header = $this->buildHeaderView($panel); | $header = $this->buildHeaderView($panel); | ||||
| $curtain = $this->buildCurtainView($panel); | $curtain = $this->buildCurtainView($panel); | ||||
| $usage_box = $this->newUsageView($panel); | |||||
| $timeline = $this->buildTransactionTimeline( | $timeline = $this->buildTransactionTimeline( | ||||
| $panel, | $panel, | ||||
| new PhabricatorDashboardPanelTransactionQuery()); | new PhabricatorDashboardPanelTransactionQuery()); | ||||
| $rendered_panel = id(new PhabricatorDashboardPanelRenderingEngine()) | $rendered_panel = id(new PhabricatorDashboardPanelRenderingEngine()) | ||||
| ->setViewer($viewer) | ->setViewer($viewer) | ||||
| ->setPanel($panel) | ->setPanel($panel) | ||||
| ->setContextObject($panel) | ->setContextObject($panel) | ||||
| ->setPanelPHID($panel->getPHID()) | ->setPanelPHID($panel->getPHID()) | ||||
| ->setParentPanelPHIDs(array()) | ->setParentPanelPHIDs(array()) | ||||
| ->setEditMode(true) | ->setEditMode(true) | ||||
| ->renderPanel(); | ->renderPanel(); | ||||
| $preview = id(new PHUIBoxView()) | $preview = id(new PHUIBoxView()) | ||||
| ->addClass('dashboard-preview-box') | ->addClass('dashboard-preview-box') | ||||
| ->appendChild($rendered_panel); | ->appendChild($rendered_panel); | ||||
| $view = id(new PHUITwoColumnView()) | $view = id(new PHUITwoColumnView()) | ||||
| ->setHeader($header) | ->setHeader($header) | ||||
| ->setCurtain($curtain) | ->setCurtain($curtain) | ||||
| ->setMainColumn(array( | ->setMainColumn(array( | ||||
| $rendered_panel, | $rendered_panel, | ||||
| $usage_box, | |||||
| $timeline, | $timeline, | ||||
| )); | )); | ||||
| return $this->newPage() | return $this->newPage() | ||||
| ->setTitle($title) | ->setTitle($title) | ||||
| ->setCrumbs($crumbs) | ->setCrumbs($crumbs) | ||||
| ->appendChild($view); | ->appendChild($view); | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 49 Lines • ▼ Show 20 Lines | $curtain->addAction( | ||||
| ->setIcon($archive_icon) | ->setIcon($archive_icon) | ||||
| ->setHref($this->getApplicationURI("panel/archive/{$id}/")) | ->setHref($this->getApplicationURI("panel/archive/{$id}/")) | ||||
| ->setDisabled(!$can_edit) | ->setDisabled(!$can_edit) | ||||
| ->setWorkflow(true)); | ->setWorkflow(true)); | ||||
| return $curtain; | return $curtain; | ||||
| } | } | ||||
| private function newUsageView(PhabricatorDashboardPanel $panel) { | |||||
| $viewer = $this->getViewer(); | |||||
| $object_phids = PhabricatorEdgeQuery::loadDestinationPHIDs( | |||||
| $panel->getPHID(), | |||||
| PhabricatorDashboardPanelUsedByObjectEdgeType::EDGECONST); | |||||
| if ($object_phids) { | |||||
| $handles = $viewer->loadHandles($object_phids); | |||||
| } else { | |||||
| $handles = array(); | |||||
| } | |||||
| $rows = array(); | |||||
| foreach ($object_phids as $object_phid) { | |||||
| $handle = $handles[$object_phid]; | |||||
| $icon = $handle->getIcon(); | |||||
| $rows[] = array( | |||||
| id(new PHUIIconView())->setIcon($icon), | |||||
| $handle->getTypeName(), | |||||
| $handle->renderLink(), | |||||
| ); | |||||
| } | |||||
| $usage_table = id(new AphrontTableView($rows)) | |||||
| ->setNoDataString( | |||||
| pht( | |||||
| 'This panel is not used on any dashboard or inside any other '. | |||||
| 'panel container.')) | |||||
| ->setColumnClasses( | |||||
| array( | |||||
| 'center', | |||||
| '', | |||||
| 'pri wide', | |||||
| )); | |||||
| $header_view = id(new PHUIHeaderView()) | |||||
| ->setHeader(pht('Panel Used By')); | |||||
| $usage_box = id(new PHUIObjectBoxView()) | |||||
| ->setTable($usage_table) | |||||
| ->setHeader($header_view); | |||||
| return $usage_box; | |||||
| } | |||||
| } | } | ||||