Page MenuHomePhabricator

D10979.id26362.diff
No OneTemporary

D10979.id26362.diff

diff --git a/src/applications/audit/application/PhabricatorAuditApplication.php b/src/applications/audit/application/PhabricatorAuditApplication.php
--- a/src/applications/audit/application/PhabricatorAuditApplication.php
+++ b/src/applications/audit/application/PhabricatorAuditApplication.php
@@ -54,28 +54,32 @@
$query = id(new DiffusionCommitQuery())
->setViewer($user)
->withAuthorPHIDs(array($user->getPHID()))
- ->withAuditStatus(DiffusionCommitQuery::AUDIT_STATUS_CONCERN);
+ ->withAuditStatus(DiffusionCommitQuery::AUDIT_STATUS_CONCERN)
+ ->setLimit(self::MAX_STATUS_ITEMS);
$commits = $query->execute();
$count = count($commits);
+ $count_str = self::formatStatusCount($count);
$type = PhabricatorApplicationStatusView::TYPE_NEEDS_ATTENTION;
$status[] = id(new PhabricatorApplicationStatusView())
->setType($type)
- ->setText(pht('%d Problem Commit(s)', $count))
+ ->setText(pht('%s Problem Commit(s)', $count_str))
->setCount($count);
$query = id(new DiffusionCommitQuery())
->setViewer($user)
->withAuditorPHIDs($phids)
->withAuditStatus(DiffusionCommitQuery::AUDIT_STATUS_OPEN)
- ->withAuditAwaitingUser($user);
+ ->withAuditAwaitingUser($user)
+ ->setLimit(self::MAX_STATUS_ITEMS);
$commits = $query->execute();
$count = count($commits);
+ $count_str = self::formatStatusCount($count);
$type = PhabricatorApplicationStatusView::TYPE_WARNING;
$status[] = id(new PhabricatorApplicationStatusView())
->setType($type)
- ->setText(pht('%d Commit(s) Awaiting Audit', $count))
+ ->setText(pht('%s Commit(s) Awaiting Audit', $count_str))
->setCount($count);
return $status;
diff --git a/src/applications/base/PhabricatorApplication.php b/src/applications/base/PhabricatorApplication.php
--- a/src/applications/base/PhabricatorApplication.php
+++ b/src/applications/base/PhabricatorApplication.php
@@ -9,6 +9,8 @@
*/
abstract class PhabricatorApplication implements PhabricatorPolicyInterface {
+ const MAX_STATUS_ITEMS = 100;
+
const GROUP_CORE = 'core';
const GROUP_UTILITIES = 'util';
const GROUP_ADMIN = 'admin';
@@ -231,6 +233,19 @@
return array();
}
+ /**
+ * @return string
+ * @task ui
+ */
+ public static function formatStatusCount($count) {
+ if ($count == self::MAX_STATUS_ITEMS) {
+ $count_str = ($count - 1).'+';
+ } else {
+ $count_str = $count;
+ }
+ return (string) $count_str;
+ }
+
/**
* You can provide an optional piece of flavor text for the application. This
diff --git a/src/applications/differential/application/PhabricatorDifferentialApplication.php b/src/applications/differential/application/PhabricatorDifferentialApplication.php
--- a/src/applications/differential/application/PhabricatorDifferentialApplication.php
+++ b/src/applications/differential/application/PhabricatorDifferentialApplication.php
@@ -100,6 +100,8 @@
->withResponsibleUsers(array($user->getPHID()))
->withStatus(DifferentialRevisionQuery::STATUS_OPEN)
->needRelationships(true)
+ // we split this into three buckets so over-grab
+ ->setLimit(self::MAX_STATUS_ITEMS * 3)
->execute();
list($blocking, $active, $waiting) =
@@ -110,24 +112,27 @@
$status = array();
$blocking = count($blocking);
+ $blocking_str = self::formatStatusCount($blocking);
$type = PhabricatorApplicationStatusView::TYPE_NEEDS_ATTENTION;
$status[] = id(new PhabricatorApplicationStatusView())
->setType($type)
- ->setText(pht('%d Review(s) Blocking Others', $blocking))
+ ->setText(pht('%s Review(s) Blocking Others', $blocking_str))
->setCount($blocking);
$active = count($active);
+ $active_str = self::formatStatusCount($active);
$type = PhabricatorApplicationStatusView::TYPE_WARNING;
$status[] = id(new PhabricatorApplicationStatusView())
->setType($type)
- ->setText(pht('%d Review(s) Need Attention', $active))
+ ->setText(pht('%s Review(s) Need Attention', $active_str))
->setCount($active);
$waiting = count($waiting);
+ $waiting_str = self::formatStatusCount($waiting);
$type = PhabricatorApplicationStatusView::TYPE_INFO;
$status[] = id(new PhabricatorApplicationStatusView())
->setType($type)
- ->setText(pht('%d Review(s) Waiting on Others', $waiting))
+ ->setText(pht('%s Review(s) Waiting on Others', $waiting_str))
->setCount($waiting);
return $status;
diff --git a/src/applications/flag/application/PhabricatorFlagsApplication.php b/src/applications/flag/application/PhabricatorFlagsApplication.php
--- a/src/applications/flag/application/PhabricatorFlagsApplication.php
+++ b/src/applications/flag/application/PhabricatorFlagsApplication.php
@@ -38,13 +38,15 @@
$flags = id(new PhabricatorFlagQuery())
->setViewer($user)
->withOwnerPHIDs(array($user->getPHID()))
+ ->setLimit(self::MAX_STATUS_ITEMS)
->execute();
$count = count($flags);
+ $count_str = self::formatStatusCount($count);
$type = PhabricatorApplicationStatusView::TYPE_WARNING;
$status[] = id(new PhabricatorApplicationStatusView())
->setType($type)
- ->setText(pht('%d Flagged Object(s)', $count))
+ ->setText(pht('%s Flagged Object(s)', $count_str))
->setCount($count);
return $status;
diff --git a/src/applications/maniphest/application/PhabricatorManiphestApplication.php b/src/applications/maniphest/application/PhabricatorManiphestApplication.php
--- a/src/applications/maniphest/application/PhabricatorManiphestApplication.php
+++ b/src/applications/maniphest/application/PhabricatorManiphestApplication.php
@@ -80,13 +80,15 @@
$query = id(new ManiphestTaskQuery())
->setViewer($user)
->withStatuses(ManiphestTaskStatus::getOpenStatusConstants())
- ->withOwners(array($user->getPHID()));
+ ->withOwners(array($user->getPHID()))
+ ->setLimit(self::MAX_STATUS_ITEMS);
$count = count($query->execute());
+ $count_str = self::formatStatusCount($count);
$type = PhabricatorApplicationStatusView::TYPE_WARNING;
$status[] = id(new PhabricatorApplicationStatusView())
->setType($type)
- ->setText(pht('%s Assigned Task(s)', new PhutilNumber($count)))
+ ->setText(pht('%s Assigned Task(s)', $count_str))
->setCount($count);
return $status;
diff --git a/src/applications/meta/view/PhabricatorApplicationLaunchView.php b/src/applications/meta/view/PhabricatorApplicationLaunchView.php
--- a/src/applications/meta/view/PhabricatorApplicationLaunchView.php
+++ b/src/applications/meta/view/PhabricatorApplicationLaunchView.php
@@ -73,7 +73,7 @@
array(
'class' => 'phabricator-application-attention-count',
),
- $count);
+ PhabricatorApplication::formatStatusCount($count));
}
@@ -83,7 +83,7 @@
array(
'class' => 'phabricator-application-warning-count',
),
- $counts[$warning]);
+ PhabricatorApplication::formatStatusCount($counts[$warning]));
}
if (nonempty($count1) && nonempty($count2)) {
$numbers = array($count1, ' / ', $count2);
diff --git a/src/applications/people/application/PhabricatorPeopleApplication.php b/src/applications/people/application/PhabricatorPeopleApplication.php
--- a/src/applications/people/application/PhabricatorPeopleApplication.php
+++ b/src/applications/people/application/PhabricatorPeopleApplication.php
@@ -91,6 +91,7 @@
->setViewer($user)
->withIsApproved(false)
->withIsDisabled(false)
+ ->setLimit(self::MAX_STATUS_ITEMS)
->execute();
if (!$need_approval) {
@@ -100,10 +101,11 @@
$status = array();
$count = count($need_approval);
+ $count_str = self::formatStatusCount($count);
$type = PhabricatorApplicationStatusView::TYPE_NEEDS_ATTENTION;
$status[] = id(new PhabricatorApplicationStatusView())
->setType($type)
- ->setText(pht('%d User(s) Need Approval', $count))
+ ->setText(pht('%s User(s) Need Approval', $count_str))
->setCount($count);
return $status;
diff --git a/src/applications/phrequent/application/PhabricatorPhrequentApplication.php b/src/applications/phrequent/application/PhabricatorPhrequentApplication.php
--- a/src/applications/phrequent/application/PhabricatorPhrequentApplication.php
+++ b/src/applications/phrequent/application/PhabricatorPhrequentApplication.php
@@ -52,11 +52,14 @@
// Show number of objects that are currently
// being tracked for a user.
- $count = PhrequentUserTimeQuery::getUserTotalObjectsTracked($user);
+ $count = PhrequentUserTimeQuery::getUserTotalObjectsTracked(
+ $user,
+ self::MAX_STATUS_ITEMS);
+ $count_str = self::formatStatusCount($count);
$type = PhabricatorApplicationStatusView::TYPE_NEEDS_ATTENTION;
$status[] = id(new PhabricatorApplicationStatusView())
->setType($type)
- ->setText(pht('%d Object(s) Tracked', $count))
+ ->setText(pht('%s Object(s) Tracked', $count_str))
->setCount($count);
return $status;
diff --git a/src/applications/phrequent/query/PhrequentUserTimeQuery.php b/src/applications/phrequent/query/PhrequentUserTimeQuery.php
--- a/src/applications/phrequent/query/PhrequentUserTimeQuery.php
+++ b/src/applications/phrequent/query/PhrequentUserTimeQuery.php
@@ -255,7 +255,8 @@
}
public static function getUserTotalObjectsTracked(
- PhabricatorUser $user) {
+ PhabricatorUser $user,
+ $limit = PHP_INT_MAX) {
$usertime_dao = new PhrequentUserTime();
$conn = $usertime_dao->establishConnection('r');
@@ -264,9 +265,11 @@
$conn,
'SELECT COUNT(usertime.id) N FROM %T usertime '.
'WHERE usertime.userPHID = %s '.
- 'AND usertime.dateEnded IS NULL',
+ 'AND usertime.dateEnded IS NULL '.
+ 'LIMIT %d',
$usertime_dao->getTableName(),
- $user->getPHID());
+ $user->getPHID(),
+ $limit);
return $count['N'];
}
diff --git a/src/applications/ponder/application/PhabricatorPonderApplication.php b/src/applications/ponder/application/PhabricatorPonderApplication.php
--- a/src/applications/ponder/application/PhabricatorPonderApplication.php
+++ b/src/applications/ponder/application/PhabricatorPonderApplication.php
@@ -30,6 +30,7 @@
public function loadStatus(PhabricatorUser $user) {
// replace with "x new unanswered questions" or some such
+ // make sure to use self::formatStatusCount and friends...!
$status = array();
return $status;

File Metadata

Mime Type
text/plain
Expires
Sun, Feb 9, 12:19 AM (20 h, 21 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7103106
Default Alt Text
D10979.id26362.diff (10 KB)

Event Timeline