Differential D20633 Diff 49218 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 116 Lines • ▼ Show 20 Lines | if (!$columns || !$project->getHasWorkboard()) { | ||||
| $project->getDisplayName(), | $project->getDisplayName(), | ||||
| pht('Workboard'), | pht('Workboard'), | ||||
| )) | )) | ||||
| ->setNavigation($nav) | ->setNavigation($nav) | ||||
| ->setCrumbs($crumbs) | ->setCrumbs($crumbs) | ||||
| ->appendChild($content); | ->appendChild($content); | ||||
| } | } | ||||
| // If the user wants to turn a particular column into a query, build an | |||||
| // apropriate filter and redirect them to the query results page. | |||||
| $query_column_id = $request->getInt('queryColumnID'); | |||||
| if ($query_column_id) { | |||||
| $column_id_map = mpull($columns, null, 'getID'); | |||||
| $query_column = idx($column_id_map, $query_column_id); | |||||
| if (!$query_column) { | |||||
| return new Aphront404Response(); | |||||
| } | |||||
| // Create a saved query to combine the active filter on the workboard | |||||
| // with the column filter. If the user currently has constraints on the | |||||
| // board, we want to add a new column or project constraint, not | |||||
| // completely replace the constraints. | |||||
| $saved_query = $saved->newCopy(); | |||||
| if ($query_column->getProxyPHID()) { | |||||
| $project_phids = $saved_query->getParameter('projectPHIDs'); | |||||
| if (!$project_phids) { | |||||
| $project_phids = array(); | |||||
| } | |||||
| $project_phids[] = $query_column->getProxyPHID(); | |||||
| $saved_query->setParameter('projectPHIDs', $project_phids); | |||||
| } else { | |||||
| $saved_query->setParameter( | |||||
| 'columnPHIDs', | |||||
| array($query_column->getPHID())); | |||||
| } | |||||
| $search_engine = id(new ManiphestTaskSearchEngine()) | |||||
| ->setViewer($viewer); | |||||
| $search_engine->saveQuery($saved_query); | |||||
| $query_key = $saved_query->getQueryKey(); | |||||
| $query_uri = new PhutilURI("/maniphest/query/{$query_key}/#R"); | |||||
| return id(new AphrontRedirectResponse()) | |||||
| ->setURI($query_uri); | |||||
| } | |||||
| $task_can_edit_map = id(new PhabricatorPolicyFilter()) | $task_can_edit_map = id(new PhabricatorPolicyFilter()) | ||||
| ->setViewer($viewer) | ->setViewer($viewer) | ||||
| ->requireCapabilities(array(PhabricatorPolicyCapability::CAN_EDIT)) | ->requireCapabilities(array(PhabricatorPolicyCapability::CAN_EDIT)) | ||||
| ->apply($tasks); | ->apply($tasks); | ||||
| // If this is a batch edit, select the editable tasks in the chosen column | // If this is a batch edit, select the editable tasks in the chosen column | ||||
| // and ship the user into the batch editor. | // and ship the user into the batch editor. | ||||
| $batch_edit = $request->getStr('batch'); | $batch_edit = $request->getStr('batch'); | ||||
| ▲ Show 20 Lines • Show All 826 Lines • ▼ Show 20 Lines | final class PhabricatorProjectBoardViewController | ||||
| } | } | ||||
| private function buildColumnMenu( | private function buildColumnMenu( | ||||
| PhabricatorProject $project, | PhabricatorProject $project, | ||||
| PhabricatorProjectColumn $column) { | PhabricatorProjectColumn $column) { | ||||
| $request = $this->getRequest(); | $request = $this->getRequest(); | ||||
| $viewer = $request->getUser(); | $viewer = $request->getUser(); | ||||
| $state = $this->getViewState(); | |||||
| $can_edit = PhabricatorPolicyFilter::hasCapability( | $can_edit = PhabricatorPolicyFilter::hasCapability( | ||||
| $viewer, | $viewer, | ||||
| $project, | $project, | ||||
| PhabricatorPolicyCapability::CAN_EDIT); | PhabricatorPolicyCapability::CAN_EDIT); | ||||
| $column_items = array(); | $column_items = array(); | ||||
| ▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | private function buildColumnMenu( | ||||
| $batch_move_uri = $request->getRequestURI(); | $batch_move_uri = $request->getRequestURI(); | ||||
| $batch_move_uri->replaceQueryParam('move', $column->getID()); | $batch_move_uri->replaceQueryParam('move', $column->getID()); | ||||
| $column_items[] = id(new PhabricatorActionView()) | $column_items[] = id(new PhabricatorActionView()) | ||||
| ->setIcon('fa-arrow-right') | ->setIcon('fa-arrow-right') | ||||
| ->setName(pht('Move Tasks to Column...')) | ->setName(pht('Move Tasks to Column...')) | ||||
| ->setHref($batch_move_uri) | ->setHref($batch_move_uri) | ||||
| ->setWorkflow(true); | ->setWorkflow(true); | ||||
| $query_uri = $request->getRequestURI(); | $query_uri = urisprintf('viewquery/%d/', $column->getID()); | ||||
| $query_uri->replaceQueryParam('queryColumnID', $column->getID()); | $query_uri = $state->newWorkboardURI($query_uri); | ||||
| $column_items[] = id(new PhabricatorActionView()) | $column_items[] = id(new PhabricatorActionView()) | ||||
| ->setName(pht('View as Query')) | ->setName(pht('View as Query')) | ||||
| ->setIcon('fa-search') | ->setIcon('fa-search') | ||||
| ->setHref($query_uri); | ->setHref($query_uri); | ||||
| $edit_uri = 'board/'.$project->getID().'/edit/'.$column->getID().'/'; | $edit_uri = 'board/'.$project->getID().'/edit/'.$column->getID().'/'; | ||||
| $column_items[] = id(new PhabricatorActionView()) | $column_items[] = id(new PhabricatorActionView()) | ||||
| ▲ Show 20 Lines • Show All 301 Lines • Show Last 20 Lines | |||||