PageRenderTime 50ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/src/applications/differential/application/PhabricatorApplicationDifferential.php

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