[ Index ]

PHP Cross Reference of Phabricator

title

Body

[close]

/src/applications/differential/application/ -> PhabricatorDifferentialApplication.php (source)

   1  <?php
   2  
   3  final class PhabricatorDifferentialApplication extends PhabricatorApplication {
   4  
   5    public function getBaseURI() {
   6      return '/differential/';
   7    }
   8  
   9    public function getName() {
  10      return pht('Differential');
  11    }
  12  
  13    public function getShortDescription() {
  14      return pht('Review Code');
  15    }
  16  
  17    public function getIconName() {
  18      return 'differential';
  19    }
  20  
  21    public function isPinnedByDefault(PhabricatorUser $viewer) {
  22      return true;
  23    }
  24  
  25    public function getHelpURI() {
  26      return PhabricatorEnv::getDoclink('Differential User Guide');
  27    }
  28  
  29    public function getFactObjectsForAnalysis() {
  30      return array(
  31        new DifferentialRevision(),
  32      );
  33    }
  34  
  35    public function getTitleGlyph() {
  36      return "\xE2\x9A\x99";
  37    }
  38  
  39    public function getEventListeners() {
  40      return array(
  41        new DifferentialActionMenuEventListener(),
  42        new DifferentialHovercardEventListener(),
  43        new DifferentialLandingActionMenuEventListener(),
  44      );
  45    }
  46  
  47    public function getOverview() {
  48      return pht(<<<EOTEXT
  49  Differential is a **code review application** which allows engineers to review,
  50  discuss and approve changes to software.
  51  EOTEXT
  52  );
  53    }
  54  
  55    public function getRoutes() {
  56      return array(
  57        '/D(?P<id>[1-9]\d*)' => 'DifferentialRevisionViewController',
  58        '/differential/' => array(
  59          '(?:query/(?P<queryKey>[^/]+)/)?'
  60            => 'DifferentialRevisionListController',
  61          'diff/' => array(
  62            '(?P<id>[1-9]\d*)/' => 'DifferentialDiffViewController',
  63            'create/' => 'DifferentialDiffCreateController',
  64          ),
  65          'changeset/' => 'DifferentialChangesetViewController',
  66          'revision/edit/(?:(?P<id>[1-9]\d*)/)?'
  67            => 'DifferentialRevisionEditController',
  68          'revision/land/(?:(?P<id>[1-9]\d*))/(?P<strategy>[^/]+)/'
  69            => 'DifferentialRevisionLandController',
  70          'revision/closedetails/(?P<phid>[^/]+)/'
  71            => 'DifferentialRevisionCloseDetailsController',
  72          'comment/' => array(
  73            'preview/(?P<id>[1-9]\d*)/' => 'DifferentialCommentPreviewController',
  74            'save/(?P<id>[1-9]\d*)/' => 'DifferentialCommentSaveController',
  75            'inline/' => array(
  76              'preview/(?P<id>[1-9]\d*)/'
  77                => 'DifferentialInlineCommentPreviewController',
  78              'edit/(?P<id>[1-9]\d*)/'
  79                => 'DifferentialInlineCommentEditController',
  80            ),
  81          ),
  82          'preview/' => 'PhabricatorMarkupPreviewController',
  83        ),
  84      );
  85    }
  86  
  87    public function getApplicationOrder() {
  88      return 0.100;
  89    }
  90  
  91    public function getRemarkupRules() {
  92      return array(
  93        new DifferentialRemarkupRule(),
  94      );
  95    }
  96  
  97    public function loadStatus(PhabricatorUser $user) {
  98      $revisions = id(new DifferentialRevisionQuery())
  99        ->setViewer($user)
 100        ->withResponsibleUsers(array($user->getPHID()))
 101        ->withStatus(DifferentialRevisionQuery::STATUS_OPEN)
 102        ->needRelationships(true)
 103        ->execute();
 104  
 105      list($blocking, $active, $waiting) =
 106        DifferentialRevisionQuery::splitResponsible(
 107          $revisions,
 108          array($user->getPHID()));
 109  
 110      $status = array();
 111  
 112      $blocking = count($blocking);
 113      $type = PhabricatorApplicationStatusView::TYPE_NEEDS_ATTENTION;
 114      $status[] = id(new PhabricatorApplicationStatusView())
 115        ->setType($type)
 116        ->setText(pht('%d Review(s) Blocking Others', $blocking))
 117        ->setCount($blocking);
 118  
 119      $active = count($active);
 120      $type = PhabricatorApplicationStatusView::TYPE_WARNING;
 121      $status[] = id(new PhabricatorApplicationStatusView())
 122        ->setType($type)
 123        ->setText(pht('%d Review(s) Need Attention', $active))
 124        ->setCount($active);
 125  
 126      $waiting = count($waiting);
 127      $type = PhabricatorApplicationStatusView::TYPE_INFO;
 128      $status[] = id(new PhabricatorApplicationStatusView())
 129        ->setType($type)
 130        ->setText(pht('%d Review(s) Waiting on Others', $waiting))
 131        ->setCount($waiting);
 132  
 133      return $status;
 134    }
 135  
 136    protected function getCustomCapabilities() {
 137      return array(
 138        DifferentialDefaultViewCapability::CAPABILITY => array(
 139          'caption' => pht('Default view policy for newly created revisions.'),
 140        ),
 141      );
 142    }
 143  
 144  }


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