~ubuntu-branches/ubuntu/vivid/phabricator/vivid-proposed

« back to all changes in this revision

Viewing changes to phabricator/src/applications/diffusion/application/PhabricatorDiffusionApplication.php

  • Committer: Package Import Robot
  • Author(s): Richard Sellam
  • Date: 2014-10-23 20:49:26 UTC
  • Revision ID: package-import@ubuntu.com-20141023204926-ar20vnfjqwxysrce
Tags: upstream-0~git20141023
ImportĀ upstreamĀ versionĀ 0~git20141023

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?php
 
2
 
 
3
final class PhabricatorDiffusionApplication extends PhabricatorApplication {
 
4
 
 
5
  public function getName() {
 
6
    return pht('Diffusion');
 
7
  }
 
8
 
 
9
  public function getShortDescription() {
 
10
    return pht('Host and Browse Repositories');
 
11
  }
 
12
 
 
13
  public function getBaseURI() {
 
14
    return '/diffusion/';
 
15
  }
 
16
 
 
17
  public function getIconName() {
 
18
    return 'diffusion';
 
19
  }
 
20
 
 
21
  public function isPinnedByDefault(PhabricatorUser $viewer) {
 
22
    return true;
 
23
  }
 
24
 
 
25
  public function getHelpURI() {
 
26
    return PhabricatorEnv::getDoclink('Diffusion User Guide');
 
27
  }
 
28
 
 
29
  public function getFactObjectsForAnalysis() {
 
30
    return array(
 
31
      new PhabricatorRepositoryCommit(),
 
32
    );
 
33
  }
 
34
 
 
35
  public function getEventListeners() {
 
36
    return array(
 
37
      new DiffusionHovercardEventListener(),
 
38
    );
 
39
  }
 
40
 
 
41
  public function getRemarkupRules() {
 
42
    return array(
 
43
      new DiffusionRepositoryRemarkupRule(),
 
44
      new DiffusionCommitRemarkupRule(),
 
45
    );
 
46
  }
 
47
 
 
48
  public function getRoutes() {
 
49
    return array(
 
50
      '/r(?P<callsign>[A-Z]+)(?P<commit>[a-z0-9]+)'
 
51
        => 'DiffusionCommitController',
 
52
      '/diffusion/' => array(
 
53
        '(?:query/(?P<queryKey>[^/]+)/)?'
 
54
          => 'DiffusionRepositoryListController',
 
55
        'new/' => 'DiffusionRepositoryNewController',
 
56
        '(?P<edit>create)/' => 'DiffusionRepositoryCreateController',
 
57
        '(?P<edit>import)/' => 'DiffusionRepositoryCreateController',
 
58
        'pushlog/' => array(
 
59
          '(?:query/(?P<queryKey>[^/]+)/)?' => 'DiffusionPushLogListController',
 
60
          'view/(?P<id>\d+)/' => 'DiffusionPushEventViewController',
 
61
        ),
 
62
        '(?P<callsign>[A-Z]+)/' => array(
 
63
          '' => 'DiffusionRepositoryController',
 
64
 
 
65
          'repository/(?P<dblob>.*)'    => 'DiffusionRepositoryController',
 
66
          'change/(?P<dblob>.*)'        => 'DiffusionChangeController',
 
67
          'history/(?P<dblob>.*)'       => 'DiffusionHistoryController',
 
68
          'browse/(?P<dblob>.*)'        => 'DiffusionBrowseMainController',
 
69
          'lastmodified/(?P<dblob>.*)'  => 'DiffusionLastModifiedController',
 
70
          'diff/'                       => 'DiffusionDiffController',
 
71
          'tags/(?P<dblob>.*)'          => 'DiffusionTagListController',
 
72
          'branches/(?P<dblob>.*)'      => 'DiffusionBranchTableController',
 
73
          'lint/(?P<dblob>.*)'          => 'DiffusionLintController',
 
74
          'commit/(?P<commit>[a-z0-9]+)/branches/'
 
75
            => 'DiffusionCommitBranchesController',
 
76
          'commit/(?P<commit>[a-z0-9]+)/tags/'
 
77
            => 'DiffusionCommitTagsController',
 
78
          'commit/(?P<commit>[a-z0-9]+)/edit/'
 
79
            => 'DiffusionCommitEditController',
 
80
          'edit/' => array(
 
81
            '' => 'DiffusionRepositoryEditMainController',
 
82
            'basic/' => 'DiffusionRepositoryEditBasicController',
 
83
            'encoding/' => 'DiffusionRepositoryEditEncodingController',
 
84
            'activate/' => 'DiffusionRepositoryEditActivateController',
 
85
            'dangerous/' => 'DiffusionRepositoryEditDangerousController',
 
86
            'branches/' => 'DiffusionRepositoryEditBranchesController',
 
87
            'subversion/' => 'DiffusionRepositoryEditSubversionController',
 
88
            'actions/' => 'DiffusionRepositoryEditActionsController',
 
89
            '(?P<edit>remote)/' => 'DiffusionRepositoryCreateController',
 
90
            '(?P<edit>policy)/' => 'DiffusionRepositoryCreateController',
 
91
            'local/' => 'DiffusionRepositoryEditLocalController',
 
92
            'delete/' => 'DiffusionRepositoryEditDeleteController',
 
93
            'hosting/' => 'DiffusionRepositoryEditHostingController',
 
94
            '(?P<serve>serve)/' => 'DiffusionRepositoryEditHostingController',
 
95
            'update/' => 'DiffusionRepositoryEditUpdateController',
 
96
          ),
 
97
          'pathtree/(?P<dblob>.*)' => 'DiffusionPathTreeController',
 
98
          'mirror/' => array(
 
99
            'edit/(?:(?P<id>\d+)/)?' => 'DiffusionMirrorEditController',
 
100
            'delete/(?P<id>\d+)/' => 'DiffusionMirrorDeleteController',
 
101
          ),
 
102
        ),
 
103
 
 
104
        // NOTE: This must come after the rule above; it just gives us a
 
105
        // catch-all for serving repositories over HTTP. We must accept
 
106
        // requests without the trailing "/" because SVN commands don't
 
107
        // necessarily include it.
 
108
        '(?P<callsign>[A-Z]+)(/|$).*' => 'DiffusionRepositoryDefaultController',
 
109
 
 
110
        'inline/' => array(
 
111
          'edit/(?P<phid>[^/]+)/' => 'DiffusionInlineCommentController',
 
112
          'preview/(?P<phid>[^/]+)/'
 
113
            => 'DiffusionInlineCommentPreviewController',
 
114
        ),
 
115
        'services/' => array(
 
116
          'path/' => array(
 
117
            'complete/' => 'DiffusionPathCompleteController',
 
118
            'validate/' => 'DiffusionPathValidateController',
 
119
          ),
 
120
        ),
 
121
        'symbol/(?P<name>[^/]+)/' => 'DiffusionSymbolController',
 
122
        'external/' => 'DiffusionExternalController',
 
123
        'lint/' => 'DiffusionLintController',
 
124
      ),
 
125
    );
 
126
  }
 
127
 
 
128
  public function getApplicationOrder() {
 
129
    return 0.120;
 
130
  }
 
131
 
 
132
  protected function getCustomCapabilities() {
 
133
    return array(
 
134
      DiffusionDefaultViewCapability::CAPABILITY => array(),
 
135
      DiffusionDefaultEditCapability::CAPABILITY => array(
 
136
        'default' => PhabricatorPolicies::POLICY_ADMIN,
 
137
      ),
 
138
      DiffusionDefaultPushCapability::CAPABILITY => array(),
 
139
      DiffusionCreateRepositoriesCapability::CAPABILITY => array(
 
140
        'default' => PhabricatorPolicies::POLICY_ADMIN,
 
141
      ),
 
142
    );
 
143
  }
 
144
 
 
145
}