Differential D20637 Diff 49222 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 489 Lines • ▼ Show 20 Lines | foreach ($named as $key => $name) { | ||||
| } | } | ||||
| $item = id(new PhabricatorActionView()) | $item = id(new PhabricatorActionView()) | ||||
| ->setIcon('fa-search') | ->setIcon('fa-search') | ||||
| ->setSelected($is_selected) | ->setSelected($is_selected) | ||||
| ->setName($name); | ->setName($name); | ||||
| if ($is_custom) { | if ($is_custom) { | ||||
| $uri = $this->getApplicationURI( | // When you're using a custom filter already and you select "Custom | ||||
| 'board/'.$project->getID().'/filter/query/'.$key.'/'); | // Filter", you get a dialog back to let you edit the filter. This is | ||||
| // equivalent to selecting "Advanced Filter..." to configure a new | |||||
| // filter. | |||||
| $filter_uri = $state->newWorkboardURI('filter/'); | |||||
| $item->setWorkflow(true); | $item->setWorkflow(true); | ||||
| } else { | } else { | ||||
| $uri = $engine->getQueryResultsPageURI($key); | $filter_uri = urisprintf('query/%s/', $key); | ||||
| $filter_uri = $state->newWorkboardURI($filter_uri); | |||||
| $filter_uri->removeQueryParam('filter'); | |||||
| } | } | ||||
| $uri = $this->getURIWithState($uri) | $item->setHref($filter_uri); | ||||
| ->removeQueryParam('filter'); | |||||
| $item->setHref($uri); | |||||
| $items[] = $item; | $items[] = $item; | ||||
| } | } | ||||
| $id = $project->getID(); | $id = $project->getID(); | ||||
| $filter_uri = $this->getApplicationURI("board/{$id}/filter/"); | $filter_uri = $state->newWorkboardURI('filter/'); | ||||
| $filter_uri = $this->getURIWithState($filter_uri, $force = true); | |||||
| $items[] = id(new PhabricatorActionView()) | $items[] = id(new PhabricatorActionView()) | ||||
| ->setIcon('fa-cog') | ->setIcon('fa-cog') | ||||
| ->setHref($filter_uri) | ->setHref($filter_uri) | ||||
| ->setWorkflow(true) | ->setWorkflow(true) | ||||
| ->setName(pht('Advanced Filter...')); | ->setName(pht('Advanced Filter...')); | ||||
| $save_uri = $state->newWorkboardURI('default/filter/'); | $save_uri = $state->newWorkboardURI('default/filter/'); | ||||
| ▲ Show 20 Lines • Show All 187 Lines • ▼ Show 20 Lines | private function buildColumnMenu( | ||||
| $query_uri = urisprintf('viewquery/%d/', $column->getID()); | $query_uri = urisprintf('viewquery/%d/', $column->getID()); | ||||
| $query_uri = $state->newWorkboardURI($query_uri); | $query_uri = $state->newWorkboardURI($query_uri); | ||||
| $column_items[] = id(new PhabricatorActionView()) | $column_items[] = id(new PhabricatorActionView()) | ||||
| ->setName(pht('View Tasks as Query')) | ->setName(pht('View Tasks as Query')) | ||||
| ->setIcon('fa-search') | ->setIcon('fa-search') | ||||
| ->setHref($query_uri); | ->setHref($query_uri); | ||||
| $column_move_uri = $state->newWorkboardURI( | $column_move_uri = urisprintf('bulkmove/%d/column/', $column->getID()); | ||||
| urisprintf( | $column_move_uri = $state->newWorkboardURI($column_move_uri); | ||||
| 'bulkmove/%d/column/', | |||||
| $column->getID())); | |||||
| $column_items[] = id(new PhabricatorActionView()) | $column_items[] = id(new PhabricatorActionView()) | ||||
| ->setIcon('fa-arrows-h') | ->setIcon('fa-arrows-h') | ||||
| ->setName(pht('Move Tasks to Column...')) | ->setName(pht('Move Tasks to Column...')) | ||||
| ->setHref($column_move_uri) | ->setHref($column_move_uri) | ||||
| ->setWorkflow(true); | ->setWorkflow(true); | ||||
| $project_move_uri = $state->newWorkboardURI( | $project_move_uri = urisprintf('bulkmove/%d/project/', $column->getID()); | ||||
| urisprintf( | $project_move_uri = $state->newWorkboardURI($project_move_uri); | ||||
| 'bulkmove/%d/project/', | |||||
| $column->getID())); | |||||
| $column_items[] = id(new PhabricatorActionView()) | $column_items[] = id(new PhabricatorActionView()) | ||||
| ->setIcon('fa-arrows') | ->setIcon('fa-arrows') | ||||
| ->setName(pht('Move Tasks to Project...')) | ->setName(pht('Move Tasks to Project...')) | ||||
| ->setHref($project_move_uri) | ->setHref($project_move_uri) | ||||
| ->setWorkflow(true); | ->setWorkflow(true); | ||||
| $bulk_edit_uri = $state->newWorkboardURI( | $bulk_edit_uri = urisprintf('bulk/%d/', $column->getID()); | ||||
| urisprintf( | $bulk_edit_uri = $state->newWorkboardURI($bulk_edit_uri); | ||||
epriestley: No actual changes here, just making the code look more similar throughout the controller. | |||||
| 'bulk/%d/', | |||||
| $column->getID())); | |||||
| $can_bulk_edit = PhabricatorPolicyFilter::hasCapability( | $can_bulk_edit = PhabricatorPolicyFilter::hasCapability( | ||||
| $viewer, | $viewer, | ||||
| PhabricatorApplication::getByClass('PhabricatorManiphestApplication'), | PhabricatorApplication::getByClass('PhabricatorManiphestApplication'), | ||||
| ManiphestBulkEditCapability::CAPABILITY); | ManiphestBulkEditCapability::CAPABILITY); | ||||
| $column_items[] = id(new PhabricatorActionView()) | $column_items[] = id(new PhabricatorActionView()) | ||||
| ->setIcon('fa-pencil-square-o') | ->setIcon('fa-pencil-square-o') | ||||
| Show All 9 Lines | private function buildColumnMenu( | ||||
| $column_items[] = id(new PhabricatorActionView()) | $column_items[] = id(new PhabricatorActionView()) | ||||
| ->setName(pht('Edit Column')) | ->setName(pht('Edit Column')) | ||||
| ->setIcon('fa-pencil') | ->setIcon('fa-pencil') | ||||
| ->setHref($this->getApplicationURI($edit_uri)) | ->setHref($this->getApplicationURI($edit_uri)) | ||||
| ->setDisabled(!$can_edit) | ->setDisabled(!$can_edit) | ||||
| ->setWorkflow(true); | ->setWorkflow(true); | ||||
| $can_hide = ($can_edit && !$column->isDefaultColumn()); | $can_hide = ($can_edit && !$column->isDefaultColumn()); | ||||
| $hide_uri = 'board/'.$project->getID().'/hide/'.$column->getID().'/'; | |||||
| $hide_uri = $this->getApplicationURI($hide_uri); | $hide_uri = urisprintf('hide/%d/', $column->getID()); | ||||
| $hide_uri = $this->getURIWithState($hide_uri); | $hide_uri = $state->newWorkboardURI($hide_uri); | ||||
| if (!$column->isHidden()) { | if (!$column->isHidden()) { | ||||
| $column_items[] = id(new PhabricatorActionView()) | $column_items[] = id(new PhabricatorActionView()) | ||||
| ->setName(pht('Hide Column')) | ->setName(pht('Hide Column')) | ||||
| ->setIcon('fa-eye-slash') | ->setIcon('fa-eye-slash') | ||||
| ->setHref($hide_uri) | ->setHref($hide_uri) | ||||
| ->setDisabled(!$can_hide) | ->setDisabled(!$can_hide) | ||||
| ->setWorkflow(true); | ->setWorkflow(true); | ||||
| ▲ Show 20 Lines • Show All 89 Lines • ▼ Show 20 Lines | $trigger_button = id(new PHUIIconView()) | ||||
| array( | array( | ||||
| 'items' => hsprintf('%s', $trigger_menu), | 'items' => hsprintf('%s', $trigger_menu), | ||||
| 'columnPHID' => $column->getPHID(), | 'columnPHID' => $column->getPHID(), | ||||
| )); | )); | ||||
| return $trigger_button; | return $trigger_button; | ||||
| } | } | ||||
| /** | |||||
| * Add current state parameters (like order and the visibility of hidden | |||||
| * columns) to a URI. | |||||
| * | |||||
| * This allows actions which toggle or adjust one piece of state to keep | |||||
| * the rest of the board state persistent. If no URI is provided, this method | |||||
| * starts with the request URI. | |||||
| * | |||||
| * @param string|null URI to add state parameters to. | |||||
| * @param bool True to explicitly include all state. | |||||
| * @return PhutilURI URI with state parameters. | |||||
| */ | |||||
| private function getURIWithState($base = null, $force = false) { | |||||
| if ($base === null) { | |||||
| $base = $this->getProject()->getWorkboardURI(); | |||||
| } | |||||
| return $this->getViewState()->newURI($base, $force); | |||||
| } | |||||
| private function buildInitializeContent(PhabricatorProject $project) { | private function buildInitializeContent(PhabricatorProject $project) { | ||||
| $request = $this->getRequest(); | $request = $this->getRequest(); | ||||
| $viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
| $type = $request->getStr('initialize-type'); | $type = $request->getStr('initialize-type'); | ||||
| $id = $project->getID(); | $id = $project->getID(); | ||||
| ▲ Show 20 Lines • Show All 158 Lines • Show Last 20 Lines | |||||
No actual changes here, just making the code look more similar throughout the controller.