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
|
|
|
return id(new AphrontAjaxResponse())->setContent(
|
|
|
|
array(
|
2013-05-31 03:55:25 +02:00
|
|
|
'tasks' => $this->renderSingleTask($task),
|
2013-03-23 22:38:01 +01:00
|
|
|
));
|
2012-04-02 21:12:04 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
}
|