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 | |||||