mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-25 23:10:57 +01:00
(Redesign) Clean up older "Tile" code
Summary: This does some backend cleanup of the tile stuff, and some general cleanup of other application things: - Users who haven't customized preferences get a small, specific set of pinned applications: Differential, Maniphest, Diffusion, Audit, Phriction, Projects (and, for administrators, Auth, Config and People). - Old tile size methods are replaced with `isPinnnedByDefault()`. - Shortened some short descriptions. - `shouldAppearInLaunchView()` replaced by less ambiguous `isLaunchable()`. - Added a marker for third-party / extension applications. Test Plan: Faked away my preferences and viewed the home page, saw a smaller set of default pins. Reviewers: chad Reviewed By: chad Subscribers: epriestley Differential Revision: https://secure.phabricator.com/D9358
This commit is contained in:
parent
8827854ff8
commit
6df1a02413
34 changed files with 128 additions and 93 deletions
|
@ -14,6 +14,10 @@ final class PhabricatorApplicationAudit extends PhabricatorApplication {
|
||||||
return pht('Browse and Audit Commits');
|
return pht('Browse and Audit Commits');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isPinnedByDefault(PhabricatorUser $viewer) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public function getHelpURI() {
|
public function getHelpURI() {
|
||||||
return PhabricatorEnv::getDoclink('Audit User Guide');
|
return PhabricatorEnv::getDoclink('Audit User Guide');
|
||||||
}
|
}
|
||||||
|
@ -34,10 +38,6 @@ final class PhabricatorApplicationAudit extends PhabricatorApplication {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getApplicationGroup() {
|
|
||||||
return self::GROUP_CORE;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getApplicationOrder() {
|
public function getApplicationOrder() {
|
||||||
return 0.130;
|
return 0.130;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,8 +14,12 @@ final class PhabricatorApplicationAuth extends PhabricatorApplication {
|
||||||
return 'authentication';
|
return 'authentication';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isPinnedByDefault(PhabricatorUser $viewer) {
|
||||||
|
return $viewer->getIsAdmin();
|
||||||
|
}
|
||||||
|
|
||||||
public function getShortDescription() {
|
public function getShortDescription() {
|
||||||
return pht('Configure Login and Registration');
|
return pht('Login/Registration');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getHelpURI() {
|
public function getHelpURI() {
|
||||||
|
|
|
@ -16,11 +16,6 @@ abstract class PhabricatorApplication
|
||||||
const GROUP_ADMIN = 'admin';
|
const GROUP_ADMIN = 'admin';
|
||||||
const GROUP_DEVELOPER = 'developer';
|
const GROUP_DEVELOPER = 'developer';
|
||||||
|
|
||||||
const TILE_INVISIBLE = 'invisible';
|
|
||||||
const TILE_HIDE = 'hide';
|
|
||||||
const TILE_SHOW = 'show';
|
|
||||||
const TILE_FULL = 'full';
|
|
||||||
|
|
||||||
public static function getApplicationGroups() {
|
public static function getApplicationGroups() {
|
||||||
return array(
|
return array(
|
||||||
self::GROUP_CORE => pht('Core Applications'),
|
self::GROUP_CORE => pht('Core Applications'),
|
||||||
|
@ -30,20 +25,10 @@ abstract class PhabricatorApplication
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getTileDisplayName($constant) {
|
|
||||||
$names = array(
|
|
||||||
self::TILE_INVISIBLE => pht('Invisible'),
|
|
||||||
self::TILE_HIDE => pht('Hidden'),
|
|
||||||
self::TILE_SHOW => pht('Show Small Tile'),
|
|
||||||
self::TILE_FULL => pht('Show Large Tile'),
|
|
||||||
);
|
|
||||||
return idx($names, $constant);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* -( Application Information )-------------------------------------------- */
|
/* -( Application Information )-------------------------------------------- */
|
||||||
|
|
||||||
|
|
||||||
public function getName() {
|
public function getName() {
|
||||||
return substr(get_class($this), strlen('PhabricatorApplication'));
|
return substr(get_class($this), strlen('PhabricatorApplication'));
|
||||||
}
|
}
|
||||||
|
@ -68,21 +53,63 @@ abstract class PhabricatorApplication
|
||||||
return empty($uninstalled[get_class($this)]);
|
return empty($uninstalled[get_class($this)]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public function isBeta() {
|
public function isBeta() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return true if this application should not appear in application lists in
|
* Return `true` if this application should never appear in application lists
|
||||||
* the UI. Primarily intended for unit test applications or other
|
* in the UI. Primarily intended for unit test applications or other
|
||||||
* pseudo-applications.
|
* pseudo-applications.
|
||||||
*
|
*
|
||||||
|
* Few applications should be unlisted. For most applications, use
|
||||||
|
* @{method:isLaunchable} to hide them from main launch views instead.
|
||||||
|
*
|
||||||
* @return bool True to remove application from UI lists.
|
* @return bool True to remove application from UI lists.
|
||||||
*/
|
*/
|
||||||
public function isUnlisted() {
|
public function isUnlisted() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return `true` if this application is a normal application with a base
|
||||||
|
* URI and a web interface.
|
||||||
|
*
|
||||||
|
* Launchable applications can be pinned to the home page, and show up in the
|
||||||
|
* "Launcher" view of the Applications application. Making an application
|
||||||
|
* unlauncahble prevents pinning and hides it from this view.
|
||||||
|
*
|
||||||
|
* Usually, an application should be marked unlaunchable if:
|
||||||
|
*
|
||||||
|
* - it is available on every page anyway (like search); or
|
||||||
|
* - it does not have a web interface (like subscriptions); or
|
||||||
|
* - it is still pre-release and being intentionally buried.
|
||||||
|
*
|
||||||
|
* To hide applications more completely, use @{method:isUnlisted}.
|
||||||
|
*
|
||||||
|
* @return bool True if the application is launchable.
|
||||||
|
*/
|
||||||
|
public function isLaunchable() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return `true` if this application should be pinned by default.
|
||||||
|
*
|
||||||
|
* Users who have not yet set preferences see a default list of applications.
|
||||||
|
*
|
||||||
|
* @param PhabricatorUser User viewing the pinned application list.
|
||||||
|
* @return bool True if this application should be pinned by default.
|
||||||
|
*/
|
||||||
|
public function isPinnedByDefault(PhabricatorUser $viewer) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if an application is first-party (developed by Phacility)
|
* Returns true if an application is first-party (developed by Phacility)
|
||||||
* and false otherwise.
|
* and false otherwise.
|
||||||
|
@ -113,7 +140,7 @@ abstract class PhabricatorApplication
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTypeaheadURI() {
|
public function getTypeaheadURI() {
|
||||||
return $this->getBaseURI();
|
return $this->isLaunchable() ? $this->getBaseURI() : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getBaseURI() {
|
public function getBaseURI() {
|
||||||
|
@ -132,10 +159,6 @@ abstract class PhabricatorApplication
|
||||||
return 'application';
|
return 'application';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getApplicationOrder() {
|
public function getApplicationOrder() {
|
||||||
return PHP_INT_MAX;
|
return PHP_INT_MAX;
|
||||||
}
|
}
|
||||||
|
@ -160,25 +183,6 @@ abstract class PhabricatorApplication
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getDefaultTileDisplay(PhabricatorUser $user) {
|
|
||||||
switch ($this->getApplicationGroup()) {
|
|
||||||
case self::GROUP_CORE:
|
|
||||||
return self::TILE_FULL;
|
|
||||||
case self::GROUP_UTILITIES:
|
|
||||||
case self::GROUP_DEVELOPER:
|
|
||||||
return self::TILE_HIDE;
|
|
||||||
case self::GROUP_ADMIN:
|
|
||||||
if ($user->getIsAdmin()) {
|
|
||||||
return self::TILE_SHOW;
|
|
||||||
} else {
|
|
||||||
return self::TILE_INVISIBLE;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return self::TILE_SHOW;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getRemarkupRules() {
|
public function getRemarkupRules() {
|
||||||
return array();
|
return array();
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,6 +8,10 @@ final class PhabricatorApplicationTest extends PhabricatorApplication {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isLaunchable() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public function reset() {
|
public function reset() {
|
||||||
$this->policies = array();
|
$this->policies = array();
|
||||||
}
|
}
|
||||||
|
@ -21,10 +25,6 @@ final class PhabricatorApplicationTest extends PhabricatorApplication {
|
||||||
return idx($this->policies, $capability, parent::getPolicy($capability));
|
return idx($this->policies, $capability, parent::getPolicy($capability));
|
||||||
}
|
}
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function canUninstall() {
|
public function canUninstall() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ final class PhabricatorApplicationConduit extends PhabricatorApplication {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getShortDescription() {
|
public function getShortDescription() {
|
||||||
return pht('Phabricator Developer API Console');
|
return pht('Developer API');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTitleGlyph() {
|
public function getTitleGlyph() {
|
||||||
|
|
|
@ -10,6 +10,10 @@ final class PhabricatorApplicationConfig extends PhabricatorApplication {
|
||||||
return 'setup';
|
return 'setup';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isPinnedByDefault(PhabricatorUser $viewer) {
|
||||||
|
return $viewer->getIsAdmin();
|
||||||
|
}
|
||||||
|
|
||||||
public function getTitleGlyph() {
|
public function getTitleGlyph() {
|
||||||
return "\xE2\x98\xBA";
|
return "\xE2\x98\xBA";
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,7 +48,13 @@ final class PhabricatorApplicationDashboard extends PhabricatorApplication {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
public function isBeta() {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function isLaunchable() {
|
||||||
|
// TODO: This is just concealing the application from launch views for
|
||||||
|
// now since it's not really beta yet.
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,6 +14,10 @@ final class PhabricatorApplicationDifferential extends PhabricatorApplication {
|
||||||
return 'differential';
|
return 'differential';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isPinnedByDefault(PhabricatorUser $viewer) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public function getHelpURI() {
|
public function getHelpURI() {
|
||||||
return PhabricatorEnv::getDoclink('Differential User Guide');
|
return PhabricatorEnv::getDoclink('Differential User Guide');
|
||||||
}
|
}
|
||||||
|
@ -74,10 +78,6 @@ EOTEXT
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getApplicationGroup() {
|
|
||||||
return self::GROUP_CORE;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getApplicationOrder() {
|
public function getApplicationOrder() {
|
||||||
return 0.100;
|
return 0.100;
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,10 @@ final class PhabricatorApplicationDiffusion extends PhabricatorApplication {
|
||||||
return 'diffusion';
|
return 'diffusion';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isPinnedByDefault(PhabricatorUser $viewer) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public function getHelpURI() {
|
public function getHelpURI() {
|
||||||
return PhabricatorEnv::getDoclink('Diffusion User Guide');
|
return PhabricatorEnv::getDoclink('Diffusion User Guide');
|
||||||
}
|
}
|
||||||
|
@ -116,10 +120,6 @@ final class PhabricatorApplicationDiffusion extends PhabricatorApplication {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getApplicationGroup() {
|
|
||||||
return self::GROUP_CORE;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function getApplicationOrder() {
|
public function getApplicationOrder() {
|
||||||
return 0.120;
|
return 0.120;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ final class PhabricatorApplicationDoorkeeper extends PhabricatorApplication {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
public function isLaunchable() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
final class PhabricatorApplicationFlags extends PhabricatorApplication {
|
final class PhabricatorApplicationFlags extends PhabricatorApplication {
|
||||||
|
|
||||||
public function getShortDescription() {
|
public function getShortDescription() {
|
||||||
return pht('Personal Bookmarks and Reminders');
|
return pht('Personal Bookmarks');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getBaseURI() {
|
public function getBaseURI() {
|
||||||
|
|
|
@ -7,7 +7,7 @@ final class PhabricatorApplicationHarbormaster extends PhabricatorApplication {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getShortDescription() {
|
public function getShortDescription() {
|
||||||
return pht('Builds and Continuous Integration');
|
return pht('Build/CI');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getIconName() {
|
public function getIconName() {
|
||||||
|
|
|
@ -23,7 +23,7 @@ final class PhabricatorApplicationHome extends PhabricatorApplication {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
public function isLaunchable() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -28,14 +28,6 @@ abstract class PhabricatorHomeController extends PhabricatorController {
|
||||||
->withLaunchable(true)
|
->withLaunchable(true)
|
||||||
->execute();
|
->execute();
|
||||||
|
|
||||||
foreach ($applications as $key => $application) {
|
|
||||||
$invisible = PhabricatorApplication::TILE_INVISIBLE;
|
|
||||||
if ($application->getDefaultTileDisplay($user) == $invisible) {
|
|
||||||
// Remove invisible applications (e.g., admin apps for non-admins).
|
|
||||||
unset($applications[$key]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$pinned = $user->loadPreferences()->getPinnedApplications(
|
$pinned = $user->loadPreferences()->getPinnedApplications(
|
||||||
$applications,
|
$applications,
|
||||||
$user);
|
$user);
|
||||||
|
|
|
@ -14,8 +14,8 @@ final class PhabricatorApplicationManiphest extends PhabricatorApplication {
|
||||||
return 'maniphest';
|
return 'maniphest';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getApplicationGroup() {
|
public function isPinnedByDefault(PhabricatorUser $viewer) {
|
||||||
return self::GROUP_CORE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getApplicationOrder() {
|
public function getApplicationOrder() {
|
||||||
|
|
|
@ -6,6 +6,12 @@ final class PhabricatorApplicationApplications extends PhabricatorApplication {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isLaunchable() {
|
||||||
|
// This application is launchable in the traditional sense, but showing it
|
||||||
|
// on the application launch list is confusing.
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
public function getBaseURI() {
|
public function getBaseURI() {
|
||||||
return '/applications/';
|
return '/applications/';
|
||||||
}
|
}
|
||||||
|
|
|
@ -226,13 +226,17 @@ final class PhabricatorAppSearchEngine
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$application->isInstalled()) {
|
if (!$application->isInstalled()) {
|
||||||
$item->addIcon('delete', pht('Uninstalled'));
|
$item->addIcon('fa-times', pht('Uninstalled'));
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($application->isBeta()) {
|
if ($application->isBeta()) {
|
||||||
$item->addIcon('fa-star-half-o grey', pht('Beta'));
|
$item->addIcon('fa-star-half-o grey', pht('Beta'));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!$application->isFirstParty()) {
|
||||||
|
$item->addIcon('fa-puzzle-piece', pht('Extension'));
|
||||||
|
}
|
||||||
|
|
||||||
$list->addItem($item);
|
$list->addItem($item);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -125,7 +125,7 @@ final class PhabricatorApplicationQuery
|
||||||
|
|
||||||
if ($this->launchable !== null) {
|
if ($this->launchable !== null) {
|
||||||
foreach ($apps as $key => $app) {
|
foreach ($apps as $key => $app) {
|
||||||
if ($app->shouldAppearInLaunchView() != $this->launchable) {
|
if ($app->isLaunchable() != $this->launchable) {
|
||||||
unset($apps[$key]);
|
unset($apps[$key]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ final class PhabricatorApplicationMetaMTA extends PhabricatorApplication {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
public function isLaunchable() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,7 +24,7 @@ final class PhabricatorApplicationNotifications extends PhabricatorApplication {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
public function isLaunchable() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@ final class PhabricatorApplicationNuance extends PhabricatorApplication {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
public function isLaunchable() {
|
||||||
// try to hide this even more for now
|
// try to hide this even more for now
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,7 +11,7 @@ final class PhabricatorApplicationOwners extends PhabricatorApplication {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getShortDescription() {
|
public function getShortDescription() {
|
||||||
return pht('Track Ownership of Source Code');
|
return pht('Own Source Code');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getTitleGlyph() {
|
public function getTitleGlyph() {
|
||||||
|
|
|
@ -7,7 +7,7 @@ final class PhabricatorApplicationPassphrase extends PhabricatorApplication {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getShortDescription() {
|
public function getShortDescription() {
|
||||||
return pht('Store Passwords and Credentials');
|
return pht('Credential Store');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getIconName() {
|
public function getIconName() {
|
||||||
|
|
|
@ -18,6 +18,10 @@ final class PhabricatorApplicationPeople extends PhabricatorApplication {
|
||||||
return 'people';
|
return 'people';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isPinnedByDefault(PhabricatorUser $viewer) {
|
||||||
|
return $viewer->getIsAdmin();
|
||||||
|
}
|
||||||
|
|
||||||
public function getFlavorText() {
|
public function getFlavorText() {
|
||||||
return pht('Sort of a social utility.');
|
return pht('Sort of a social utility.');
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,6 +14,10 @@ final class PhabricatorApplicationPhriction extends PhabricatorApplication {
|
||||||
return 'phriction';
|
return 'phriction';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function isPinnedByDefault(PhabricatorUser $viewer) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
public function getHelpURI() {
|
public function getHelpURI() {
|
||||||
return PhabricatorEnv::getDoclink('Phriction User Guide');
|
return PhabricatorEnv::getDoclink('Phriction User Guide');
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
final class PhabricatorApplicationPolicy extends PhabricatorApplication {
|
final class PhabricatorApplicationPolicy extends PhabricatorApplication {
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
public function isLaunchable() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,11 @@ final class PhabricatorApplicationProject extends PhabricatorApplication {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getShortDescription() {
|
public function getShortDescription() {
|
||||||
return pht('Create Groups, Tags, and Projects');
|
return pht('Get Organized');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function isPinnedByDefault(PhabricatorUser $viewer) {
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getBaseURI() {
|
public function getBaseURI() {
|
||||||
|
|
|
@ -22,7 +22,7 @@ final class PhabricatorApplicationSearch extends PhabricatorApplication {
|
||||||
return 'search';
|
return 'search';
|
||||||
}
|
}
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
public function isLaunchable() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ final class PhabricatorApplicationSettings extends PhabricatorApplication {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
public function isLaunchable() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,16 +66,19 @@ final class PhabricatorUserPreferences extends PhabricatorUserDAO {
|
||||||
|
|
||||||
$pref_tiles = PhabricatorUserPreferences::PREFERENCE_APP_TILES;
|
$pref_tiles = PhabricatorUserPreferences::PREFERENCE_APP_TILES;
|
||||||
$tiles = $this->getPreference($pref_tiles, array());
|
$tiles = $this->getPreference($pref_tiles, array());
|
||||||
|
$full_tile = 'full';
|
||||||
|
|
||||||
$large = array();
|
$large = array();
|
||||||
foreach ($apps as $app) {
|
foreach ($apps as $app) {
|
||||||
$tile = $app->getDefaultTileDisplay($viewer);
|
$show = $app->isPinnedByDefault($viewer);
|
||||||
|
|
||||||
|
// TODO: This is legacy stuff, clean it up eventually. This approximately
|
||||||
|
// retains the old "tiles" preference.
|
||||||
if (isset($tiles[get_class($app)])) {
|
if (isset($tiles[get_class($app)])) {
|
||||||
$tile = $tiles[get_class($app)];
|
$show = ($tiles[get_class($app)] == $full_tile);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($tile == PhabricatorApplication::TILE_FULL) {
|
if ($show) {
|
||||||
$large[] = get_class($app);
|
$large[] = get_class($app);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
final class PhabricatorApplicationSubscriptions extends PhabricatorApplication {
|
final class PhabricatorApplicationSubscriptions extends PhabricatorApplication {
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
public function isLaunchable() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
final class PhabricatorApplicationTransactions extends PhabricatorApplication {
|
final class PhabricatorApplicationTransactions extends PhabricatorApplication {
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
public function isLaunchable() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@ final class PhabricatorApplicationTypeahead extends PhabricatorApplication {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function shouldAppearInLaunchView() {
|
public function isLaunchable() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ final class PhabricatorApplicationUIExamples extends PhabricatorApplication {
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getShortDescription() {
|
public function getShortDescription() {
|
||||||
return pht('Phabricator Developer UI Examples');
|
return pht('Developer UI Examples');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getIconName() {
|
public function getIconName() {
|
||||||
|
|
Loading…
Reference in a new issue