1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-27 09:12:41 +01:00

enabled Audit to filter Concern vs. No-Concern status

Summary:
Fixes T2582

You can filter Concern vs. No-Concern status

Choosing a concern filter that's not `all` implies filter `status` to be `open`

Test Plan: fiddled around with it in Audit

Reviewers: epriestley, btrahan

Reviewed By: epriestley

CC: aran, Korvin

Maniphest Tasks: T2582

Differential Revision: https://secure.phabricator.com/D5140
This commit is contained in:
Anh Nhan Nguyen 2013-02-28 07:55:06 -08:00 committed by epriestley
parent 362511c3ae
commit 7f6ea1cd5e
4 changed files with 38 additions and 13 deletions

View file

@ -24,4 +24,11 @@ final class PhabricatorAuditCommitStatusConstants {
return idx(self::getStatusNameMap(), $code, 'Unknown');
}
public static function getOpenStatusConstants() {
return array(
self::CONCERN_RAISED,
self::NEEDS_AUDIT,
);
}
}

View file

@ -5,6 +5,7 @@ final class PhabricatorAuditListController extends PhabricatorAuditController {
private $filter;
private $name;
private $filterStatus;
private $filterConcern;
public function willProcessRequest(array $data) {
$this->filter = idx($data, 'filter');
@ -38,6 +39,7 @@ final class PhabricatorAuditListController extends PhabricatorAuditController {
}
$this->filterStatus = $request->getStr('status', 'all');
$handle = $this->loadHandle();
$nav->appendChild($this->buildListFilters($handle));
@ -187,6 +189,7 @@ final class PhabricatorAuditListController extends PhabricatorAuditController {
array(
'all' => pht('All'),
'open' => pht('Open'),
'concern' => pht('Concern Raised'),
)));
}
@ -346,20 +349,19 @@ final class PhabricatorAuditListController extends PhabricatorAuditController {
}
switch ($this->filter) {
case 'audits':
case 'user':
case 'project':
case 'package':
case 'repository':
case 'active':
$query->withStatus(PhabricatorAuditQuery::STATUS_OPEN);
break;
default:
switch ($this->filterStatus) {
case 'open':
$query->withStatus(PhabricatorAuditQuery::STATUS_OPEN);
break;
case 'concern':
$query->withStatus(PhabricatorAuditQuery::STATUS_CONCERN);
break;
}
break;
case 'active':
$query->withStatus(PhabricatorAuditQuery::STATUS_OPEN);
break;
}
if ($handle) {
@ -454,13 +456,15 @@ final class PhabricatorAuditListController extends PhabricatorAuditController {
switch ($this->filter) {
case 'active':
$query->withStatus(PhabricatorAuditQuery::STATUS_OPEN);
$query->withStatus(PhabricatorAuditCommitQuery::STATUS_OPEN);
break;
case 'author':
case 'packagecommits':
default:
switch ($this->filterStatus) {
case 'open':
$query->withStatus(PhabricatorAuditQuery::STATUS_OPEN);
$query->withStatus(PhabricatorAuditCommitQuery::STATUS_OPEN);
break;
case 'concern':
$query->withStatus(PhabricatorAuditCommitQuery::STATUS_CONCERN);
break;
}
break;

View file

@ -16,6 +16,7 @@ final class PhabricatorAuditCommitQuery {
private $status = 'status-any';
const STATUS_ANY = 'status-any';
const STATUS_OPEN = 'status-open';
const STATUS_CONCERN = 'status-concern';
public function withAuthorPHIDs(array $author_phids) {
$this->authorPHIDs = $author_phids;
@ -177,12 +178,18 @@ final class PhabricatorAuditCommitQuery {
$status = $this->status;
switch ($status) {
case self::STATUS_OPEN:
case self::STATUS_CONCERN:
$where[] = qsprintf(
$conn_r,
'c.auditStatus = %s',
PhabricatorAuditCommitStatusConstants::CONCERN_RAISED);
break;
case self::STATUS_OPEN:
$where[] = qsprintf(
$conn_r,
'c.auditStatus IN (%Ls)',
PhabricatorAuditCommitStatusConstants::getOpenStatusConstants());
break;
case self::STATUS_ANY:
break;
default:

View file

@ -18,6 +18,7 @@ final class PhabricatorAuditQuery {
private $status = 'status-any';
const STATUS_ANY = 'status-any';
const STATUS_OPEN = 'status-open';
const STATUS_CONCERN = 'status-concern';
private $commits;
@ -190,6 +191,12 @@ final class PhabricatorAuditQuery {
$status = $this->status;
switch ($status) {
case self::STATUS_CONCERN:
$where[] = qsprintf(
$conn_r,
'req.auditStatus = %s',
PhabricatorAuditStatusConstants::CONCERNED);
break;
case self::STATUS_OPEN:
$where[] = qsprintf(
$conn_r,