[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/maniphest/controller/ -> ManiphestSubpriorityController.php (source)

   1  <?php
   2  
   3  final class ManiphestSubpriorityController extends ManiphestController {
   4  
   5    public function processRequest() {
   6      $request = $this->getRequest();
   7      $user = $request->getUser();
   8  
   9      if (!$request->validateCSRF()) {
  10        return new Aphront403Response();
  11      }
  12  
  13      $task = id(new ManiphestTaskQuery())
  14        ->setViewer($user)
  15        ->withIDs(array($request->getInt('task')))
  16        ->requireCapabilities(
  17          array(
  18            PhabricatorPolicyCapability::CAN_VIEW,
  19            PhabricatorPolicyCapability::CAN_EDIT,
  20          ))
  21        ->executeOne();
  22      if (!$task) {
  23        return new Aphront404Response();
  24      }
  25  
  26      if ($request->getInt('after')) {
  27        $after_task = id(new ManiphestTaskQuery())
  28          ->setViewer($user)
  29          ->withIDs(array($request->getInt('after')))
  30          ->executeOne();
  31        if (!$after_task) {
  32          return new Aphront404Response();
  33        }
  34        $after_pri = $after_task->getPriority();
  35        $after_sub = $after_task->getSubpriority();
  36      } else {
  37        $after_pri = $request->getInt('priority');
  38        $after_sub = null;
  39      }
  40  
  41      $xactions = array(id(new ManiphestTransaction())
  42        ->setTransactionType(ManiphestTransaction::TYPE_SUBPRIORITY)
  43        ->setNewValue(array(
  44          'newPriority' => $after_pri,
  45          'newSubpriorityBase' => $after_sub,
  46          'direction' => '>',
  47        )),
  48      );
  49      $editor = id(new ManiphestTransactionEditor())
  50        ->setActor($user)
  51        ->setContinueOnMissingFields(true)
  52        ->setContinueOnNoEffect(true)
  53        ->setContentSourceFromRequest($request);
  54  
  55      $editor->applyTransactions($task, $xactions);
  56  
  57      return id(new AphrontAjaxResponse())->setContent(
  58        array(
  59          'tasks' => $this->renderSingleTask($task),
  60        ));
  61    }
  62  
  63  }


Generated: Sun Nov 30 09:20:46 2014 Cross-referenced by PHPXref 0.7.1