Differential D10190 Diff 24527 src/applications/project/controller/PhabricatorProjectBoardViewController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/project/controller/PhabricatorProjectBoardViewController.php
Show First 20 Lines • Show All 217 Lines • ▼ Show 20 Lines | public function processRequest() { | ||||
$this->handles = ManiphestTaskListView::loadTaskHandles($viewer, $tasks); | $this->handles = ManiphestTaskListView::loadTaskHandles($viewer, $tasks); | ||||
foreach ($columns as $column) { | foreach ($columns as $column) { | ||||
$panel = id(new PHUIWorkpanelView()) | $panel = id(new PHUIWorkpanelView()) | ||||
->setHeader($column->getDisplayName()) | ->setHeader($column->getDisplayName()) | ||||
->setHeaderColor($column->getHeaderColor()); | ->setHeaderColor($column->getHeaderColor()); | ||||
$panel->setEditURI($board_uri.'column/'.$column->getID().'/'); | $column_menu = $this->buildColumnMenu($project, $column); | ||||
$panel->addHeaderAction($column_menu); | |||||
$panel->setHeaderAction(id(new PHUIIconView()) | |||||
->setIconFont('fa-plus') | |||||
->setHref('/maniphest/task/create/') | |||||
->addSigil('column-add-task') | |||||
->setMetadata( | |||||
array('columnPHID' => $column->getPHID()))); | |||||
$cards = id(new PHUIObjectItemListView()) | $cards = id(new PHUIObjectItemListView()) | ||||
->setUser($viewer) | ->setUser($viewer) | ||||
->setFlush(true) | ->setFlush(true) | ||||
->setAllowEmptyList(true) | ->setAllowEmptyList(true) | ||||
->addSigil('project-column') | ->addSigil('project-column') | ||||
->setMetadata( | ->setMetadata( | ||||
array( | array( | ||||
▲ Show 20 Lines • Show All 264 Lines • ▼ Show 20 Lines | $manage_button = id(new PHUIButtonView()) | ||||
->setMetadata( | ->setMetadata( | ||||
array( | array( | ||||
'items' => hsprintf('%s', $manage_menu), | 'items' => hsprintf('%s', $manage_menu), | ||||
)); | )); | ||||
return $manage_button; | return $manage_button; | ||||
} | } | ||||
private function buildColumnMenu( | |||||
PhabricatorProject $project, | |||||
PhabricatorProjectColumn $column) { | |||||
$request = $this->getRequest(); | |||||
$viewer = $request->getUser(); | |||||
$can_edit = PhabricatorPolicyFilter::hasCapability( | |||||
$viewer, | |||||
$project, | |||||
PhabricatorPolicyCapability::CAN_EDIT); | |||||
$column_items = array(); | |||||
$column_items[] = id(new PhabricatorActionView()) | |||||
->setIcon('fa-plus') | |||||
->setName(pht('Create Task...')) | |||||
->setHref('/maniphest/task/create/') | |||||
->addSigil('column-add-task') | |||||
->setMetadata( | |||||
array( | |||||
'columnPHID' => $column->getPHID(), | |||||
)) | |||||
->setDisabled(!$can_edit); | |||||
$edit_uri = $this->getApplicationURI( | |||||
'board/'.$this->id.'/column/'.$column->getID().'/'); | |||||
$column_items[] = id(new PhabricatorActionView()) | |||||
->setIcon('fa-pencil') | |||||
->setName(pht('Edit Column')) | |||||
->setHref($edit_uri) | |||||
->setDisabled(!$can_edit) | |||||
->setWorkflow(!$can_edit); | |||||
$column_menu = id(new PhabricatorActionListView()) | |||||
->setUser($viewer); | |||||
foreach ($column_items as $item) { | |||||
$column_menu->addAction($item); | |||||
} | |||||
$column_button = id(new PHUIIconView()) | |||||
->setIconFont('fa-caret-down') | |||||
->setHref('#') | |||||
->addSigil('boards-dropdown-menu') | |||||
->setMetadata( | |||||
array( | |||||
'items' => hsprintf('%s', $column_menu), | |||||
)); | |||||
return $column_button; | |||||
} | |||||
private function initializeWorkboardDialog(PhabricatorProject $project) { | private function initializeWorkboardDialog(PhabricatorProject $project) { | ||||
$instructions = pht('This workboard has not been setup yet.'); | $instructions = pht('This workboard has not been setup yet.'); | ||||
$new_selector = id(new AphrontFormRadioButtonControl()) | $new_selector = id(new AphrontFormRadioButtonControl()) | ||||
->setName('initialize-type') | ->setName('initialize-type') | ||||
->setValue('backlog-only') | ->setValue('backlog-only') | ||||
->addButton( | ->addButton( | ||||
'backlog-only', | 'backlog-only', | ||||
▲ Show 20 Lines • Show All 50 Lines • Show Last 20 Lines |