[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/legalpad/controller/ -> LegalpadDocumentSignatureListController.php (source)

   1  <?php
   2  
   3  final class LegalpadDocumentSignatureListController extends LegalpadController {
   4  
   5    private $documentID;
   6    private $queryKey;
   7    private $document;
   8  
   9    public function willProcessRequest(array $data) {
  10      $this->documentID = idx($data, 'id');
  11      $this->queryKey = idx($data, 'queryKey');
  12    }
  13  
  14    public function processRequest() {
  15      $request = $this->getRequest();
  16      $user = $request->getUser();
  17  
  18      if ($this->documentID) {
  19        $document = id(new LegalpadDocumentQuery())
  20          ->setViewer($user)
  21          ->withIDs(array($this->documentID))
  22          ->requireCapabilities(
  23            array(
  24              PhabricatorPolicyCapability::CAN_VIEW,
  25              PhabricatorPolicyCapability::CAN_EDIT,
  26            ))
  27          ->executeOne();
  28        if (!$document) {
  29          return new Aphront404Response();
  30        }
  31  
  32        $this->document = $document;
  33      }
  34  
  35      $engine = id(new LegalpadDocumentSignatureSearchEngine());
  36  
  37      if ($this->document) {
  38        $engine->setDocument($this->document);
  39      }
  40  
  41      $controller = id(new PhabricatorApplicationSearchController())
  42        ->setQueryKey($this->queryKey)
  43        ->setSearchEngine($engine)
  44        ->setNavigation($this->buildSideNav());
  45  
  46      return $this->delegateToController($controller);
  47    }
  48  
  49    public function buildSideNav($for_app = false) {
  50      $user = $this->getRequest()->getUser();
  51  
  52      $nav = new AphrontSideNavFilterView();
  53      $nav->setBaseURI(new PhutilURI($this->getApplicationURI()));
  54  
  55      $engine = id(new LegalpadDocumentSignatureSearchEngine())
  56        ->setViewer($user);
  57  
  58      if ($this->document) {
  59        $engine->setDocument($this->document);
  60      }
  61  
  62      $engine->addNavigationItems($nav->getMenu());
  63  
  64      return $nav;
  65    }
  66  
  67    public function buildApplicationCrumbs() {
  68      $crumbs = parent::buildApplicationCrumbs();
  69  
  70      if ($this->document) {
  71        $crumbs->addTextCrumb(
  72          $this->document->getMonogram(),
  73          '/'.$this->document->getMonogram());
  74        $crumbs->addTextCrumb(
  75          pht('Manage'),
  76          $this->getApplicationURI('view/'.$this->document->getID().'/'));
  77      } else {
  78        $crumbs->addTextCrumb(
  79          pht('Signatures'),
  80          '/legalpad/signatures/');
  81      }
  82  
  83      return $crumbs;
  84    }
  85  
  86  }


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