diff --git a/src/applications/project/controller/PhabricatorProjectBoardViewController.php b/src/applications/project/controller/PhabricatorProjectBoardViewController.php --- a/src/applications/project/controller/PhabricatorProjectBoardViewController.php +++ b/src/applications/project/controller/PhabricatorProjectBoardViewController.php @@ -239,7 +239,7 @@ $panel->addClass('project-panel-hidden'); } - $column_menu = $this->buildColumnMenu($project, $column); + $column_menu = $this->buildColumnMenu($project, $column, $column_tasks); $panel->addHeaderAction($column_menu); $tag_id = celerity_generate_unique_node_id(); @@ -533,7 +533,8 @@ private function buildColumnMenu( PhabricatorProject $project, - PhabricatorProjectColumn $column) { + PhabricatorProjectColumn $column, + $column_tasks) { $request = $this->getRequest(); $viewer = $request->getUser(); @@ -587,6 +588,20 @@ ->setWorkflow(true); } + $task_ids = mpull($column_tasks, 'getID'); + + if ($task_ids) { + $batch_edit_uri = id(new PhabricatorManiphestApplication()) + ->getApplicationURI('/batch/?batch[]='.implode('&batch[]=', $task_ids)); + + $column_items[] = id(new PhabricatorActionView()) + ->setIcon('fa-pencil') + ->setName(pht('Batch Edit Tasks')) + ->setHref($batch_edit_uri) + ->setDisabled(!$can_edit) + ->setWorkflow(!$can_edit); + } + $column_menu = id(new PhabricatorActionListView()) ->setUser($viewer); foreach ($column_items as $item) {