2012-08-02 23:07:21 +02:00
|
|
|
<?php
|
|
|
|
|
2014-07-23 02:03:09 +02:00
|
|
|
final class PhabricatorAuditApplication extends PhabricatorApplication {
|
2012-08-02 23:07:21 +02:00
|
|
|
|
|
|
|
public function getBaseURI() {
|
|
|
|
return '/audit/';
|
|
|
|
}
|
|
|
|
|
2016-01-28 17:40:22 +01:00
|
|
|
public function getIcon() {
|
2015-01-25 08:41:43 +01:00
|
|
|
return 'fa-check-circle-o';
|
|
|
|
}
|
|
|
|
|
2014-07-23 15:52:50 +02:00
|
|
|
public function getName() {
|
|
|
|
return pht('Audit');
|
|
|
|
}
|
|
|
|
|
2014-05-29 21:17:54 +02:00
|
|
|
public function getShortDescription() {
|
|
|
|
return pht('Browse and Audit Commits');
|
|
|
|
}
|
|
|
|
|
(Redesign) Clean up older "Tile" code
Summary:
This does some backend cleanup of the tile stuff, and some general cleanup of other application things:
- Users who haven't customized preferences get a small, specific set of pinned applications: Differential, Maniphest, Diffusion, Audit, Phriction, Projects (and, for administrators, Auth, Config and People).
- Old tile size methods are replaced with `isPinnnedByDefault()`.
- Shortened some short descriptions.
- `shouldAppearInLaunchView()` replaced by less ambiguous `isLaunchable()`.
- Added a marker for third-party / extension applications.
Test Plan: Faked away my preferences and viewed the home page, saw a smaller set of default pins.
Reviewers: chad
Reviewed By: chad
Subscribers: epriestley
Differential Revision: https://secure.phabricator.com/D9358
2014-06-04 00:47:27 +02:00
|
|
|
public function isPinnedByDefault(PhabricatorUser $viewer) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2015-04-01 17:13:12 +02:00
|
|
|
public function getHelpDocumentationArticles(PhabricatorUser $viewer) {
|
|
|
|
return array(
|
|
|
|
array(
|
|
|
|
'name' => pht('Audit User Guide'),
|
|
|
|
'href' => PhabricatorEnv::getDoclink('Audit User Guide'),
|
|
|
|
),
|
|
|
|
);
|
2012-10-10 23:10:24 +02:00
|
|
|
}
|
|
|
|
|
2012-08-05 23:03:39 +02:00
|
|
|
public function getRoutes() {
|
|
|
|
return array(
|
|
|
|
'/audit/' => array(
|
2014-04-27 18:43:05 +02:00
|
|
|
'(?:query/(?P<queryKey>[^/]+)/)?' => 'PhabricatorAuditListController',
|
2012-08-05 23:03:39 +02:00
|
|
|
),
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
2012-10-04 00:46:19 +02:00
|
|
|
public function getApplicationOrder() {
|
Add basic support for new navigation menu
Summary:
Add a new left-side application menu. This menu shows which application you're in and provides a quick way to get to other applications.
On desktops, menus are always shown but the app menu can be collapsed to be very small.
On tablets, navigation buttons allow you to choose between the menus and the content.
On phones, navigation buttons allow you to choose between the app menu, the local menu, and the content.
This needs some code and UI cleanup, but has no effect yet so I think it's okay to land as-is, I'll clean it up a bit as I start integrating it. I want to play around with it a bit and see if it's good/useful or horrible anyway.
Test Plan: Will include screenshots.
Reviewers: vrana, btrahan, chad
Reviewed By: btrahan
CC: aran, alanh
Maniphest Tasks: T1569
Differential Revision: https://secure.phabricator.com/D3223
2012-08-11 16:06:12 +02:00
|
|
|
return 0.130;
|
|
|
|
}
|
|
|
|
|
2012-08-02 23:07:21 +02:00
|
|
|
public function loadStatus(PhabricatorUser $user) {
|
|
|
|
$status = array();
|
2015-12-02 20:35:24 +01:00
|
|
|
$limit = self::MAX_STATUS_ITEMS;
|
2012-08-02 23:07:21 +02:00
|
|
|
|
|
|
|
$phids = PhabricatorAuditCommentEditor::loadAuditPHIDsForUser($user);
|
|
|
|
|
2014-04-27 18:43:05 +02:00
|
|
|
$query = id(new DiffusionCommitQuery())
|
|
|
|
->setViewer($user)
|
|
|
|
->withAuthorPHIDs(array($user->getPHID()))
|
2014-12-12 21:02:25 +01:00
|
|
|
->withAuditStatus(DiffusionCommitQuery::AUDIT_STATUS_CONCERN)
|
2015-12-02 20:35:24 +01:00
|
|
|
->setLimit($limit);
|
2014-04-27 18:43:05 +02:00
|
|
|
$commits = $query->execute();
|
2012-08-02 23:07:21 +02:00
|
|
|
|
2013-02-22 13:57:43 +01:00
|
|
|
$count = count($commits);
|
2015-12-02 20:35:24 +01:00
|
|
|
if ($count >= $limit) {
|
2016-06-01 13:52:38 +02:00
|
|
|
$count_str = pht('%s+ Problem Commits', new PhutilNumber($limit - 1));
|
2015-12-02 20:35:24 +01:00
|
|
|
} else {
|
|
|
|
$count_str = pht('%s Problem Commit(s)', new PhutilNumber($count));
|
|
|
|
}
|
|
|
|
|
2013-02-22 13:57:43 +01:00
|
|
|
$type = PhabricatorApplicationStatusView::TYPE_NEEDS_ATTENTION;
|
2012-08-02 23:07:21 +02:00
|
|
|
$status[] = id(new PhabricatorApplicationStatusView())
|
|
|
|
->setType($type)
|
2014-12-12 21:02:25 +01:00
|
|
|
->setText($count_str)
|
2012-08-02 23:07:21 +02:00
|
|
|
->setCount($count);
|
|
|
|
|
2014-04-27 18:43:05 +02:00
|
|
|
$query = id(new DiffusionCommitQuery())
|
|
|
|
->setViewer($user)
|
2015-08-31 19:17:54 +02:00
|
|
|
->withNeedsAuditByPHIDs($phids)
|
2014-04-27 18:43:05 +02:00
|
|
|
->withAuditStatus(DiffusionCommitQuery::AUDIT_STATUS_OPEN)
|
2015-12-02 20:35:24 +01:00
|
|
|
->setLimit($limit);
|
2014-04-27 18:43:05 +02:00
|
|
|
$commits = $query->execute();
|
2012-08-02 23:07:21 +02:00
|
|
|
|
2014-04-27 18:43:05 +02:00
|
|
|
$count = count($commits);
|
2015-12-02 20:35:24 +01:00
|
|
|
if ($count >= $limit) {
|
2016-06-01 13:52:38 +02:00
|
|
|
$count_str = pht(
|
|
|
|
'%s+ Commits Awaiting Audit',
|
|
|
|
new PhutilNumber($limit - 1));
|
2015-12-02 20:35:24 +01:00
|
|
|
} else {
|
2016-06-01 13:52:38 +02:00
|
|
|
$count_str = pht(
|
|
|
|
'%s Commit(s) Awaiting Audit',
|
|
|
|
new PhutilNumber($count));
|
2015-12-02 20:35:24 +01:00
|
|
|
}
|
|
|
|
|
2013-02-22 13:57:43 +01:00
|
|
|
$type = PhabricatorApplicationStatusView::TYPE_WARNING;
|
2012-08-02 23:07:21 +02:00
|
|
|
$status[] = id(new PhabricatorApplicationStatusView())
|
|
|
|
->setType($type)
|
2014-12-12 21:02:25 +01:00
|
|
|
->setText($count_str)
|
2012-08-02 23:07:21 +02:00
|
|
|
->setCount($count);
|
|
|
|
|
|
|
|
return $status;
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|