Page MenuHomePhabricator

D9297.id22230.diff
No OneTemporary

D9297.id22230.diff

diff --git a/src/applications/audit/application/PhabricatorApplicationAudit.php b/src/applications/audit/application/PhabricatorApplicationAudit.php
--- a/src/applications/audit/application/PhabricatorApplicationAudit.php
+++ b/src/applications/audit/application/PhabricatorApplicationAudit.php
@@ -2,10 +2,6 @@
final class PhabricatorApplicationAudit extends PhabricatorApplication {
- public function getShortDescription() {
- return pht('Audit Code');
- }
-
public function getBaseURI() {
return '/audit/';
}
@@ -14,6 +10,10 @@
return 'audit';
}
+ public function getShortDescription() {
+ return pht('Browse and Audit Commits');
+ }
+
public function getHelpURI() {
return PhabricatorEnv::getDoclink('Audit User Guide');
}
diff --git a/src/applications/auth/application/PhabricatorApplicationAuth.php b/src/applications/auth/application/PhabricatorApplicationAuth.php
--- a/src/applications/auth/application/PhabricatorApplicationAuth.php
+++ b/src/applications/auth/application/PhabricatorApplicationAuth.php
@@ -14,6 +14,10 @@
return 'authentication';
}
+ public function getShortDescription() {
+ return pht('Configure Login and Registration');
+ }
+
public function getHelpURI() {
// NOTE: Although reasonable help exists for this in "Configuring Accounts
// and Registration", specifying a help URI here means we get the menu
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
@@ -155,12 +155,10 @@
}
public function getHelpURI() {
- // TODO: When these applications get created, link to their docs:
- //
- // - Drydock
- // - OAuth Server
-
+ return null;
+ }
+ public function getOverview() {
return null;
}
diff --git a/src/applications/calendar/application/PhabricatorApplicationCalendar.php b/src/applications/calendar/application/PhabricatorApplicationCalendar.php
--- a/src/applications/calendar/application/PhabricatorApplicationCalendar.php
+++ b/src/applications/calendar/application/PhabricatorApplicationCalendar.php
@@ -3,7 +3,7 @@
final class PhabricatorApplicationCalendar extends PhabricatorApplication {
public function getShortDescription() {
- return pht('Dates and Stuff');
+ return pht('Upcoming Events');
}
public function getFlavorText() {
diff --git a/src/applications/chatlog/applications/PhabricatorApplicationChatLog.php b/src/applications/chatlog/applications/PhabricatorApplicationChatLog.php
--- a/src/applications/chatlog/applications/PhabricatorApplicationChatLog.php
+++ b/src/applications/chatlog/applications/PhabricatorApplicationChatLog.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Chat Log');
+ return pht('IRC Logs');
}
public function getIconName() {
diff --git a/src/applications/conduit/application/PhabricatorApplicationConduit.php b/src/applications/conduit/application/PhabricatorApplicationConduit.php
--- a/src/applications/conduit/application/PhabricatorApplicationConduit.php
+++ b/src/applications/conduit/application/PhabricatorApplicationConduit.php
@@ -19,7 +19,7 @@
}
public function getShortDescription() {
- return 'Conduit API Console';
+ return pht('Phabricator Developer API Console');
}
public function getTitleGlyph() {
diff --git a/src/applications/config/application/PhabricatorApplicationConfig.php b/src/applications/config/application/PhabricatorApplicationConfig.php
--- a/src/applications/config/application/PhabricatorApplicationConfig.php
+++ b/src/applications/config/application/PhabricatorApplicationConfig.php
@@ -22,6 +22,10 @@
return false;
}
+ public function getShortDescription() {
+ return pht('Configure Phabricator');
+ }
+
public function getRoutes() {
return array(
'/config/' => array(
diff --git a/src/applications/conpherence/application/PhabricatorApplicationConpherence.php b/src/applications/conpherence/application/PhabricatorApplicationConpherence.php
--- a/src/applications/conpherence/application/PhabricatorApplicationConpherence.php
+++ b/src/applications/conpherence/application/PhabricatorApplicationConpherence.php
@@ -10,7 +10,7 @@
}
public function getShortDescription() {
- return pht('Messaging');
+ return pht('Send Messages');
}
public function getIconName() {
diff --git a/src/applications/countdown/application/PhabricatorApplicationCountdown.php b/src/applications/countdown/application/PhabricatorApplicationCountdown.php
--- a/src/applications/countdown/application/PhabricatorApplicationCountdown.php
+++ b/src/applications/countdown/application/PhabricatorApplicationCountdown.php
@@ -11,7 +11,7 @@
}
public function getShortDescription() {
- return pht('Countdown Timers');
+ return pht('Countdown to Events');
}
public function getTitleGlyph() {
diff --git a/src/applications/daemon/application/PhabricatorApplicationDaemons.php b/src/applications/daemon/application/PhabricatorApplicationDaemons.php
--- a/src/applications/daemon/application/PhabricatorApplicationDaemons.php
+++ b/src/applications/daemon/application/PhabricatorApplicationDaemons.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Manage Daemons');
+ return pht('Manage Phabricator Daemons');
}
public function getBaseURI() {
diff --git a/src/applications/dashboard/application/PhabricatorApplicationDashboard.php b/src/applications/dashboard/application/PhabricatorApplicationDashboard.php
--- a/src/applications/dashboard/application/PhabricatorApplicationDashboard.php
+++ b/src/applications/dashboard/application/PhabricatorApplicationDashboard.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Such Data');
+ return pht('Create Custom Pages');
}
public function getIconName() {
diff --git a/src/applications/differential/application/PhabricatorApplicationDifferential.php b/src/applications/differential/application/PhabricatorApplicationDifferential.php
--- a/src/applications/differential/application/PhabricatorApplicationDifferential.php
+++ b/src/applications/differential/application/PhabricatorApplicationDifferential.php
@@ -36,6 +36,14 @@
);
}
+ public function getOverview() {
+ return pht(<<<EOTEXT
+Differential is a **code review application** which allows engineers to review,
+discuss and approve changes to software.
+EOTEXT
+);
+ }
+
public function getRoutes() {
return array(
'/D(?P<id>[1-9]\d*)' => 'DifferentialRevisionViewController',
diff --git a/src/applications/diffusion/application/PhabricatorApplicationDiffusion.php b/src/applications/diffusion/application/PhabricatorApplicationDiffusion.php
--- a/src/applications/diffusion/application/PhabricatorApplicationDiffusion.php
+++ b/src/applications/diffusion/application/PhabricatorApplicationDiffusion.php
@@ -3,7 +3,7 @@
final class PhabricatorApplicationDiffusion extends PhabricatorApplication {
public function getShortDescription() {
- return pht('Repository Browser');
+ return pht('Host and Browse Repositories');
}
public function getBaseURI() {
diff --git a/src/applications/diviner/application/PhabricatorApplicationDiviner.php b/src/applications/diviner/application/PhabricatorApplicationDiviner.php
--- a/src/applications/diviner/application/PhabricatorApplicationDiviner.php
+++ b/src/applications/diviner/application/PhabricatorApplicationDiviner.php
@@ -36,7 +36,7 @@
}
public function getApplicationGroup() {
- return self::GROUP_COMMUNICATION;
+ return self::GROUP_UTILITIES;
}
public function getRemarkupRules() {
diff --git a/src/applications/doorkeeper/application/PhabricatorApplicationDoorkeeper.php b/src/applications/doorkeeper/application/PhabricatorApplicationDoorkeeper.php
--- a/src/applications/doorkeeper/application/PhabricatorApplicationDoorkeeper.php
+++ b/src/applications/doorkeeper/application/PhabricatorApplicationDoorkeeper.php
@@ -6,14 +6,14 @@
return false;
}
- public function getBaseURI() {
- return '/doorkeeper/';
- }
-
public function shouldAppearInLaunchView() {
return false;
}
+ public function getShortDescription() {
+ return pht('Connect to Other Software');
+ }
+
public function getRemarkupRules() {
return array(
new DoorkeeperRemarkupRuleAsana(),
diff --git a/src/applications/drydock/application/PhabricatorApplicationDrydock.php b/src/applications/drydock/application/PhabricatorApplicationDrydock.php
--- a/src/applications/drydock/application/PhabricatorApplicationDrydock.php
+++ b/src/applications/drydock/application/PhabricatorApplicationDrydock.php
@@ -30,6 +30,10 @@
return true;
}
+ public function getHelpURI() {
+ return PhabricatorEnv::getDoclink('Drydock User Guide');
+ }
+
public function getRoutes() {
return array(
'/drydock/' => array(
diff --git a/src/applications/fact/application/PhabricatorApplicationFact.php b/src/applications/fact/application/PhabricatorApplicationFact.php
--- a/src/applications/fact/application/PhabricatorApplicationFact.php
+++ b/src/applications/fact/application/PhabricatorApplicationFact.php
@@ -3,7 +3,7 @@
final class PhabricatorApplicationFact extends PhabricatorApplication {
public function getShortDescription() {
- return 'Analyze Data';
+ return pht('Chart and Analyze Data');
}
public function getName() {
diff --git a/src/applications/feed/application/PhabricatorApplicationFeed.php b/src/applications/feed/application/PhabricatorApplicationFeed.php
--- a/src/applications/feed/application/PhabricatorApplicationFeed.php
+++ b/src/applications/feed/application/PhabricatorApplicationFeed.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Review Activity');
+ return pht('Review Recent Activity');
}
public function getIconName() {
diff --git a/src/applications/flag/application/PhabricatorApplicationFlags.php b/src/applications/flag/application/PhabricatorApplicationFlags.php
--- a/src/applications/flag/application/PhabricatorApplicationFlags.php
+++ b/src/applications/flag/application/PhabricatorApplicationFlags.php
@@ -3,7 +3,7 @@
final class PhabricatorApplicationFlags extends PhabricatorApplication {
public function getShortDescription() {
- return pht('Reminders');
+ return pht('Personal Bookmarks and Reminders');
}
public function getBaseURI() {
@@ -25,7 +25,7 @@
}
public function getApplicationGroup() {
- return self::GROUP_ORGANIZATION;
+ return self::GROUP_UTILITIES;
}
public function loadStatus(PhabricatorUser $user) {
diff --git a/src/applications/harbormaster/application/PhabricatorApplicationHarbormaster.php b/src/applications/harbormaster/application/PhabricatorApplicationHarbormaster.php
--- a/src/applications/harbormaster/application/PhabricatorApplicationHarbormaster.php
+++ b/src/applications/harbormaster/application/PhabricatorApplicationHarbormaster.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Continuous Build');
+ return pht('Builds and Continuous Integration');
}
public function getIconName() {
diff --git a/src/applications/legalpad/application/PhabricatorApplicationLegalpad.php b/src/applications/legalpad/application/PhabricatorApplicationLegalpad.php
--- a/src/applications/legalpad/application/PhabricatorApplicationLegalpad.php
+++ b/src/applications/legalpad/application/PhabricatorApplicationLegalpad.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Legal Documents');
+ return pht('Agreements and Signatures');
}
public function getIconName() {
diff --git a/src/applications/meta/application/PhabricatorApplicationApplications.php b/src/applications/meta/application/PhabricatorApplicationApplications.php
--- a/src/applications/meta/application/PhabricatorApplicationApplications.php
+++ b/src/applications/meta/application/PhabricatorApplicationApplications.php
@@ -11,7 +11,7 @@
}
public function getShortDescription() {
- return 'Installed Applications';
+ return pht('Explore More Applications');
}
public function getIconName() {
@@ -26,7 +26,7 @@
return self::GROUP_ADMIN;
}
- public function getRoutes() {
+ public function getRoutes() {
return array(
'/applications/' => array(
'(?:query/(?P<queryKey>[^/]+)/)?' =>
@@ -38,7 +38,6 @@
'(?P<application>\w+)/(?P<action>install|uninstall)/' =>
'PhabricatorApplicationUninstallController',
),
-
);
}
diff --git a/src/applications/meta/controller/PhabricatorApplicationDetailViewController.php b/src/applications/meta/controller/PhabricatorApplicationDetailViewController.php
--- a/src/applications/meta/controller/PhabricatorApplicationDetailViewController.php
+++ b/src/applications/meta/controller/PhabricatorApplicationDetailViewController.php
@@ -1,10 +1,14 @@
<?php
final class PhabricatorApplicationDetailViewController
- extends PhabricatorApplicationsController{
+ extends PhabricatorApplicationsController {
private $application;
+ public function shouldAllowPublic() {
+ return true;
+ }
+
public function willProcessRequest(array $data) {
$this->application = $data['application'];
}
@@ -61,16 +65,37 @@
$viewer = $this->getRequest()->getUser();
- $properties = id(new PHUIPropertyListView())
- ->addProperty(pht('Description'), $application->getShortDescription());
+ $properties = id(new PHUIPropertyListView());
$properties->setActionList($actions);
+ $properties->addProperty(
+ pht('Description'),
+ $application->getShortDescription());
+
+ if ($application->getFlavorText()) {
+ $properties->addProperty(
+ null,
+ phutil_tag('em', array(), $application->getFlavorText()));
+ }
+
if ($application->isBeta()) {
$properties->addProperty(
pht('Release'),
pht('Beta'));
}
+ $overview = $application->getOverview();
+ if ($overview) {
+ $properties->addSectionHeader(
+ pht('Overview'),
+ PHUIPropertyListView::ICON_SUMMARY);
+ $properties->addTextContent(
+ PhabricatorMarkupEngine::renderOneObject(
+ id(new PhabricatorMarkupOneOff())->setContent($overview),
+ 'default',
+ $viewer));
+ }
+
$descriptions = PhabricatorPolicyQuery::renderPolicyDescriptions(
$viewer,
$application);
@@ -94,6 +119,14 @@
->setUser($user)
->setObjectURI($this->getRequest()->getRequestURI());
+ if ($selected->getHelpURI()) {
+ $view->addAction(
+ id(new PhabricatorActionView())
+ ->setName(pht('Help / Documentation'))
+ ->setIcon('fa-life-ring')
+ ->setHref($selected->getHelpURI()));
+ }
+
$can_edit = PhabricatorPolicyFilter::hasCapability(
$user,
$selected,
diff --git a/src/applications/meta/controller/PhabricatorApplicationEditController.php b/src/applications/meta/controller/PhabricatorApplicationEditController.php
--- a/src/applications/meta/controller/PhabricatorApplicationEditController.php
+++ b/src/applications/meta/controller/PhabricatorApplicationEditController.php
@@ -1,10 +1,14 @@
<?php
final class PhabricatorApplicationEditController
- extends PhabricatorApplicationsController{
+ extends PhabricatorApplicationsController {
private $application;
+ public function shouldRequireAdmin() {
+ return true;
+ }
+
public function willProcessRequest(array $data) {
$this->application = $data['application'];
}
diff --git a/src/applications/meta/controller/PhabricatorApplicationUninstallController.php b/src/applications/meta/controller/PhabricatorApplicationUninstallController.php
--- a/src/applications/meta/controller/PhabricatorApplicationUninstallController.php
+++ b/src/applications/meta/controller/PhabricatorApplicationUninstallController.php
@@ -6,6 +6,10 @@
private $application;
private $action;
+ public function shouldRequireAdmin() {
+ return true;
+ }
+
public function willProcessRequest(array $data) {
$this->application = $data['application'];
$this->action = $data['action'];
diff --git a/src/applications/meta/controller/PhabricatorApplicationsController.php b/src/applications/meta/controller/PhabricatorApplicationsController.php
--- a/src/applications/meta/controller/PhabricatorApplicationsController.php
+++ b/src/applications/meta/controller/PhabricatorApplicationsController.php
@@ -2,10 +2,6 @@
abstract class PhabricatorApplicationsController extends PhabricatorController {
- public function shouldRequireAdmin() {
- return true;
- }
-
public function buildSideNavView($for_app = false) {
$user = $this->getRequest()->getUser();
diff --git a/src/applications/meta/controller/PhabricatorApplicationsListController.php b/src/applications/meta/controller/PhabricatorApplicationsListController.php
--- a/src/applications/meta/controller/PhabricatorApplicationsListController.php
+++ b/src/applications/meta/controller/PhabricatorApplicationsListController.php
@@ -5,6 +5,10 @@
private $queryKey;
+ public function shouldAllowPublic() {
+ return true;
+ }
+
public function willProcessRequest(array $data) {
$this->queryKey = idx($data, 'queryKey');
}
diff --git a/src/applications/meta/query/PhabricatorAppSearchEngine.php b/src/applications/meta/query/PhabricatorAppSearchEngine.php
--- a/src/applications/meta/query/PhabricatorAppSearchEngine.php
+++ b/src/applications/meta/query/PhabricatorAppSearchEngine.php
@@ -25,6 +25,9 @@
$saved->setParameter(
'firstParty',
$this->readBoolFromRequest($request, 'firstParty'));
+ $saved->setParameter(
+ 'launchable',
+ $this->readBoolFromRequest($request, 'launchable'));
return $saved;
}
@@ -54,6 +57,11 @@
$query->withFirstParty($first_party);
}
+ $launchable = $saved->getParameter('launchable');
+ if ($launchable !== null) {
+ $query->withLaunchable($launchable);
+ }
+
return $query;
}
@@ -99,6 +107,17 @@
'' => pht('Show All Applications'),
'true' => pht('Show First-Party Applications'),
'false' => pht('Show Third-Party Applications'),
+ )))
+ ->appendChild(
+ id(new AphrontFormSelectControl())
+ ->setLabel(pht('Launchable'))
+ ->setName('launchable')
+ ->setValue($this->getBoolFromQuery($saved, 'launchable'))
+ ->setOptions(
+ array(
+ '' => pht('Show All Applications'),
+ 'true' => pht('Show Launchable Applications'),
+ 'false' => pht('Show Non-Launchable Applications'),
)));
}
@@ -109,6 +128,7 @@
public function getBuiltinQueryNames() {
$names = array(
+ 'launcher' => pht('Launcher'),
'all' => pht('All Applications'),
);
@@ -121,6 +141,10 @@
$query->setQueryKey($query_key);
switch ($query_key) {
+ case 'launcher':
+ return $query
+ ->setParameter('installed', true)
+ ->setParameter('launchable', true);
case 'all':
return $query;
}
@@ -129,33 +153,93 @@
}
protected function renderResultList(
- array $applications,
+ array $all_applications,
PhabricatorSavedQuery $query,
array $handle) {
- assert_instances_of($applications, 'PhabricatorApplication');
+ assert_instances_of($all_applications, 'PhabricatorApplication');
- $list = new PHUIObjectItemListView();
+ $all_applications = msort($all_applications, 'getName');
- $applications = msort($applications, 'getName');
-
- foreach ($applications as $application) {
- $item = id(new PHUIObjectItemView())
- ->setHeader($application->getName())
- ->setHref('/applications/view/'.get_class($application).'/')
- ->addAttribute($application->getShortDescription());
+ if ($query->getQueryKey() == 'launcher') {
+ $groups = mgroup($all_applications, 'getApplicationGroup');
+ } else {
+ $groups = array($all_applications);
+ }
- if (!$application->isInstalled()) {
- $item->addIcon('delete', pht('Uninstalled'));
+ $group_names = PhabricatorApplication::getApplicationGroups();
+ $groups = array_select_keys($groups, array_keys($group_names)) + $groups;
+
+ $results = array();
+ foreach ($groups as $group => $applications) {
+ if (count($groups) > 1) {
+ $results[] = phutil_tag(
+ 'h1',
+ array(
+ 'class' => 'launcher-header',
+ ),
+ idx($group_names, $group, $group));
}
- if ($application->isBeta()) {
- $item->addIcon('lint-warning', pht('Beta'));
+ $list = new PHUIObjectItemListView();
+ $list->addClass('phui-object-item-launcher-list');
+
+ foreach ($applications as $application) {
+ $icon = $application->getIconName();
+ if (!$icon) {
+ $icon = 'application';
+ }
+
+ // TODO: This sheet doesn't work the same way other sheets do so it
+ // ends up with the wrong classes if we try to use PHUIIconView. This
+ // is probably all changing in the redesign anyway.
+
+ $icon_view = javelin_tag(
+ 'span',
+ array(
+ 'class' => 'phui-icon-view '.
+ 'sprite-apps-large apps-'.$icon.'-dark-large',
+ 'aural' => false,
+ ),
+ '');
+
+ $description = phutil_tag(
+ 'div',
+ array(
+ 'style' => 'white-space: nowrap; '.
+ 'overflow: hidden; '.
+ 'text-overflow: ellipsis;',
+ ),
+ $application->getShortDescription());
+
+ $item = id(new PHUIObjectItemView())
+ ->setHeader($application->getName())
+ ->setImageIcon($icon_view)
+ ->addAttribute($description)
+ ->addAction(
+ id(new PHUIListItemView())
+ ->setName(pht('Help/Options'))
+ ->setIcon('fa-cog')
+ ->setHref('/applications/view/'.get_class($application).'/'));
+
+ if ($application->getBaseURI()) {
+ $item->setHref($application->getBaseURI());
+ }
+
+ if (!$application->isInstalled()) {
+ $item->addIcon('delete', pht('Uninstalled'));
+ }
+
+ if ($application->isBeta()) {
+ $item->addIcon('fa-star-half-o grey', pht('Beta'));
+ }
+
+ $list->addItem($item);
}
- $list->addItem($item);
+ $results[] = $list;
}
- return $list;
+ return $results;
}
}
diff --git a/src/applications/meta/query/PhabricatorApplicationQuery.php b/src/applications/meta/query/PhabricatorApplicationQuery.php
--- a/src/applications/meta/query/PhabricatorApplicationQuery.php
+++ b/src/applications/meta/query/PhabricatorApplicationQuery.php
@@ -9,6 +9,7 @@
private $nameContains;
private $unlisted;
private $classes;
+ private $launchable;
private $phids;
const ORDER_APPLICATION = 'order:application';
@@ -41,6 +42,11 @@
return $this;
}
+ public function withLaunchable($launchable) {
+ $this->launchable = $launchable;
+ return $this;
+ }
+
public function withClasses(array $classes) {
$this->classes = $classes;
return $this;
@@ -117,6 +123,15 @@
}
}
+ if ($this->launchable !== null) {
+ foreach ($apps as $key => $app) {
+ if ($app->shouldAppearInLaunchView() != $this->launchable) {
+ unset($apps[$key]);
+ }
+ }
+ }
+
+
switch ($this->order) {
case self::ORDER_NAME:
$apps = msort($apps, 'getName');
diff --git a/src/applications/metamta/application/PhabricatorApplicationMetaMTA.php b/src/applications/metamta/application/PhabricatorApplicationMetaMTA.php
--- a/src/applications/metamta/application/PhabricatorApplicationMetaMTA.php
+++ b/src/applications/metamta/application/PhabricatorApplicationMetaMTA.php
@@ -2,14 +2,14 @@
final class PhabricatorApplicationMetaMTA extends PhabricatorApplication {
- public function getBaseURI() {
- return '/mail/';
- }
-
public function getIconName() {
return 'metamta';
}
+ public function getShortDescription() {
+ return pht('Delivers Mail');
+ }
+
public function getFlavorText() {
return pht('Yo dawg, we heard you like MTAs.');
}
diff --git a/src/applications/notification/application/PhabricatorApplicationNotifications.php b/src/applications/notification/application/PhabricatorApplicationNotifications.php
--- a/src/applications/notification/application/PhabricatorApplicationNotifications.php
+++ b/src/applications/notification/application/PhabricatorApplicationNotifications.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Beep Beep Bloop');
+ return pht('Real-Time Updates and Alerts');
}
public function getRoutes() {
diff --git a/src/applications/nuance/application/PhabricatorApplicationNuance.php b/src/applications/nuance/application/PhabricatorApplicationNuance.php
--- a/src/applications/nuance/application/PhabricatorApplicationNuance.php
+++ b/src/applications/nuance/application/PhabricatorApplicationNuance.php
@@ -27,6 +27,10 @@
return '/nuance/';
}
+ public function getShortDescription() {
+ return pht('High-Volume Task Queues');
+ }
+
public function getRoutes() {
return array(
'/nuance/' => array(
diff --git a/src/applications/oauthserver/application/PhabricatorApplicationOAuthServer.php b/src/applications/oauthserver/application/PhabricatorApplicationOAuthServer.php
--- a/src/applications/oauthserver/application/PhabricatorApplicationOAuthServer.php
+++ b/src/applications/oauthserver/application/PhabricatorApplicationOAuthServer.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('OAuth Provider');
+ return pht('OAuth Login Provider');
}
public function getIconName() {
@@ -23,13 +23,17 @@
}
public function getApplicationGroup() {
- return self::GROUP_UTILITIES;
+ return self::GROUP_ADMIN;
}
public function isBeta() {
return true;
}
+ public function getHelpURI() {
+ return PhabricatorEnv::getDoclink('Using the Phabricator OAuth Server');
+ }
+
public function getRoutes() {
return array(
'/oauthserver/' => array(
diff --git a/src/applications/owners/application/PhabricatorApplicationOwners.php b/src/applications/owners/application/PhabricatorApplicationOwners.php
--- a/src/applications/owners/application/PhabricatorApplicationOwners.php
+++ b/src/applications/owners/application/PhabricatorApplicationOwners.php
@@ -11,7 +11,7 @@
}
public function getShortDescription() {
- return pht('Group Source Code');
+ return pht('Track Ownership of Source Code');
}
public function getTitleGlyph() {
@@ -27,7 +27,7 @@
}
public function getApplicationGroup() {
- return self::GROUP_ORGANIZATION;
+ return self::GROUP_UTILITIES;
}
public function getRoutes() {
diff --git a/src/applications/passphrase/application/PhabricatorApplicationPassphrase.php b/src/applications/passphrase/application/PhabricatorApplicationPassphrase.php
--- a/src/applications/passphrase/application/PhabricatorApplicationPassphrase.php
+++ b/src/applications/passphrase/application/PhabricatorApplicationPassphrase.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Credential Management');
+ return pht('Store Passwords and Credentials');
}
public function getIconName() {
diff --git a/src/applications/paste/application/PhabricatorApplicationPaste.php b/src/applications/paste/application/PhabricatorApplicationPaste.php
--- a/src/applications/paste/application/PhabricatorApplicationPaste.php
+++ b/src/applications/paste/application/PhabricatorApplicationPaste.php
@@ -18,6 +18,10 @@
return self::GROUP_UTILITIES;
}
+ public function getShortDescription() {
+ return pht('Share Text Snippets');
+ }
+
public function getRemarkupRules() {
return array(
new PhabricatorPasteRemarkupRule(),
diff --git a/src/applications/people/application/PhabricatorApplicationPeople.php b/src/applications/people/application/PhabricatorApplicationPeople.php
--- a/src/applications/people/application/PhabricatorApplicationPeople.php
+++ b/src/applications/people/application/PhabricatorApplicationPeople.php
@@ -3,7 +3,7 @@
final class PhabricatorApplicationPeople extends PhabricatorApplication {
public function getShortDescription() {
- return pht('User Accounts');
+ return pht('User Accounts and Profiles');
}
public function getBaseURI() {
diff --git a/src/applications/phlux/application/PhabricatorApplicationPhlux.php b/src/applications/phlux/application/PhabricatorApplicationPhlux.php
--- a/src/applications/phlux/application/PhabricatorApplicationPhlux.php
+++ b/src/applications/phlux/application/PhabricatorApplicationPhlux.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Configuration Store');
+ return pht('Key/Value Configuration Store');
}
public function getIconName() {
diff --git a/src/applications/pholio/application/PhabricatorApplicationPholio.php b/src/applications/pholio/application/PhabricatorApplicationPholio.php
--- a/src/applications/pholio/application/PhabricatorApplicationPholio.php
+++ b/src/applications/pholio/application/PhabricatorApplicationPholio.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Design Review');
+ return pht('Review Mocks and Design');
}
public function getIconName() {
diff --git a/src/applications/phortune/application/PhabricatorApplicationPhortune.php b/src/applications/phortune/application/PhabricatorApplicationPhortune.php
--- a/src/applications/phortune/application/PhabricatorApplicationPhortune.php
+++ b/src/applications/phortune/application/PhabricatorApplicationPhortune.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Account and Billing');
+ return pht('Accounts and Billing');
}
public function getIconName() {
diff --git a/src/applications/phrequent/application/PhabricatorApplicationPhrequent.php b/src/applications/phrequent/application/PhabricatorApplicationPhrequent.php
--- a/src/applications/phrequent/application/PhabricatorApplicationPhrequent.php
+++ b/src/applications/phrequent/application/PhabricatorApplicationPhrequent.php
@@ -3,7 +3,7 @@
final class PhabricatorApplicationPhrequent extends PhabricatorApplication {
public function getShortDescription() {
- return pht('Track Time');
+ return pht('Track Time Spent');
}
public function getBaseURI() {
@@ -19,7 +19,7 @@
}
public function getApplicationGroup() {
- return self::GROUP_ORGANIZATION;
+ return self::GROUP_UTILITIES;
}
public function getApplicationOrder() {
diff --git a/src/applications/ponder/application/PhabricatorApplicationPonder.php b/src/applications/ponder/application/PhabricatorApplicationPonder.php
--- a/src/applications/ponder/application/PhabricatorApplicationPonder.php
+++ b/src/applications/ponder/application/PhabricatorApplicationPonder.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Find Answers');
+ return pht('Questions and Answers');
}
public function getIconName() {
diff --git a/src/applications/project/application/PhabricatorApplicationProject.php b/src/applications/project/application/PhabricatorApplicationProject.php
--- a/src/applications/project/application/PhabricatorApplicationProject.php
+++ b/src/applications/project/application/PhabricatorApplicationProject.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Organize Work');
+ return pht('Create Groups, Tags, and Projects');
}
public function getBaseURI() {
diff --git a/src/applications/releeph/application/PhabricatorApplicationReleeph.php b/src/applications/releeph/application/PhabricatorApplicationReleeph.php
--- a/src/applications/releeph/application/PhabricatorApplicationReleeph.php
+++ b/src/applications/releeph/application/PhabricatorApplicationReleeph.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return pht('Release Branches');
+ return pht('Pull Requests');
}
public function getBaseURI() {
diff --git a/src/applications/repository/application/PhabricatorApplicationRepositories.php b/src/applications/repository/application/PhabricatorApplicationRepositories.php
--- a/src/applications/repository/application/PhabricatorApplicationRepositories.php
+++ b/src/applications/repository/application/PhabricatorApplicationRepositories.php
@@ -14,7 +14,7 @@
}
public function getShortDescription() {
- return 'Track Repositories';
+ return pht('(Deprecated)');
}
public function getTitleGlyph() {
diff --git a/src/applications/search/application/PhabricatorApplicationSearch.php b/src/applications/search/application/PhabricatorApplicationSearch.php
--- a/src/applications/search/application/PhabricatorApplicationSearch.php
+++ b/src/applications/search/application/PhabricatorApplicationSearch.php
@@ -11,7 +11,7 @@
}
public function getShortDescription() {
- return pht('Search & Find');
+ return pht('Full-Text Search');
}
public function getFlavorText() {
diff --git a/src/applications/settings/application/PhabricatorApplicationSettings.php b/src/applications/settings/application/PhabricatorApplicationSettings.php
--- a/src/applications/settings/application/PhabricatorApplicationSettings.php
+++ b/src/applications/settings/application/PhabricatorApplicationSettings.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return 'User Preferences';
+ return pht('User Preferences');
}
public function getIconName() {
@@ -18,6 +18,10 @@
return false;
}
+ public function shouldAppearInLaunchView() {
+ return false;
+ }
+
public function getRoutes() {
return array(
'/settings/' => array(
diff --git a/src/applications/tokens/application/PhabricatorApplicationTokens.php b/src/applications/tokens/application/PhabricatorApplicationTokens.php
--- a/src/applications/tokens/application/PhabricatorApplicationTokens.php
+++ b/src/applications/tokens/application/PhabricatorApplicationTokens.php
@@ -19,7 +19,7 @@
}
public function getShortDescription() {
- return pht('Acquire Trinkets');
+ return pht('Award and Acquire Trinkets');
}
public function getApplicationGroup() {
diff --git a/src/applications/uiexample/application/PhabricatorApplicationUIExamples.php b/src/applications/uiexample/application/PhabricatorApplicationUIExamples.php
--- a/src/applications/uiexample/application/PhabricatorApplicationUIExamples.php
+++ b/src/applications/uiexample/application/PhabricatorApplicationUIExamples.php
@@ -7,7 +7,7 @@
}
public function getShortDescription() {
- return 'Developer UI Examples';
+ return pht('Phabricator Developer UI Examples');
}
public function getIconName() {
diff --git a/src/view/phui/PHUIObjectItemView.php b/src/view/phui/PHUIObjectItemView.php
--- a/src/view/phui/PHUIObjectItemView.php
+++ b/src/view/phui/PHUIObjectItemView.php
@@ -21,6 +21,7 @@
private $imageURI;
private $state;
private $fontIcon;
+ private $imageIcon;
const AGE_FRESH = 'fresh';
const AGE_STALE = 'stale';
@@ -115,6 +116,15 @@
return $this->imageURI;
}
+ public function setImageIcon($image_icon) {
+ $this->imageIcon = $image_icon;
+ return $this;
+ }
+
+ public function getImageIcon() {
+ return $this->imageIcon;
+ }
+
public function setState($state) {
$this->state = $state;
switch ($state) {
@@ -288,6 +298,10 @@
$item_classes[] = 'phui-object-item-with-image';
}
+ if ($this->getImageIcon()) {
+ $item_classes[] = 'phui-object-item-with-image-icon';
+ }
+
if ($this->fontIcon) {
$item_classes[] = 'phui-object-item-with-ficon';
}
@@ -520,6 +534,22 @@
'style' => 'background-image: url('.$this->getImageURI().')',
),
'');
+ } else if ($this->getImageIcon()) {
+ $image = phutil_tag(
+ 'div',
+ array(
+ 'class' => 'phui-object-item-image-icon',
+ ),
+ $this->getImageIcon());
+ }
+
+ if ($image && $this->href) {
+ $image = phutil_tag(
+ 'a',
+ array(
+ 'href' => $this->href,
+ ),
+ $image);
}
$ficon = null;
diff --git a/webroot/rsrc/css/phui/phui-object-item-list-view.css b/webroot/rsrc/css/phui/phui-object-item-list-view.css
--- a/webroot/rsrc/css/phui/phui-object-item-list-view.css
+++ b/webroot/rsrc/css/phui/phui-object-item-list-view.css
@@ -671,3 +671,54 @@
border: none;
border-bottom: 1px solid {$thinblueborder};
}
+
+
+/* - Launcher List ---------------------------------------------------------- */
+
+.launcher-header {
+ margin: 8px 16px -4px;
+ clear: both;
+ color: {$darkbluetext};
+}
+
+.launcher-header:nth-of-type(1) {
+ margin-top: 24px;
+}
+
+.phui-object-item-launcher-list {
+ overflow: hidden;
+}
+
+.device-desktop .phui-object-item-launcher-list .phui-object-item {
+ width: 32.333%;
+ float: left;
+ margin-right: 1%;
+ box-sizing: border-box;
+}
+
+.phui-object-item-image-icon {
+ background: none;
+}
+
+.phui-object-item-image-icon {
+ width: 30px;
+ height: 30px;
+ margin: 4px 4px 4px 4px;
+ position: absolute;
+}
+
+.phui-object-item-image-icon .phui-icon-view {
+ position: absolute;
+ width: 28px;
+ height: 28px;
+ left: 6px;
+ top: 6px;
+}
+
+.phui-object-item-with-image-icon .phui-object-item-frame {
+ min-height: 48px;
+}
+
+.phui-object-item-with-image-icon .phui-object-item-content-box {
+ margin-left: 44px;
+}

File Metadata

Mime Type
text/plain
Expires
Tue, Oct 22, 6:36 AM (3 w, 19 h ago)
Storage Engine
amazon-s3
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
phabricator/secure/fn/uu/meujvovsbv2bg3wt
Default Alt Text
D9297.id22230.diff (37 KB)

Event Timeline