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 |