Differential D20408 Diff 48715 src/applications/dashboard/engine/PhabricatorDashboardRenderingEngine.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/dashboard/engine/PhabricatorDashboardRenderingEngine.php
| Show First 20 Lines • Show All 67 Lines • ▼ Show 20 Lines | public function renderDashboard() { | ||||
| foreach ($columns as $column) { | foreach ($columns as $column) { | ||||
| $column_views = array(); | $column_views = array(); | ||||
| foreach ($column->getPanelRefs() as $panel_ref) { | foreach ($column->getPanelRefs() as $panel_ref) { | ||||
| $panel_phid = $panel_ref->getPanelPHID(); | $panel_phid = $panel_ref->getPanelPHID(); | ||||
| $panel_engine = id(new PhabricatorDashboardPanelRenderingEngine()) | $panel_engine = id(new PhabricatorDashboardPanelRenderingEngine()) | ||||
| ->setViewer($viewer) | ->setViewer($viewer) | ||||
| ->setDashboardID($dashboard->getID()) | |||||
| ->setEnableAsyncRendering(true) | ->setEnableAsyncRendering(true) | ||||
| ->setContextObject($dashboard) | ->setContextObject($dashboard) | ||||
| ->setPanelKey($panel_ref->getPanelKey()) | |||||
| ->setPanelPHID($panel_phid) | ->setPanelPHID($panel_phid) | ||||
| ->setParentPanelPHIDs(array()) | ->setParentPanelPHIDs(array()) | ||||
| ->setHeaderMode($h_mode) | ->setHeaderMode($h_mode) | ||||
| ->setEditMode($is_editable) | ->setEditMode($is_editable) | ||||
| ->setPanelHandle($handles[$panel_phid]); | ->setPanelHandle($handles[$panel_phid]); | ||||
| $panel = idx($panels, $panel_phid); | $panel = idx($panels, $panel_phid); | ||||
| if ($panel) { | if ($panel) { | ||||
| $panel_engine->setPanel($panel); | $panel_engine->setPanel($panel); | ||||
| } | } | ||||
| $column_views[] = $panel_engine->renderPanel(); | $column_views[] = $panel_engine->renderPanel(); | ||||
| } | } | ||||
| $column_classes = $column->getClasses(); | $column_classes = $column->getClasses(); | ||||
| if ($is_editable) { | if ($is_editable) { | ||||
| $column_views[] = $this->renderAddPanelPlaceHolder(); | $column_views[] = $this->renderAddPanelPlaceHolder(); | ||||
| $column_views[] = $this->renderAddPanelUI($column->getColumnKey()); | $column_views[] = $this->renderAddPanelUI($column); | ||||
| } | } | ||||
| $sigil = 'dashboard-column'; | |||||
| $metadata = array( | |||||
| 'columnKey' => $column->getColumnKey(), | |||||
| ); | |||||
| $result->addColumn( | $result->addColumn( | ||||
| $column_views, | $column_views, | ||||
| implode(' ', $column_classes), | implode(' ', $column_classes), | ||||
| $sigil = 'dashboard-column', | $sigil, | ||||
| $metadata = array('columnID' => $column)); | $metadata); | ||||
| } | } | ||||
| if ($is_editable) { | if ($is_editable) { | ||||
| Javelin::initBehavior( | Javelin::initBehavior( | ||||
| 'dashboard-move-panels', | 'dashboard-move-panels', | ||||
| array( | array( | ||||
| 'dashboardID' => $dashboard_id, | 'dashboardID' => $dashboard_id, | ||||
| 'moveURI' => '/dashboard/movepanel/'.$dashboard->getID().'/', | 'moveURI' => '/dashboard/movepanel/'.$dashboard->getID().'/', | ||||
| Show All 15 Lines | return javelin_tag( | ||||
| 'span', | 'span', | ||||
| array( | array( | ||||
| 'sigil' => 'workflow', | 'sigil' => 'workflow', | ||||
| 'class' => 'drag-ghost dashboard-panel-placeholder', | 'class' => 'drag-ghost dashboard-panel-placeholder', | ||||
| ), | ), | ||||
| pht('This column does not have any panels yet.')); | pht('This column does not have any panels yet.')); | ||||
| } | } | ||||
| private function renderAddPanelUI($column) { | private function renderAddPanelUI(PhabricatorDashboardColumn $column) { | ||||
| $dashboard_id = $this->dashboard->getID(); | $dashboard = $this->getDashboard(); | ||||
| $column_key = $column->getColumnKey(); | |||||
| $create_uri = id(new PhutilURI('/dashboard/panel/edit/')) | $create_uri = id(new PhutilURI('/dashboard/panel/edit/')) | ||||
| ->replaceQueryParam('dashboardID', $dashboard_id) | ->replaceQueryParam('contextPHID', $dashboard->getPHID()) | ||||
| ->replaceQueryParam('columnID', $column); | ->replaceQueryParam('columnKey', $column_key); | ||||
| $add_uri = id(new PhutilURI('/dashboard/addpanel/'.$dashboard_id.'/')) | $add_uri = id(new PhutilURI('/dashboard/adjust/add/')) | ||||
| ->replaceQueryParam('columnID', $column); | ->replaceQueryParam('contextPHID', $dashboard->getPHID()) | ||||
| ->replaceQueryParam('columnKey', $column_key); | |||||
| $create_button = id(new PHUIButtonView()) | $create_button = id(new PHUIButtonView()) | ||||
| ->setTag('a') | ->setTag('a') | ||||
| ->setHref($create_uri) | ->setHref($create_uri) | ||||
| ->setWorkflow(true) | ->setWorkflow(true) | ||||
| ->setText(pht('Create Panel')) | ->setText(pht('Create Panel')) | ||||
| ->addClass(PHUI::MARGIN_MEDIUM); | ->addClass(PHUI::MARGIN_MEDIUM); | ||||
| Show All 19 Lines | |||||