Differential D20154 Diff 48161 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 278 Lines • ▼ Show 20 Lines | if ($batch_edit) { | ||||
$saved_query = $search_engine->newSavedQuery(); | $saved_query = $search_engine->newSavedQuery(); | ||||
$saved_query->setParameter('ids', mpull($batch_tasks, 'getID')); | $saved_query->setParameter('ids', mpull($batch_tasks, 'getID')); | ||||
$search_engine->saveQuery($saved_query); | $search_engine->saveQuery($saved_query); | ||||
$query_key = $saved_query->getQueryKey(); | $query_key = $saved_query->getQueryKey(); | ||||
$bulk_uri = new PhutilURI("/maniphest/bulk/query/{$query_key}/"); | $bulk_uri = new PhutilURI("/maniphest/bulk/query/{$query_key}/"); | ||||
$bulk_uri->setQueryParam('board', $this->id); | $bulk_uri->replaceQueryParam('board', $this->id); | ||||
return id(new AphrontRedirectResponse()) | return id(new AphrontRedirectResponse()) | ||||
->setURI($bulk_uri); | ->setURI($bulk_uri); | ||||
} | } | ||||
$move_id = $request->getStr('move'); | $move_id = $request->getStr('move'); | ||||
if (strlen($move_id)) { | if (strlen($move_id)) { | ||||
$column_id_map = mpull($columns, null, 'getID'); | $column_id_map = mpull($columns, null, 'getID'); | ||||
▲ Show 20 Lines • Show All 577 Lines • ▼ Show 20 Lines | foreach ($named as $key => $name) { | ||||
$uri = $this->getApplicationURI( | $uri = $this->getApplicationURI( | ||||
'board/'.$this->id.'/filter/query/'.$key.'/'); | 'board/'.$this->id.'/filter/query/'.$key.'/'); | ||||
$item->setWorkflow(true); | $item->setWorkflow(true); | ||||
} else { | } else { | ||||
$uri = $engine->getQueryResultsPageURI($key); | $uri = $engine->getQueryResultsPageURI($key); | ||||
} | } | ||||
$uri = $this->getURIWithState($uri) | $uri = $this->getURIWithState($uri) | ||||
->setQueryParam('filter', null); | ->removeQueryParam('filter'); | ||||
$item->setHref($uri); | $item->setHref($uri); | ||||
$items[] = $item; | $items[] = $item; | ||||
} | } | ||||
$id = $project->getID(); | $id = $project->getID(); | ||||
$filter_uri = $this->getApplicationURI("board/{$id}/filter/"); | $filter_uri = $this->getApplicationURI("board/{$id}/filter/"); | ||||
▲ Show 20 Lines • Show All 71 Lines • ▼ Show 20 Lines | $manage_items[] = id(new PhabricatorActionView()) | ||||
->setIcon('fa-exchange') | ->setIcon('fa-exchange') | ||||
->setName(pht('Reorder Columns')) | ->setName(pht('Reorder Columns')) | ||||
->setHref($reorder_uri) | ->setHref($reorder_uri) | ||||
->setDisabled(!$can_edit) | ->setDisabled(!$can_edit) | ||||
->setWorkflow(true); | ->setWorkflow(true); | ||||
if ($show_hidden) { | if ($show_hidden) { | ||||
$hidden_uri = $this->getURIWithState() | $hidden_uri = $this->getURIWithState() | ||||
->setQueryParam('hidden', null); | ->removeQueryParam('hidden'); | ||||
$hidden_icon = 'fa-eye-slash'; | $hidden_icon = 'fa-eye-slash'; | ||||
$hidden_text = pht('Hide Hidden Columns'); | $hidden_text = pht('Hide Hidden Columns'); | ||||
} else { | } else { | ||||
$hidden_uri = $this->getURIWithState() | $hidden_uri = $this->getURIWithState() | ||||
->setQueryParam('hidden', 'true'); | ->replaceQueryParam('hidden', 'true'); | ||||
$hidden_icon = 'fa-eye'; | $hidden_icon = 'fa-eye'; | ||||
$hidden_text = pht('Show Hidden Columns'); | $hidden_text = pht('Show Hidden Columns'); | ||||
} | } | ||||
$manage_items[] = id(new PhabricatorActionView()) | $manage_items[] = id(new PhabricatorActionView()) | ||||
->setIcon($hidden_icon) | ->setIcon($hidden_icon) | ||||
->setName($hidden_text) | ->setName($hidden_text) | ||||
->setHref($hidden_uri); | ->setHref($hidden_uri); | ||||
Show All 11 Lines | private function buildManageMenu( | ||||
$manage_uri = $this->getApplicationURI("board/{$id}/manage/"); | $manage_uri = $this->getApplicationURI("board/{$id}/manage/"); | ||||
$manage_items[] = id(new PhabricatorActionView()) | $manage_items[] = id(new PhabricatorActionView()) | ||||
->setIcon('fa-gear') | ->setIcon('fa-gear') | ||||
->setName(pht('Manage Workboard')) | ->setName(pht('Manage Workboard')) | ||||
->setHref($manage_uri); | ->setHref($manage_uri); | ||||
$batch_edit_uri = $request->getRequestURI(); | $batch_edit_uri = $request->getRequestURI(); | ||||
$batch_edit_uri->setQueryParam('batch', self::BATCH_EDIT_ALL); | $batch_edit_uri->replaceQueryParam('batch', self::BATCH_EDIT_ALL); | ||||
$can_batch_edit = PhabricatorPolicyFilter::hasCapability( | $can_batch_edit = PhabricatorPolicyFilter::hasCapability( | ||||
$viewer, | $viewer, | ||||
PhabricatorApplication::getByClass('PhabricatorManiphestApplication'), | PhabricatorApplication::getByClass('PhabricatorManiphestApplication'), | ||||
ManiphestBulkEditCapability::CAPABILITY); | ManiphestBulkEditCapability::CAPABILITY); | ||||
$manage_menu = id(new PhabricatorActionListView()) | $manage_menu = id(new PhabricatorActionListView()) | ||||
->setUser($viewer); | ->setUser($viewer); | ||||
foreach ($manage_items as $item) { | foreach ($manage_items as $item) { | ||||
▲ Show 20 Lines • Show All 74 Lines • ▼ Show 20 Lines | private function buildColumnMenu( | ||||
} | } | ||||
if (count($specs) > 1) { | if (count($specs) > 1) { | ||||
$column_items[] = id(new PhabricatorActionView()) | $column_items[] = id(new PhabricatorActionView()) | ||||
->setType(PhabricatorActionView::TYPE_DIVIDER); | ->setType(PhabricatorActionView::TYPE_DIVIDER); | ||||
} | } | ||||
$batch_edit_uri = $request->getRequestURI(); | $batch_edit_uri = $request->getRequestURI(); | ||||
$batch_edit_uri->setQueryParam('batch', $column->getID()); | $batch_edit_uri->replaceQueryParam('batch', $column->getID()); | ||||
$can_batch_edit = PhabricatorPolicyFilter::hasCapability( | $can_batch_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-list-ul') | ->setIcon('fa-list-ul') | ||||
->setName(pht('Bulk Edit Tasks...')) | ->setName(pht('Bulk Edit Tasks...')) | ||||
->setHref($batch_edit_uri) | ->setHref($batch_edit_uri) | ||||
->setDisabled(!$can_batch_edit); | ->setDisabled(!$can_batch_edit); | ||||
$batch_move_uri = $request->getRequestURI(); | $batch_move_uri = $request->getRequestURI(); | ||||
$batch_move_uri->setQueryParam('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 = $request->getRequestURI(); | ||||
$query_uri->setQueryParam('queryColumnID', $column->getID()); | $query_uri->replaceQueryParam('queryColumnID', $column->getID()); | ||||
$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/'.$this->id.'/edit/'.$column->getID().'/'; | $edit_uri = 'board/'.$this->id.'/edit/'.$column->getID().'/'; | ||||
$column_items[] = id(new PhabricatorActionView()) | $column_items[] = id(new PhabricatorActionView()) | ||||
▲ Show 20 Lines • Show All 60 Lines • ▼ Show 20 Lines | private function getURIWithState($base = null, $force = false) { | ||||
if ($base === null) { | if ($base === null) { | ||||
$base = $this->getRequest()->getRequestURI(); | $base = $this->getRequest()->getRequestURI(); | ||||
} | } | ||||
$base = new PhutilURI($base); | $base = new PhutilURI($base); | ||||
if ($force || ($this->sortKey != $this->getDefaultSort($project))) { | if ($force || ($this->sortKey != $this->getDefaultSort($project))) { | ||||
$base->setQueryParam('order', $this->sortKey); | $base->replaceQueryParam('order', $this->sortKey); | ||||
} else { | } else { | ||||
$base->setQueryParam('order', null); | $base->removeQueryParam('order'); | ||||
} | } | ||||
if ($force || ($this->queryKey != $this->getDefaultFilter($project))) { | if ($force || ($this->queryKey != $this->getDefaultFilter($project))) { | ||||
$base->setQueryParam('filter', $this->queryKey); | $base->replaceQueryParam('filter', $this->queryKey); | ||||
} else { | } else { | ||||
$base->setQueryParam('filter', null); | $base->removeQueryParam('filter'); | ||||
} | } | ||||
$base->setQueryParam('hidden', $this->showHidden ? 'true' : null); | if ($this->showHidden) { | ||||
$base->replaceQueryParam('hidden', 'true'); | |||||
} else { | |||||
$base->removeQueryParam('hidden'); | |||||
} | |||||
return $base; | return $base; | ||||
} | } | ||||
private function buildInitializeContent(PhabricatorProject $project) { | private function buildInitializeContent(PhabricatorProject $project) { | ||||
$request = $this->getRequest(); | $request = $this->getRequest(); | ||||
$viewer = $this->getViewer(); | $viewer = $this->getViewer(); | ||||
▲ Show 20 Lines • Show All 162 Lines • Show Last 20 Lines |