2012-04-02 21:12:04 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @group maniphest
|
|
|
|
*/
|
|
|
|
final class ManiphestSubpriorityController extends ManiphestController {
|
|
|
|
|
|
|
|
public function processRequest() {
|
|
|
|
$request = $this->getRequest();
|
2013-03-23 22:38:01 +01:00
|
|
|
$user = $request->getUser();
|
2012-04-02 21:12:04 +02:00
|
|
|
|
|
|
|
if (!$request->validateCSRF()) {
|
|
|
|
return new Aphront403Response();
|
|
|
|
}
|
|
|
|
|
|
|
|
$task = id(new ManiphestTask())->load($request->getInt('task'));
|
|
|
|
if (!$task) {
|
|
|
|
return new Aphront404Response();
|
|
|
|
}
|
|
|
|
|
|
|
|
if ($request->getInt('after')) {
|
|
|
|
$after_task = id(new ManiphestTask())->load($request->getInt('after'));
|
|
|
|
if (!$after_task) {
|
|
|
|
return new Aphront404Response();
|
|
|
|
}
|
|
|
|
$after_pri = $after_task->getPriority();
|
|
|
|
$after_sub = $after_task->getSubpriority();
|
|
|
|
} else {
|
|
|
|
$after_pri = $request->getInt('priority');
|
|
|
|
$after_sub = null;
|
|
|
|
}
|
|
|
|
|
|
|
|
$new_sub = ManiphestTransactionEditor::getNextSubpriority(
|
|
|
|
$after_pri,
|
|
|
|
$after_sub);
|
|
|
|
|
|
|
|
if ($after_pri != $task->getPriority()) {
|
|
|
|
$xaction = new ManiphestTransaction();
|
|
|
|
$xaction->setAuthorPHID($request->getUser()->getPHID());
|
|
|
|
|
|
|
|
// TODO: Content source?
|
|
|
|
|
|
|
|
$xaction->setTransactionType(ManiphestTransactionType::TYPE_PRIORITY);
|
|
|
|
$xaction->setNewValue($after_pri);
|
|
|
|
|
|
|
|
$editor = new ManiphestTransactionEditor();
|
2012-10-10 19:18:23 +02:00
|
|
|
$editor->setActor($request->getUser());
|
2012-04-02 21:12:04 +02:00
|
|
|
$editor->applyTransactions($task, array($xaction));
|
|
|
|
}
|
|
|
|
|
|
|
|
$task->setSubpriority($new_sub);
|
|
|
|
$task->save();
|
|
|
|
|
2013-03-23 22:38:01 +01:00
|
|
|
$phids = $task->getProjectPHIDs();
|
|
|
|
if ($task->getOwnerPHID()) {
|
|
|
|
$phids[] = $task->getOwnerPHID();
|
|
|
|
}
|
|
|
|
|
|
|
|
$handles = id(new PhabricatorObjectHandleData($phids))
|
|
|
|
->setViewer($user)
|
|
|
|
->loadHandles();
|
2012-04-02 21:12:04 +02:00
|
|
|
|
2013-03-23 22:38:01 +01:00
|
|
|
$view = id(new ManiphestTaskListView())
|
|
|
|
->setUser($user)
|
|
|
|
->setShowSubpriorityControls(true)
|
|
|
|
->setShowBatchControls(true)
|
|
|
|
->setHandles($handles)
|
|
|
|
->setTasks(array($task));
|
2012-04-02 21:12:04 +02:00
|
|
|
|
2013-03-23 22:38:01 +01:00
|
|
|
return id(new AphrontAjaxResponse())->setContent(
|
|
|
|
array(
|
|
|
|
'tasks' => $view,
|
|
|
|
));
|
2012-04-02 21:12:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|