Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14866102
D10979.id26362.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
10 KB
Referenced Files
None
Subscribers
None
D10979.id26362.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D10979: Home - limit "status" queries to 100 and show 99+ if we hit that
Attached
Detach File
Event Timeline
Log In to Comment