Differential D18805 Diff 45277 src/applications/maniphest/controller/ManiphestBatchEditController.php
Changeset View
Changeset View
Standalone View
Standalone View
src/applications/maniphest/controller/ManiphestBatchEditController.php
Show First 20 Lines • Show All 83 Lines • ▼ Show 20 Lines | if ($request->isFormPost() && $actions) { | ||||
->setContentSourceFromRequest($request) | ->setContentSourceFromRequest($request) | ||||
->setContinueOnMissingFields(true) | ->setContinueOnMissingFields(true) | ||||
->applyTransactions($job, $xactions); | ->applyTransactions($job, $xactions); | ||||
return id(new AphrontRedirectResponse()) | return id(new AphrontRedirectResponse()) | ||||
->setURI($job->getMonitorURI()); | ->setURI($job->getMonitorURI()); | ||||
} | } | ||||
$handles = ManiphestTaskListView::loadTaskHandles($viewer, $tasks); | $list = $this->newBulkObjectList($tasks); | ||||
$list = new ManiphestTaskListView(); | |||||
$list->setTasks($tasks); | |||||
$list->setUser($viewer); | |||||
$list->setHandles($handles); | |||||
$template = new AphrontTokenizerTemplateView(); | $template = new AphrontTokenizerTemplateView(); | ||||
$template = $template->render(); | $template = $template->render(); | ||||
$projects_source = new PhabricatorProjectDatasource(); | $projects_source = new PhabricatorProjectDatasource(); | ||||
$mailable_source = new PhabricatorMetaMTAMailableDatasource(); | $mailable_source = new PhabricatorMetaMTAMailableDatasource(); | ||||
$mailable_source->setViewer($viewer); | $mailable_source->setViewer($viewer); | ||||
$owner_source = new ManiphestAssigneeDatasource(); | $owner_source = new ManiphestAssigneeDatasource(); | ||||
Show All 31 Lines | Javelin::initBehavior( | ||||
'limit' => 1, | 'limit' => 1, | ||||
), | ), | ||||
), | ), | ||||
'input' => 'batch-form-actions', | 'input' => 'batch-form-actions', | ||||
'priorityMap' => ManiphestTaskPriority::getTaskPriorityMap(), | 'priorityMap' => ManiphestTaskPriority::getTaskPriorityMap(), | ||||
'statusMap' => ManiphestTaskStatus::getTaskStatusMap(), | 'statusMap' => ManiphestTaskStatus::getTaskStatusMap(), | ||||
)); | )); | ||||
$form = id(new AphrontFormView()) | $form = id(new PHUIFormLayoutView()) | ||||
->setUser($viewer) | ->setUser($viewer); | ||||
->addHiddenInput('board', $board_id) | |||||
->setID('maniphest-batch-edit-form'); | |||||
foreach ($tasks as $task) { | |||||
$form->appendChild( | |||||
phutil_tag( | |||||
'input', | |||||
array( | |||||
'type' => 'hidden', | |||||
'name' => 'batch[]', | |||||
'value' => $task->getID(), | |||||
))); | |||||
} | |||||
$form->appendChild( | $form->appendChild( | ||||
phutil_tag( | phutil_tag( | ||||
'input', | 'input', | ||||
array( | array( | ||||
'type' => 'hidden', | 'type' => 'hidden', | ||||
'name' => 'actions', | 'name' => 'actions', | ||||
'id' => 'batch-form-actions', | 'id' => 'batch-form-actions', | ||||
))); | ))); | ||||
$form->appendChild( | $form->appendChild( | ||||
id(new PHUIFormInsetView()) | id(new PHUIFormInsetView()) | ||||
->setTitle(pht('Actions')) | ->setTitle(pht('Actions')) | ||||
->setRightButton(javelin_tag( | ->setRightButton(javelin_tag( | ||||
'a', | 'a', | ||||
array( | array( | ||||
'href' => '#', | 'href' => '#', | ||||
'class' => 'button button-green', | 'class' => 'button button-green', | ||||
Show All 28 Lines | $task_box = id(new PHUIObjectBoxView()) | ||||
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ||||
->setObjectList($list); | ->setObjectList($list); | ||||
$form_box = id(new PHUIObjectBoxView()) | $form_box = id(new PHUIObjectBoxView()) | ||||
->setHeaderText(pht('Actions')) | ->setHeaderText(pht('Actions')) | ||||
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) | ||||
->setForm($form); | ->setForm($form); | ||||
$view = id(new PHUITwoColumnView()) | |||||
->setHeader($header) | $complete_form = phabricator_form( | ||||
->setFooter(array( | $viewer, | ||||
array( | |||||
'action' => $request->getRequestURI(), | |||||
'method' => 'POST', | |||||
'id' => 'maniphest-batch-edit-form', | |||||
), | |||||
array( | |||||
phutil_tag( | |||||
'input', | |||||
array( | |||||
'type' => 'hidden', | |||||
'name' => 'board', | |||||
'value' => $board_id, | |||||
)), | |||||
$task_box, | $task_box, | ||||
$form_box, | $form_box, | ||||
)); | )); | ||||
$view = id(new PHUITwoColumnView()) | |||||
->setHeader($header) | |||||
->setFooter($complete_form); | |||||
return $this->newPage() | return $this->newPage() | ||||
->setTitle($title) | ->setTitle($title) | ||||
->setCrumbs($crumbs) | ->setCrumbs($crumbs) | ||||
->appendChild($view); | ->appendChild($view); | ||||
} | } | ||||
private function newBulkObjectList(array $objects) { | |||||
$viewer = $this->getViewer(); | |||||
$objects = mpull($objects, null, 'getPHID'); | |||||
$handles = $viewer->loadHandles(array_keys($objects)); | |||||
$status_closed = PhabricatorObjectHandle::STATUS_CLOSED; | |||||
$list = id(new PHUIObjectItemListView()) | |||||
->setViewer($viewer) | |||||
->setFlush(true); | |||||
foreach ($objects as $phid => $object) { | |||||
$handle = $handles[$phid]; | |||||
$is_closed = ($handle->getStatus() === $status_closed); | |||||
$item = id(new PHUIObjectItemView()) | |||||
->setHeader($handle->getFullName()) | |||||
->setHref($handle->getURI()) | |||||
->setDisabled($is_closed) | |||||
->setSelectable('batch[]', $object->getID(), true); | |||||
$list->addItem($item); | |||||
} | |||||
return $list; | |||||
} | |||||
} | } |