Page MenuHomePhabricator

D10906.diff
No OneTemporary

D10906.diff

diff --git a/src/applications/audit/query/PhabricatorCommitSearchEngine.php b/src/applications/audit/query/PhabricatorCommitSearchEngine.php
--- a/src/applications/audit/query/PhabricatorCommitSearchEngine.php
+++ b/src/applications/audit/query/PhabricatorCommitSearchEngine.php
@@ -34,7 +34,8 @@
public function buildQueryFromSavedQuery(PhabricatorSavedQuery $saved) {
$query = id(new DiffusionCommitQuery())
->needAuditRequests(true)
- ->needCommitData(true);
+ ->needCommitData(true)
+ ->needDrafts(true);
$auditor_phids = $saved->getParameter('auditorPHIDs', array());
if ($auditor_phids) {
diff --git a/src/applications/audit/view/PhabricatorAuditListView.php b/src/applications/audit/view/PhabricatorAuditListView.php
--- a/src/applications/audit/view/PhabricatorAuditListView.php
+++ b/src/applications/audit/view/PhabricatorAuditListView.php
@@ -102,6 +102,17 @@
}
$rowc = array();
+ $this->initBehavior('phabricator-tooltips', array());
+ $this->requireResource('aphront-tooltip-css');
+
+ $draft_icon = id(new PHUIIconView())
+ ->setIconFont('fa-comment-o lightgreytext')
+ ->addSigil('has-tooltip')
+ ->setMetadata(
+ array(
+ 'tip' => pht('Unsubmitted Comments'),
+ ));
+
$list = new PHUIObjectItemListView();
foreach ($this->commits as $commit) {
$commit_phid = $commit->getPHID();
@@ -148,7 +159,13 @@
->setObjectName($commit_name)
->setHeader($commit_desc)
->setHref($commit_link)
- ->setBarColor($status_color)
+ ->setBarColor($status_color);
+
+ if ($commit->getDrafts($user)) {
+ $item->addAttribute($draft_icon);
+ }
+
+ $item
->addAttribute($status_text)
->addAttribute($reasons)
->addIcon('none', $committed)
diff --git a/src/applications/diffusion/query/DiffusionCommitQuery.php b/src/applications/diffusion/query/DiffusionCommitQuery.php
--- a/src/applications/diffusion/query/DiffusionCommitQuery.php
+++ b/src/applications/diffusion/query/DiffusionCommitQuery.php
@@ -25,6 +25,7 @@
const AUDIT_STATUS_PARTIAL = 'audit-status-partial';
private $needCommitData;
+ private $needDrafts;
public function withIDs(array $ids) {
$this->ids = $ids;
@@ -95,6 +96,11 @@
return $this;
}
+ public function needDrafts($need_drafts) {
+ $this->needDrafts = $need_drafts;
+ return $this;
+ }
+
public function needAuditRequests($need) {
$this->needAuditRequests = $need;
return $this;
@@ -237,6 +243,8 @@
}
protected function didFilterPage(array $commits) {
+ $viewer = $this->getViewer();
+
if ($this->needCommitData) {
$data = id(new PhabricatorRepositoryCommitData())->loadAllWhere(
'commitID in (%Ld)',
@@ -269,6 +277,20 @@
}
}
+ if ($this->needDrafts) {
+ $drafts = id(new PhabricatorAuditTransactionComment())->loadAllWhere(
+ 'authorPHID = %s AND commitPHID IN (%Ls) AND transactionPHID IS NULL
+ AND pathID IS NOT NULL',
+ $viewer->getPHID(),
+ mpull($commits, 'getPHID'));
+ $drafts = mgroup($drafts, 'getCommitPHID');
+ foreach ($commits as $commit) {
+ $commit->attachDrafts(
+ $viewer,
+ idx($drafts, $commit->getPHID(), array()));
+ }
+ }
+
return $commits;
}
diff --git a/src/applications/home/controller/PhabricatorHomeMainController.php b/src/applications/home/controller/PhabricatorHomeMainController.php
--- a/src/applications/home/controller/PhabricatorHomeMainController.php
+++ b/src/applications/home/controller/PhabricatorHomeMainController.php
@@ -345,6 +345,7 @@
->withAuditAwaitingUser($user)
->needAuditRequests(true)
->needCommitData(true)
+ ->needDrafts(true)
->setLimit(10);
$commits = $query->execute();
@@ -385,6 +386,7 @@
->withAuditStatus(DiffusionCommitQuery::AUDIT_STATUS_CONCERN)
->needCommitData(true)
->needAuditRequests(true)
+ ->needDrafts(true)
->setLimit(10);
$commits = $query->execute();
diff --git a/src/applications/repository/storage/PhabricatorRepositoryCommit.php b/src/applications/repository/storage/PhabricatorRepositoryCommit.php
--- a/src/applications/repository/storage/PhabricatorRepositoryCommit.php
+++ b/src/applications/repository/storage/PhabricatorRepositoryCommit.php
@@ -33,6 +33,7 @@
private $commitData = self::ATTACHABLE;
private $audits = self::ATTACHABLE;
+ private $drafts = array();
private $repository = self::ATTACHABLE;
private $customFields = self::ATTACHABLE;
@@ -162,6 +163,15 @@
return $authority_audits;
}
+ public function getDrafts(PhabricatorUser $viewer) {
+ return $this->assertAttachedKey($this->drafts, $viewer->getPHID());
+ }
+
+ public function attachDrafts(PhabricatorUser $viewer, array $drafts) {
+ $this->drafts[$viewer->getPHID()] = $drafts;
+ return $this;
+ }
+
public function save() {
if (!$this->mailKey) {
$this->mailKey = Filesystem::readRandomCharacters(20);

File Metadata

Mime Type
text/plain
Expires
Wed, Nov 5, 7:46 PM (16 h, 58 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
9174532
Default Alt Text
D10906.diff (4 KB)

Event Timeline