Christopher Johnson (WMDE) has uploaded a new change for review.
https://gerrit.wikimedia.org/r/205590
Change subject: updates sprint board controllers with the new Batch Edit
feature upstream D12475 2015-04-20
......................................................................
updates sprint board controllers with the new Batch Edit feature
upstream D12475 2015-04-20
Change-Id: Ib1a50692beb950c2e66195fe3387acb140206d10
---
M src/controller/board/SprintBoardColumnDetailController.php
M src/controller/board/SprintBoardColumnEditController.php
M src/controller/board/SprintBoardViewController.php
3 files changed, 85 insertions(+), 4 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/phabricator/extensions/Sprint
refs/changes/90/205590/1
diff --git a/src/controller/board/SprintBoardColumnDetailController.php
b/src/controller/board/SprintBoardColumnDetailController.php
index 7f7a580..ab85bd6 100644
--- a/src/controller/board/SprintBoardColumnDetailController.php
+++ b/src/controller/board/SprintBoardColumnDetailController.php
@@ -62,9 +62,7 @@
$nav->appendChild($timeline);
return $this->buildApplicationPage(
- array(
$nav,
- ),
array(
'title' => $title,
));
diff --git a/src/controller/board/SprintBoardColumnEditController.php
b/src/controller/board/SprintBoardColumnEditController.php
index 30e6a09..e7be1bd 100644
--- a/src/controller/board/SprintBoardColumnEditController.php
+++ b/src/controller/board/SprintBoardColumnEditController.php
@@ -155,9 +155,7 @@
$nav->appendChild($form_box);
return $this->buildApplicationPage(
- array(
$nav,
- ),
array(
'title' => $title,
));
diff --git a/src/controller/board/SprintBoardViewController.php
b/src/controller/board/SprintBoardViewController.php
index f4165c6..63bcec6 100755
--- a/src/controller/board/SprintBoardViewController.php
+++ b/src/controller/board/SprintBoardViewController.php
@@ -3,6 +3,8 @@
final class SprintBoardViewController
extends SprintBoardController {
+ const BATCH_EDIT_ALL = 'all';
+
private $id;
private $slug;
private $handles;
@@ -102,6 +104,19 @@
if ($request->isFormPost()) {
$saved = $engine->buildSavedQueryFromRequest($request);
$engine->saveQuery($saved);
+ $filter_form = id(new AphrontFormView())
+ ->setUser($viewer);
+ $engine->buildSearchForm($filter_form, $saved);
+ if ($engine->getErrors()) {
+ return $this->newDialog()
+ ->setWidth(AphrontDialogView::WIDTH_FULL)
+ ->setTitle(pht('Advanced Filter'))
+ ->appendChild($filter_form->buildLayoutView())
+ ->setErrors($engine->getErrors())
+ ->setSubmitURI($board_uri)
+ ->addSubmitButton(pht('Apply Filter'))
+ ->addCancelButton($board_uri);
+ }
return id(new AphrontRedirectResponse())->setURI(
$this->getURIWithState(
$engine->getQueryResultsPageURI($saved->getQueryKey())));
@@ -202,6 +217,50 @@
->setViewer($viewer)
->requireCapabilities(array(PhabricatorPolicyCapability::CAN_EDIT))
->apply($tasks);
+
+ // If this is a batch edit, select the editable tasks in the chosen column
+ // and ship the user into the batch editor.
+ $batch_edit = $request->getStr('batch');
+ if ($batch_edit) {
+ if ($batch_edit !== self::BATCH_EDIT_ALL) {
+ $column_id_map = mpull($columns, null, 'getID');
+ $batch_column = idx($column_id_map, $batch_edit);
+ if (!$batch_column) {
+ return new Aphront404Response();
+ }
+
+ $batch_task_phids = idx($task_map, $batch_column->getPHID(), array());
+ foreach ($batch_task_phids as $key => $batch_task_phid) {
+ if (empty($task_can_edit_map[$batch_task_phid])) {
+ unset($batch_task_phids[$key]);
+ }
+ }
+
+ $batch_tasks = array_select_keys($tasks, $batch_task_phids);
+ } else {
+ $batch_tasks = $task_can_edit_map;
+ }
+
+ if (!$batch_tasks) {
+ $cancel_uri = $this->getURIWithState($board_uri);
+ return $this->newDialog()
+ ->setTitle(pht('No Editable Tasks'))
+ ->appendParagraph(
+ pht(
+ 'The selected column contains no visible tasks which you '.
+ 'have permission to edit.'))
+ ->addCancelButton($board_uri);
+ }
+
+ $batch_ids = mpull($batch_tasks, 'getID');
+ $batch_ids = implode(',', $batch_ids);
+
+ $batch_uri = new PhutilURI('/maniphest/batch/');
+ $batch_uri->setQueryParam('board', $this->id);
+ $batch_uri->setQueryParam('batch', $batch_ids);
+ return id(new AphrontRedirectResponse())
+ ->setURI($batch_uri);
+ }
$board_id = celerity_generate_unique_node_id();
@@ -534,6 +593,19 @@
->setName($hidden_text)
->setHref($hidden_uri);
+ $batch_edit_uri = $request->getRequestURI();
+ $batch_edit_uri->setQueryParam('batch', self::BATCH_EDIT_ALL);
+ $can_batch_edit = PhabricatorPolicyFilter::hasCapability(
+ $viewer,
+ PhabricatorApplication::getByClass('PhabricatorManiphestApplication'),
+ ManiphestBulkEditCapability::CAPABILITY);
+
+ $manage_items[] = id(new PhabricatorActionView())
+ ->setIcon('fa-list-ul')
+ ->setName(pht('Batch Edit Visible Tasks...'))
+ ->setHref($batch_edit_uri)
+ ->setDisabled(!$can_batch_edit);
+
$manage_menu = id(new PhabricatorActionListView())
->setUser($viewer);
foreach ($manage_items as $item) {
@@ -579,6 +651,19 @@
))
->setDisabled(!$can_edit);
+ $batch_edit_uri = $request->getRequestURI();
+ $batch_edit_uri->setQueryParam('batch', $column->getID());
+ $can_batch_edit = PhabricatorPolicyFilter::hasCapability(
+ $viewer,
+ PhabricatorApplication::getByClass('PhabricatorManiphestApplication'),
+ ManiphestBulkEditCapability::CAPABILITY);
+
+ $column_items[] = id(new PhabricatorActionView())
+ ->setIcon('fa-list-ul')
+ ->setName(pht('Batch Edit Tasks...'))
+ ->setHref($batch_edit_uri)
+ ->setDisabled(!$can_batch_edit);
+
$edit_uri = $this->getApplicationURI(
'board/'.$this->id.'/column/'.$column->getID().'/');
--
To view, visit https://gerrit.wikimedia.org/r/205590
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib1a50692beb950c2e66195fe3387acb140206d10
Gerrit-PatchSet: 1
Gerrit-Project: phabricator/extensions/Sprint
Gerrit-Branch: master
Gerrit-Owner: Christopher Johnson (WMDE) <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits