1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-18 12:52:42 +01:00

Redesign Config Application

Summary: Ref T11132, significantly cleans up the Config app, new layout, icons, spacing, etc. Some minor todos around re-designing "issues", mobile support, and maybe another pass at actual Group pages.

Test Plan: Visit and test every page in the config app, set new items, resolve setup issues, etc.

Reviewers: epriestley

Reviewed By: epriestley

Subscribers: PHID-OPKG-gm6ozazyms6q6i22gyam, Korvin

Maniphest Tasks: T11132

Differential Revision: https://secure.phabricator.com/D16468
This commit is contained in:
Chad Little 2016-08-29 15:36:13 -07:00
parent 00796e592b
commit 60d1762a85
45 changed files with 505 additions and 460 deletions

View file

@ -7,7 +7,7 @@
*/
return array(
'names' => array(
'core.pkg.css' => '7d178771',
'core.pkg.css' => 'ffbade6c',
'core.pkg.js' => '2b8af4e4',
'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => '3fb7f532',
@ -36,10 +36,11 @@ return array(
'rsrc/css/application/base/notification-menu.css' => 'b3ab500d',
'rsrc/css/application/base/phabricator-application-launch-view.css' => '95351601',
'rsrc/css/application/base/phui-theme.css' => '027ba77e',
'rsrc/css/application/base/standard-page-view.css' => '99a7d403',
'rsrc/css/application/base/standard-page-view.css' => '2b592894',
'rsrc/css/application/chatlog/chatlog.css' => 'd295b020',
'rsrc/css/application/conduit/conduit-api.css' => '7bc725c4',
'rsrc/css/application/config/config-options.css' => '0ede4c9b',
'rsrc/css/application/config/config-page.css' => '8798e14f',
'rsrc/css/application/config/config-template.css' => '8e6c6fcd',
'rsrc/css/application/config/config-welcome.css' => '035aa483',
'rsrc/css/application/config/setup-issue.css' => 'f794cfc3',
@ -112,7 +113,7 @@ return array(
'rsrc/css/font/font-aleo.css' => '8bdb2835',
'rsrc/css/font/font-awesome.css' => '2b7ebbcc',
'rsrc/css/font/font-lato.css' => 'c7ccd872',
'rsrc/css/font/phui-font-icon-base.css' => '4e8274c4',
'rsrc/css/font/phui-font-icon-base.css' => '870a7360',
'rsrc/css/layout/phabricator-filetree-view.css' => 'fccf9f82',
'rsrc/css/layout/phabricator-source-code-view.css' => 'cbeef983',
'rsrc/css/phui/calendar/phui-calendar-day.css' => '572b1893',
@ -147,7 +148,7 @@ return array(
'rsrc/css/phui/phui-info-view.css' => '28efab79',
'rsrc/css/phui/phui-list.css' => '9da2aa00',
'rsrc/css/phui/phui-object-box.css' => '6b487c57',
'rsrc/css/phui/phui-object-item-list-view.css' => '985e9d54',
'rsrc/css/phui/phui-object-item-list-view.css' => '987db9bf',
'rsrc/css/phui/phui-pager.css' => 'bea33d23',
'rsrc/css/phui/phui-pinboard-view.css' => '2495140e',
'rsrc/css/phui/phui-profile-menu.css' => '8a3fc181',
@ -547,6 +548,7 @@ return array(
'changeset-view-manager' => 'a2828756',
'conduit-api-css' => '7bc725c4',
'config-options-css' => '0ede4c9b',
'config-page-css' => '8798e14f',
'config-welcome-css' => '035aa483',
'conpherence-durable-column-view' => '86396117',
'conpherence-menu-css' => '90bdf85c',
@ -797,7 +799,7 @@ return array(
'phabricator-shaped-request' => '7cbe244b',
'phabricator-slowvote-css' => 'a94b7230',
'phabricator-source-code-view-css' => 'cbeef983',
'phabricator-standard-page-view' => '99a7d403',
'phabricator-standard-page-view' => '2b592894',
'phabricator-textareautils' => '320810c8',
'phabricator-title' => 'df5e11d2',
'phabricator-tooltip' => '6323f942',
@ -840,7 +842,7 @@ return array(
'phui-document-view-css' => 'c32e8dec',
'phui-document-view-pro-css' => 'dc3d46ed',
'phui-feed-story-css' => 'aa49845d',
'phui-font-icon-base-css' => '4e8274c4',
'phui-font-icon-base-css' => '870a7360',
'phui-fontkit-css' => '9cda225e',
'phui-form-css' => 'aac1d51d',
'phui-form-view-css' => '76b4a46c',
@ -856,7 +858,7 @@ return array(
'phui-inline-comment-view-css' => '5953c28e',
'phui-list-view-css' => '9da2aa00',
'phui-object-box-css' => '6b487c57',
'phui-object-item-list-view-css' => '985e9d54',
'phui-object-item-list-view-css' => '987db9bf',
'phui-pager-css' => 'bea33d23',
'phui-pinboard-view-css' => '2495140e',
'phui-profile-menu-css' => '8a3fc181',

View file

@ -2149,6 +2149,7 @@ phutil_register_library_map(array(
'PhabricatorConfigCollectorsModule' => 'applications/config/module/PhabricatorConfigCollectorsModule.php',
'PhabricatorConfigColumnSchema' => 'applications/config/schema/PhabricatorConfigColumnSchema.php',
'PhabricatorConfigConfigPHIDType' => 'applications/config/phid/PhabricatorConfigConfigPHIDType.php',
'PhabricatorConfigConstants' => 'applications/config/constants/PhabricatorConfigConstants.php',
'PhabricatorConfigController' => 'applications/config/controller/PhabricatorConfigController.php',
'PhabricatorConfigCoreSchemaSpec' => 'applications/config/schema/PhabricatorConfigCoreSchemaSpec.php',
'PhabricatorConfigDatabaseController' => 'applications/config/controller/PhabricatorConfigDatabaseController.php',
@ -2165,6 +2166,7 @@ phutil_register_library_map(array(
'PhabricatorConfigEntryDAO' => 'applications/config/storage/PhabricatorConfigEntryDAO.php',
'PhabricatorConfigEntryQuery' => 'applications/config/query/PhabricatorConfigEntryQuery.php',
'PhabricatorConfigFileSource' => 'infrastructure/env/PhabricatorConfigFileSource.php',
'PhabricatorConfigGroupConstants' => 'applications/config/constants/PhabricatorConfigGroupConstants.php',
'PhabricatorConfigGroupController' => 'applications/config/controller/PhabricatorConfigGroupController.php',
'PhabricatorConfigHTTPParameterTypesModule' => 'applications/config/module/PhabricatorConfigHTTPParameterTypesModule.php',
'PhabricatorConfigHistoryController' => 'applications/config/controller/PhabricatorConfigHistoryController.php',
@ -2188,6 +2190,7 @@ phutil_register_library_map(array(
'PhabricatorConfigOption' => 'applications/config/option/PhabricatorConfigOption.php',
'PhabricatorConfigOptionType' => 'applications/config/custom/PhabricatorConfigOptionType.php',
'PhabricatorConfigPHIDModule' => 'applications/config/module/PhabricatorConfigPHIDModule.php',
'PhabricatorConfigPageView' => 'applications/config/view/PhabricatorConfigPageView.php',
'PhabricatorConfigProxySource' => 'infrastructure/env/PhabricatorConfigProxySource.php',
'PhabricatorConfigPurgeCacheController' => 'applications/config/controller/PhabricatorConfigPurgeCacheController.php',
'PhabricatorConfigRequestExceptionHandlerModule' => 'applications/config/module/PhabricatorConfigRequestExceptionHandlerModule.php',
@ -2649,7 +2652,6 @@ phutil_register_library_map(array(
'PhabricatorHandleRemarkupRule' => 'applications/phid/remarkup/PhabricatorHandleRemarkupRule.php',
'PhabricatorHandlesEditField' => 'applications/transactions/editfield/PhabricatorHandlesEditField.php',
'PhabricatorHarbormasterApplication' => 'applications/harbormaster/application/PhabricatorHarbormasterApplication.php',
'PhabricatorHarbormasterConfigOptions' => 'applications/harbormaster/config/PhabricatorHarbormasterConfigOptions.php',
'PhabricatorHash' => 'infrastructure/util/PhabricatorHash.php',
'PhabricatorHashTestCase' => 'infrastructure/util/__tests__/PhabricatorHashTestCase.php',
'PhabricatorHelpApplication' => 'applications/help/application/PhabricatorHelpApplication.php',
@ -3158,7 +3160,6 @@ phutil_register_library_map(array(
'PhabricatorPhortuneManagementWorkflow' => 'applications/phortune/management/PhabricatorPhortuneManagementWorkflow.php',
'PhabricatorPhragmentApplication' => 'applications/phragment/application/PhabricatorPhragmentApplication.php',
'PhabricatorPhrequentApplication' => 'applications/phrequent/application/PhabricatorPhrequentApplication.php',
'PhabricatorPhrequentConfigOptions' => 'applications/phrequent/config/PhabricatorPhrequentConfigOptions.php',
'PhabricatorPhrictionApplication' => 'applications/phriction/application/PhabricatorPhrictionApplication.php',
'PhabricatorPhrictionConfigOptions' => 'applications/phriction/config/PhabricatorPhrictionConfigOptions.php',
'PhabricatorPhurlApplication' => 'applications/phurl/application/PhabricatorPhurlApplication.php',
@ -6891,6 +6892,7 @@ phutil_register_library_map(array(
'PhabricatorConfigCollectorsModule' => 'PhabricatorConfigModule',
'PhabricatorConfigColumnSchema' => 'PhabricatorConfigStorageSchema',
'PhabricatorConfigConfigPHIDType' => 'PhabricatorPHIDType',
'PhabricatorConfigConstants' => 'Phobject',
'PhabricatorConfigController' => 'PhabricatorController',
'PhabricatorConfigCoreSchemaSpec' => 'PhabricatorConfigSchemaSpec',
'PhabricatorConfigDatabaseController' => 'PhabricatorConfigController',
@ -6911,6 +6913,7 @@ phutil_register_library_map(array(
'PhabricatorConfigEntryDAO' => 'PhabricatorLiskDAO',
'PhabricatorConfigEntryQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
'PhabricatorConfigFileSource' => 'PhabricatorConfigProxySource',
'PhabricatorConfigGroupConstants' => 'PhabricatorConfigConstants',
'PhabricatorConfigGroupController' => 'PhabricatorConfigController',
'PhabricatorConfigHTTPParameterTypesModule' => 'PhabricatorConfigModule',
'PhabricatorConfigHistoryController' => 'PhabricatorConfigController',
@ -6937,6 +6940,7 @@ phutil_register_library_map(array(
),
'PhabricatorConfigOptionType' => 'Phobject',
'PhabricatorConfigPHIDModule' => 'PhabricatorConfigModule',
'PhabricatorConfigPageView' => 'AphrontTagView',
'PhabricatorConfigProxySource' => 'PhabricatorConfigSource',
'PhabricatorConfigPurgeCacheController' => 'PhabricatorConfigController',
'PhabricatorConfigRequestExceptionHandlerModule' => 'PhabricatorConfigModule',
@ -7467,7 +7471,6 @@ phutil_register_library_map(array(
'PhabricatorHandleRemarkupRule' => 'PhutilRemarkupRule',
'PhabricatorHandlesEditField' => 'PhabricatorPHIDListEditField',
'PhabricatorHarbormasterApplication' => 'PhabricatorApplication',
'PhabricatorHarbormasterConfigOptions' => 'PhabricatorApplicationConfigOptions',
'PhabricatorHash' => 'Phobject',
'PhabricatorHashTestCase' => 'PhabricatorTestCase',
'PhabricatorHelpApplication' => 'PhabricatorApplication',
@ -8050,7 +8053,6 @@ phutil_register_library_map(array(
'PhabricatorPhortuneManagementWorkflow' => 'PhabricatorManagementWorkflow',
'PhabricatorPhragmentApplication' => 'PhabricatorApplication',
'PhabricatorPhrequentApplication' => 'PhabricatorApplication',
'PhabricatorPhrequentConfigOptions' => 'PhabricatorApplicationConfigOptions',
'PhabricatorPhrictionApplication' => 'PhabricatorApplication',
'PhabricatorPhrictionConfigOptions' => 'PhabricatorApplicationConfigOptions',
'PhabricatorPhurlApplication' => 'PhabricatorApplication',

View file

@ -25,7 +25,7 @@ final class PhabricatorAuthSessionEngineExtensionModule
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setNoDataString(
pht('There are no registered session engine extensions.'))
->setHeaders(
@ -41,10 +41,6 @@ final class PhabricatorAuthSessionEngineExtensionModule
'wide pri',
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('SessionEngine Extensions'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -8,7 +8,7 @@ final class PhabricatorAuthTemporaryTokenTypeModule
}
public function getModuleName() {
return pht('Temporary Tokens');
return pht('Temporary Token Types');
}
public function renderModuleStatus(AphrontRequest $request) {
@ -25,7 +25,7 @@ final class PhabricatorAuthTemporaryTokenTypeModule
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setHeaders(
array(
pht('Class'),
@ -39,10 +39,6 @@ final class PhabricatorAuthTemporaryTokenTypeModule
'wide pri',
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('Temporary Token Types'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -3,7 +3,7 @@
final class PhabricatorCacheSetupCheck extends PhabricatorSetupCheck {
public function getDefaultGroup() {
return self::GROUP_OTHER;
return self::GROUP_PHP;
}
protected function executeChecks() {

View file

@ -34,11 +34,9 @@ final class PhabricatorMySQLSetupCheck extends PhabricatorSetupCheck {
if ($max_allowed_packet < $recommended_minimum) {
$message = pht(
"MySQL is configured with a small '%s' (%d), ".
"which may cause some large writes to fail. Strongly consider raising ".
"this to at least %d in your MySQL configuration.",
"which may cause some large writes to fail.",
'max_allowed_packet',
$max_allowed_packet,
$recommended_minimum);
$max_allowed_packet);
$this->newIssue('mysql.max_allowed_packet')
->setName(pht('Small MySQL "%s"', 'max_allowed_packet'))

View file

@ -0,0 +1,3 @@
<?php
abstract class PhabricatorConfigConstants extends Phobject {}

View file

@ -0,0 +1,37 @@
<?php
abstract class PhabricatorConfigGroupConstants
extends PhabricatorConfigConstants {
const GROUP_CORE = 'core';
const GROUP_APPLICATION = 'apps';
const GROUP_DEVELOPER = 'developer';
public static function getGroupName($group) {
$map = array(
self::GROUP_CORE => pht('Core Settings'),
self::GROUP_APPLICATION => pht('Application Settings'),
self::GROUP_DEVELOPER => pht('Developer Settings'),
);
return idx($map, $group, pht('Unknown'));
}
public static function getGroupShortName($group) {
$map = array(
self::GROUP_CORE => pht('Core'),
self::GROUP_APPLICATION => pht('Application'),
self::GROUP_DEVELOPER => pht('Developer'),
);
return idx($map, $group, pht('Unknown'));
}
public static function getGroupURI($group) {
$map = array(
self::GROUP_CORE => '/',
self::GROUP_APPLICATION => pht('application/'),
self::GROUP_DEVELOPER => pht('developer/'),
);
return idx($map, $group, '#');
}
}

View file

@ -52,27 +52,26 @@ final class PhabricatorConfigAllController
$crumbs = $this
->buildApplicationCrumbs()
->addTextCrumb(pht('Configuration'), $this->getApplicationURI())
->addTextCrumb($title);
->addTextCrumb($title)
->setBorder(true);
$panel = id(new PHUIObjectBoxView())
->setHeaderText(pht('Current Settings'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true);
$nav = $this->buildSideNavView();
$nav->selectFilter('all/');
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn(array(
$panel,
));
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($table);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}

View file

@ -12,42 +12,45 @@ final class PhabricatorConfigApplicationController
$groups = PhabricatorApplicationConfigOptions::loadAll();
$apps_list = $this->buildConfigOptionsList($groups, 'apps');
$title = pht('Application Configuration');
$title = pht('Application Settings');
$apps = id(new PHUIObjectBoxView())
->setHeaderText($title)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setObjectList($apps_list);
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true);
$crumbs = $this
->buildApplicationCrumbs()
->addTextCrumb(pht('Configuration'), $this->getApplicationURI())
->addTextCrumb(pht('Applications'));
->addTextCrumb(pht('Applications'))
->setBorder(true);
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn(array(
$apps,
));
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($apps_list);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
private function buildConfigOptionsList(array $groups, $type) {
assert_instances_of($groups, 'PhabricatorApplicationConfigOptions');
$list = new PHUIObjectItemListView();
$list->setBig(true);
$groups = msort($groups, 'getName');
foreach ($groups as $group) {
if ($group->getGroup() == $type) {
$icon = id(new PHUIIconView())
->setIcon($group->getIcon())
->setBackground('bg-violet');
$item = id(new PHUIObjectItemView())
->setHeader($group->getName())
->setHref('/config/group/'.$group->getKey().'/')
->addAttribute($group->getDescription())
->setImageIcon($group->getIcon());
->setImageIcon($icon);
$list->addItem($item);
}
}

View file

@ -11,24 +11,33 @@ final class PhabricatorConfigCacheController
$title = pht('Cache Status');
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true);
$crumbs = $this
->buildApplicationCrumbs()
->addTextCrumb(pht('Cache Status'));
->addTextCrumb(pht('Cache Status'))
->setBorder(true);
$code_box = $this->renderCodeBox();
$data_box = $this->renderDataBox();
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn(array(
$code_box,
$data_box,
));
$page = array(
$code_box,
$data_box,
);
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($page);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
private function renderCodeBox() {

View file

@ -7,22 +7,36 @@ final class PhabricatorConfigClusterDatabasesController
$nav = $this->buildSideNavView();
$nav->selectFilter('cluster/databases/');
$title = pht('Database Servers');
$title = pht('Cluster Database Status');
$doc_href = PhabricatorEnv::getDoclink('Cluster: Databases');
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true)
->addActionLink(
id(new PHUIButtonView())
->setIcon('fa-book')
->setHref($doc_href)
->setTag('a')
->setText(pht('Documentation')));
$crumbs = $this
->buildApplicationCrumbs($nav)
->addTextCrumb(pht('Database Servers'));
->addTextCrumb($title)
->setBorder(true);
$database_status = $this->buildClusterDatabaseStatus();
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn($database_status);
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($database_status);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
private function buildClusterDatabaseStatus() {
@ -194,21 +208,7 @@ final class PhabricatorConfigClusterDatabasesController
'wide',
));
$doc_href = PhabricatorEnv::getDoclink('Cluster: Databases');
$header = id(new PHUIHeaderView())
->setHeader(pht('Cluster Database Status'))
->addActionLink(
id(new PHUIButtonView())
->setIcon('fa-book')
->setHref($doc_href)
->setTag('a')
->setText(pht('Documentation')));
return id(new PHUIObjectBoxView())
->setHeader($header)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
return $table;
}
}

View file

@ -8,21 +8,35 @@ final class PhabricatorConfigClusterNotificationsController
$nav->selectFilter('cluster/notifications/');
$title = pht('Cluster Notifications');
$doc_href = PhabricatorEnv::getDoclink('Cluster: Notifications');
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true)
->addActionLink(
id(new PHUIButtonView())
->setIcon('fa-book')
->setHref($doc_href)
->setTag('a')
->setText(pht('Documentation')));
$crumbs = $this
->buildApplicationCrumbs($nav)
->addTextCrumb(pht('Cluster Notifications'));
->addTextCrumb($title)
->setBorder(true);
$notification_status = $this->buildClusterNotificationStatus();
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn($notification_status);
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($notification_status);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
private function buildClusterNotificationStatus() {
@ -144,21 +158,7 @@ final class PhabricatorConfigClusterNotificationsController
'wide',
));
$doc_href = PhabricatorEnv::getDoclink('Cluster: Notifications');
$header = id(new PHUIHeaderView())
->setHeader(pht('Cluster Notification Status'))
->addActionLink(
id(new PHUIButtonView())
->setIcon('fa-book')
->setHref($doc_href)
->setTag('a')
->setText(pht('Documentation')));
return id(new PHUIObjectBoxView())
->setHeader($header)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
return $table;
}
}

View file

@ -7,22 +7,37 @@ final class PhabricatorConfigClusterRepositoriesController
$nav = $this->buildSideNavView();
$nav->selectFilter('cluster/repositories/');
$title = pht('Repository Servers');
$title = pht('Cluster Repository Status');
$doc_href = PhabricatorEnv::getDoclink('Cluster: Repositories');
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true)
->addActionLink(
id(new PHUIButtonView())
->setIcon('fa-book')
->setHref($doc_href)
->setTag('a')
->setText(pht('Documentation')));
$crumbs = $this
->buildApplicationCrumbs($nav)
->addTextCrumb(pht('Repository Servers'));
->addTextCrumb(pht('Repository Servers'))
->setBorder(true);
$repository_status = $this->buildClusterRepositoryStatus();
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn($repository_status);
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($repository_status);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
private function buildClusterRepositoryStatus() {
@ -217,8 +232,7 @@ final class PhabricatorConfigClusterRepositoriesController
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setNoDataString(
pht('No repository cluster services are configured.'))
->setHeaders(
@ -239,22 +253,6 @@ final class PhabricatorConfigClusterRepositoriesController
null,
'wide',
));
$doc_href = PhabricatorEnv::getDoclink('Cluster: Repositories');
$header = id(new PHUIHeaderView())
->setHeader(pht('Cluster Repository Status'))
->addActionLink(
id(new PHUIButtonView())
->setIcon('fa-book')
->setHref($doc_href)
->setTag('a')
->setText(pht('Documentation')));
return id(new PHUIObjectBoxView())
->setHeader($header)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
private function getDevices(

View file

@ -60,18 +60,4 @@ abstract class PhabricatorConfigDatabaseController
}
}
protected function buildHeaderWithDocumentationLink($title) {
$doc_link = PhabricatorEnv::getDoclink('Managing Storage Adjustments');
return id(new PHUIHeaderView())
->setHeader($title)
->addActionLink(
id(new PHUIButtonView())
->setTag('a')
->setIcon('fa-book')
->setHref($doc_link)
->setText(pht('Learn More')));
}
}

View file

@ -14,6 +14,7 @@ final class PhabricatorConfigDatabaseIssueController
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Database Issues'));
$crumbs->setBorder(true);
// Collect all open issues.
$issues = array();
@ -111,6 +112,8 @@ final class PhabricatorConfigDatabaseIssueController
}
$table = id(new AphrontTableView($rows))
->setNoDataString(
pht('No databases have any issues.'))
->setHeaders(
array(
null,
@ -146,25 +149,23 @@ final class PhabricatorConfigDatabaseIssueController
$title = pht('Database Issues');
$table_box = id(new PHUIObjectBoxView())
->setHeader($this->buildHeaderWithDocumentationLink($title))
->setFormErrors($errors)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true);
$nav = $this->buildSideNavView();
$nav->selectFilter('dbissue/');
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn(array(
$table_box,
));
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($table);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
}

View file

@ -62,7 +62,12 @@ final class PhabricatorConfigDatabaseStatusController
$nav = $this->buildSideNavView();
$nav->selectFilter('database/');
if (!$title) {
$title = pht('Database Status');
}
$crumbs = $this->buildApplicationCrumbs();
$crumbs->setBorder(true);
if ($this->database) {
$crumbs->addTextCrumb(
pht('Database Status'),
@ -91,16 +96,28 @@ final class PhabricatorConfigDatabaseStatusController
$crumbs->addTextCrumb(pht('Database Status'));
}
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn(array(
$body,
));
$doc_link = PhabricatorEnv::getDoclink('Managing Storage Adjustments');
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true)
->addActionLink(
id(new PHUIButtonView())
->setTag('a')
->setIcon('fa-book')
->setHref($doc_link)
->setText(pht('Learn More')));
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($body);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
@ -163,17 +180,7 @@ final class PhabricatorConfigDatabaseStatusController
),
$comp->getIssues());
$prop_box = id(new PHUIObjectBoxView())
->setHeader($this->buildHeaderWithDocumentationLink($title))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($properties);
$table_box = id(new PHUIObjectBoxView())
->setHeaderText(pht('Databases'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
return $this->buildResponse($title, array($prop_box, $table_box));
return $this->buildResponse($title, array($properties, $table));
}
private function renderDatabase(
@ -263,17 +270,7 @@ final class PhabricatorConfigDatabaseStatusController
),
$database->getIssues());
$prop_box = id(new PHUIObjectBoxView())
->setHeader($this->buildHeaderWithDocumentationLink($title))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($properties);
$table_box = id(new PHUIObjectBoxView())
->setHeaderText(pht('Database Status'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
return $this->buildResponse($title, array($prop_box, $table_box));
return $this->buildResponse($title, array($properties, $table));
}
private function renderTable(
@ -478,22 +475,8 @@ final class PhabricatorConfigDatabaseStatusController
),
$table->getIssues());
$prop_box = id(new PHUIObjectBoxView())
->setHeader($this->buildHeaderWithDocumentationLink($title))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($properties);
$table_box = id(new PHUIObjectBoxView())
->setHeaderText(pht('Database'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table_view);
$key_box = id(new PHUIObjectBoxView())
->setHeaderText(pht('Keys'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($keys_view);
return $this->buildResponse($title, array($prop_box, $table_box, $key_box));
return $this->buildResponse(
$title, array($properties, $table_view, $keys_view));
}
private function renderColumn(
@ -625,12 +608,7 @@ final class PhabricatorConfigDatabaseStatusController
),
$column->getIssues());
$box = id(new PHUIObjectBoxView())
->setHeader($this->buildHeaderWithDocumentationLink($title))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($properties);
return $this->buildResponse($title, $box);
return $this->buildResponse($title, $properties);
}
private function renderKey(
@ -719,12 +697,7 @@ final class PhabricatorConfigDatabaseStatusController
),
$key->getIssues());
$box = id(new PHUIObjectBoxView())
->setHeader($this->buildHeaderWithDocumentationLink($title))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($properties);
return $this->buildResponse($title, $box);
return $this->buildResponse($title, $properties);
}
private function buildProperties(array $properties, array $issues) {
@ -769,7 +742,7 @@ final class PhabricatorConfigDatabaseStatusController
}
$view->addProperty(pht('Schema Status'), $status_view);
return $view;
return phutil_tag_div('config-page-property', $view);
}
}

View file

@ -13,31 +13,37 @@ final class PhabricatorConfigGroupController
return new Aphront404Response();
}
$group_uri = PhabricatorConfigGroupConstants::getGroupURI(
$options->getGroup());
$group_name = PhabricatorConfigGroupConstants::getGroupShortName(
$options->getGroup());
$nav = $this->buildSideNavView();
$nav->selectFilter($group_uri);
$title = pht('%s Configuration', $options->getName());
$list = $this->buildOptionList($options->getOptions());
$box = id(new PHUIObjectBoxView())
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setObjectList($list);
$crumbs = $this
->buildApplicationCrumbs()
->addTextCrumb(pht('Config'), $this->getApplicationURI())
->addTextCrumb($options->getName(), $this->getApplicationURI())
->addTextCrumb($group_name, $this->getApplicationURI($group_uri))
->addTextCrumb($options->getName())
->setBorder(true);
$header = id(new PHUIHeaderView())
->setHeader($title)
->setHeaderIcon('fa-sliders');
->setProfileHeader(true);
$view = id(new PHUITwoColumnView())
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setFooter($box);
->setContent($list);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
private function buildOptionList(array $options) {
@ -62,6 +68,7 @@ final class PhabricatorConfigGroupController
$engine->process();
$list = new PHUIObjectItemListView();
$list->setBig(true);
foreach ($options as $option) {
$summary = $engine->getOutput($option, 'summary');
@ -89,13 +96,13 @@ final class PhabricatorConfigGroupController
$db_value = idx($db_values, $option->getKey());
if ($db_value && !$db_value->getIsDeleted()) {
$item->addIcon('edit', pht('Customized'));
$item->addIcon('fa-edit', pht('Customized'));
}
if ($option->getHidden()) {
$item->addIcon('unpublish', pht('Hidden'));
$item->addIcon('fa-eye-slash', pht('Hidden'));
} else if ($option->getLocked()) {
$item->addIcon('lock', pht('Locked'));
$item->addIcon('fa-lock', pht('Locked'));
}
$list->addItem($item);

View file

@ -31,22 +31,26 @@ final class PhabricatorConfigHistoryController
$title = pht('Settings History');
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb('Configuration', $this->getApplicationURI());
$crumbs->addTextCrumb($title, '/config/history/');
$crumbs->addTextCrumb($title);
$crumbs->setBorder(true);
$nav = $this->buildSideNavView();
$nav->selectFilter('history/');
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn(array(
$timeline,
));
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true);
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($timeline);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
}

View file

@ -15,45 +15,25 @@ final class PhabricatorConfigIssueListController
$update_database = true);
$important = $this->buildIssueList(
$issues, PhabricatorSetupCheck::GROUP_IMPORTANT);
$issues,
PhabricatorSetupCheck::GROUP_IMPORTANT,
'fa-warning');
$php = $this->buildIssueList(
$issues, PhabricatorSetupCheck::GROUP_PHP);
$issues,
PhabricatorSetupCheck::GROUP_PHP,
'fa-code');
$mysql = $this->buildIssueList(
$issues, PhabricatorSetupCheck::GROUP_MYSQL);
$issues,
PhabricatorSetupCheck::GROUP_MYSQL,
'fa-database');
$other = $this->buildIssueList(
$issues, PhabricatorSetupCheck::GROUP_OTHER);
$issues,
PhabricatorSetupCheck::GROUP_OTHER,
'fa-question-circle');
$setup_issues = array();
if ($important) {
$setup_issues[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Important Setup Issues'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setObjectList($important);
}
if ($php) {
$setup_issues[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('PHP Setup Issues'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setObjectList($php);
}
if ($mysql) {
$setup_issues[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('MySQL Setup Issues'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setObjectList($mysql);
}
if ($other) {
$setup_issues[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Other Setup Issues'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setObjectList($other);
}
if (empty($setup_issues)) {
$setup_issues[] = id(new PHUIInfoView())
$no_issues = null;
if (empty($issues)) {
$no_issues = id(new PHUIInfoView())
->setTitle(pht('No Issues'))
->appendChild(
pht('Your install has no current setup issues to resolve.'))
@ -62,25 +42,39 @@ final class PhabricatorConfigIssueListController
$title = pht('Setup Issues');
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true);
$crumbs = $this
->buildApplicationCrumbs($nav)
->addTextCrumb(pht('Setup'), $this->getApplicationURI('issue/'));
->addTextCrumb(pht('Setup Issues'))
->setBorder(true);
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn(array(
$setup_issues,
));
$page = array(
$no_issues,
$important,
$php,
$mysql,
$other,
);
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($page);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
private function buildIssueList(array $issues, $group) {
private function buildIssueList(array $issues, $group, $fonticon) {
assert_instances_of($issues, 'PhabricatorSetupIssue');
$list = new PHUIObjectItemListView();
$list->setBig(true);
$ignored_items = array();
$items = 0;
@ -93,12 +87,17 @@ final class PhabricatorConfigIssueListController
->setHref($href)
->addAttribute($issue->getSummary());
if (!$issue->getIsIgnored()) {
$item->setStatusIcon('fa-warning yellow');
$icon = id(new PHUIIconView())
->setIcon($fonticon)
->setBackground('bg-sky');
$item->setImageIcon($icon);
$list->addItem($item);
} else {
$item->addIcon('fa-eye-slash', pht('Ignored'));
$icon = id(new PHUIIconView())
->setIcon('fa-eye-slash')
->setBackground('bg-grey');
$item->setDisabled(true);
$item->setStatusIcon('fa-warning grey');
$item->setImageIcon($icon);
$ignored_items[] = $item;
}
}

View file

@ -12,6 +12,9 @@ final class PhabricatorConfigIssueViewController
PhabricatorSetupCheck::getUnignoredIssueKeys($issues),
$update_database = true);
$nav = $this->buildSideNavView();
$nav->selectFilter('issue/');
if (empty($issues[$issue_key])) {
$content = id(new PHUIInfoView())
->setSeverity(PHUIInfoView::SEVERITY_NOTICE)
@ -35,12 +38,15 @@ final class PhabricatorConfigIssueViewController
->buildApplicationCrumbs()
->setBorder(true)
->addTextCrumb(pht('Setup Issues'), $this->getApplicationURI('issue/'))
->addTextCrumb($title, $request->getRequestURI());
->addTextCrumb($title, $request->getRequestURI())
->setBorder(true);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($content);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
private function renderIssue(PhabricatorSetupIssue $issue) {

View file

@ -12,42 +12,45 @@ final class PhabricatorConfigListController
$groups = PhabricatorApplicationConfigOptions::loadAll();
$core_list = $this->buildConfigOptionsList($groups, 'core');
$title = pht('Core Configuration');
$title = pht('Core Settings');
$core = id(new PHUIObjectBoxView())
->setHeaderText($title)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setObjectList($core_list);
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true);
$crumbs = $this
->buildApplicationCrumbs()
->addTextCrumb(pht('Configuration'), $this->getApplicationURI())
->addTextCrumb($title);
->addTextCrumb(pht('Core'))
->setBorder(true);
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn(array(
$core,
));
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($core_list);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
private function buildConfigOptionsList(array $groups, $type) {
assert_instances_of($groups, 'PhabricatorApplicationConfigOptions');
$list = new PHUIObjectItemListView();
$list->setBig(true);
$groups = msort($groups, 'getName');
foreach ($groups as $group) {
if ($group->getGroup() == $type) {
$icon = id(new PHUIIconView())
->setIcon($group->getIcon())
->setBackground('bg-blue');
$item = id(new PHUIObjectItemView())
->setHeader($group->getName())
->setHref('/config/group/'.$group->getKey().'/')
->addAttribute($group->getDescription())
->setImageIcon($group->getIcon());
->setImageIcon($icon);
$list->addItem($item);
}
}

View file

@ -18,20 +18,25 @@ final class PhabricatorConfigModuleController
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb($title);
$crumbs->setBorder(true);
$nav = $this->buildSideNavView();
$nav->selectFilter('module/'.$key.'/');
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn(array(
$content,
));
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true);
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($content);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
}

View file

@ -10,24 +10,28 @@ final class PhabricatorConfigVersionController
$crumbs = $this
->buildApplicationCrumbs()
->addTextCrumb(pht('Configuration'), $this->getApplicationURI())
->addTextCrumb($title);
->addTextCrumb($title)
->setBorder(true);
$versions = $this->renderModuleStatus($viewer);
$nav = $this->buildSideNavView();
$nav->selectFilter('version/');
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn(array(
$versions,
));
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true);
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($versions);
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
@ -39,11 +43,6 @@ final class PhabricatorConfigVersionController
$version_property_list->addProperty($name, $version);
}
$object_box = id(new PHUIObjectBoxView())
->setHeaderText(pht('Version Information'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($version_property_list);
$phabricator_root = dirname(phutil_get_library_root('phabricator'));
$version_path = $phabricator_root.'/conf/local/VERSION';
if (Filesystem::pathExists($version_path)) {
@ -53,7 +52,7 @@ final class PhabricatorConfigVersionController
$version_from_file);
}
return $object_box;
return $version_property_list;
}
private function loadVersions(PhabricatorUser $viewer) {

View file

@ -11,20 +11,25 @@ final class PhabricatorConfigWelcomeController
$title = pht('Installation Guide');
$header = id(new PHUIHeaderView())
->setHeader($title)
->setProfileHeader(true);
$crumbs = $this
->buildApplicationCrumbs()
->addTextCrumb($title);
->addTextCrumb($title)
->setBorder(true);
$view = id(new PHUITwoColumnView())
->setNavigation($nav)
->setMainColumn(array(
$this->buildWelcomeScreen($request),
));
$content = id(new PhabricatorConfigPageView())
->setHeader($header)
->setContent($this->buildWelcomeScreen($request));
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild($view);
->setNavigation($nav)
->appendChild($content)
->addClass('white-background');
}
public function buildWelcomeScreen(AphrontRequest $request) {
@ -346,9 +351,6 @@ final class PhabricatorConfigWelcomeController
$diffusion_user_guide,
$diffusion_setup_guide));
$header = id(new PHUIHeaderView())
->setHeader(pht('Welcome to Phabricator'));
$setup_header = new PHUIRemarkupView(
$viewer, pht('=Setup and Configuration'));
@ -359,7 +361,6 @@ final class PhabricatorConfigWelcomeController
$viewer, pht('=Quick Start Guide'));
$document = id(new PHUIDocumentViewPro())
->setHeader($header)
->setFluid(true)
->appendChild($setup_header)
->appendChild($setup)
@ -369,9 +370,7 @@ final class PhabricatorConfigWelcomeController
->appendChild($quick);
return id(new PHUIBoxView())
->setBorder(true)
->appendChild($document)
->addClass('mlb');
->appendChild($document);
}
private function newItem(AphrontRequest $request, $icon, $content) {

View file

@ -48,7 +48,15 @@ final class PhabricatorConfigCollectorsModule extends PhabricatorConfigModule {
);
}
$info = id(new PHUIInfoView())
->setSeverity(PHUIInfoView::SEVERITY_NOTICE)
->appendChild(pht(
'Collectors with custom policies are highlighted. Use '.
'%s to change retention policies.',
phutil_tag('tt', array(), 'bin/garbage set-policy')));
$table = id(new AphrontTableView($rows))
->setNotice($info)
->setRowClasses($rowc)
->setHeaders(
array(
@ -63,18 +71,7 @@ final class PhabricatorConfigCollectorsModule extends PhabricatorConfigModule {
null,
));
$header = id(new PHUIHeaderView())
->setHeader(pht('Garbage Collectors'))
->setSubheader(
pht(
'Collectors with custom policies are highlighted. Use '.
'%s to change retention policies.',
phutil_tag('tt', array(), 'bin/garbage set-policy')));
return id(new PHUIObjectBoxView())
->setHeader($header)
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
return $table;
}
}

View file

@ -25,7 +25,7 @@ final class PhabricatorConfigEdgeModule extends PhabricatorConfigModule {
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setHeaders(
array(
pht('Constant'),
@ -38,11 +38,6 @@ final class PhabricatorConfigEdgeModule extends PhabricatorConfigModule {
null,
'pri wide',
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('Edge Types'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -16,13 +16,8 @@ final class PhabricatorConfigHTTPParameterTypesModule
$types = AphrontHTTPParameterType::getAllTypes();
$table = id(new PhabricatorHTTPParameterTypeTableView())
return id(new PhabricatorHTTPParameterTypeTableView())
->setHTTPParameterTypes($types);
return id(new PHUIObjectBoxView())
->setHeaderText(pht('HTTP Parameter Types'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -51,7 +51,7 @@ final class PhabricatorConfigPHIDModule extends PhabricatorConfigModule {
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setHeaders(
array(
pht('Constant'),
@ -70,11 +70,6 @@ final class PhabricatorConfigPHIDModule extends PhabricatorConfigModule {
'icon',
'wide',
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('PHID Types'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -25,7 +25,7 @@ final class PhabricatorConfigRequestExceptionHandlerModule
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setHeaders(
array(
pht('Priority'),
@ -38,11 +38,6 @@ final class PhabricatorConfigRequestExceptionHandlerModule
'pri',
'wide',
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('Exception Handlers'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -24,7 +24,7 @@ final class PhabricatorConfigSiteModule extends PhabricatorConfigModule {
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setHeaders(
array(
pht('Priority'),
@ -37,11 +37,6 @@ final class PhabricatorConfigSiteModule extends PhabricatorConfigModule {
'pri',
'wide',
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('Sites'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -0,0 +1,60 @@
<?php
final class PhabricatorConfigPageView extends AphrontTagView {
private $header;
private $content;
private $footer;
public function setHeader(PHUIHeaderView $header) {
$this->header = $header;
return $this;
}
public function setContent($content) {
$this->content = $content;
return $this;
}
public function setFooter($footer) {
$this->footer = $footer;
return $this;
}
protected function getTagName() {
return 'div';
}
protected function getTagAttributes() {
require_celerity_resource('config-page-css');
$classes = array();
$classes[] = 'config-page';
return array(
'class' => implode(' ', $classes),
);
}
protected function getTagContent() {
$header = null;
if ($this->header) {
$header = phutil_tag_div('config-page-header', $this->header);
}
$content = null;
if ($this->content) {
$content = phutil_tag_div('config-page-content', $this->content);
}
$footer = null;
if ($this->footer) {
$footer = phutil_tag_div('config-page-footer', $this->footer);
}
return array($header, $content, $footer);
}
}

View file

@ -1,26 +0,0 @@
<?php
final class PhabricatorHarbormasterConfigOptions
extends PhabricatorApplicationConfigOptions {
public function getName() {
return pht('Harbormaster');
}
public function getDescription() {
return pht('Configure Harbormaster build engine.');
}
public function getIcon() {
return 'fa-ship';
}
public function getGroup() {
return 'apps';
}
public function getOptions() {
return array();
}
}

View file

@ -1,26 +0,0 @@
<?php
final class PhabricatorPhrequentConfigOptions
extends PhabricatorApplicationConfigOptions {
public function getName() {
return pht('Phrequent');
}
public function getDescription() {
return pht('Configure Phrequent.');
}
public function getIcon() {
return 'fa-clock-o';
}
public function getGroup() {
return 'apps';
}
public function getOptions() {
return array();
}
}

View file

@ -29,7 +29,7 @@ final class PhabricatorHovercardEngineExtensionModule
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setHeaders(
array(
pht('Order'),
@ -46,11 +46,6 @@ final class PhabricatorHovercardEngineExtensionModule
'wide pri',
null,
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('HovercardEngine Extensions'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -29,7 +29,7 @@ final class PhabricatorSearchEngineExtensionModule
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setHeaders(
array(
pht('Order'),
@ -46,11 +46,6 @@ final class PhabricatorSearchEngineExtensionModule
'wide pri',
null,
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('SearchEngine Extensions'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -24,7 +24,7 @@ final class PhabricatorFulltextEngineExtensionModule
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setHeaders(
array(
pht('Class'),
@ -36,10 +36,6 @@ final class PhabricatorFulltextEngineExtensionModule
'wide pri',
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('FulltextEngine Extensions'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -24,7 +24,7 @@ final class PhabricatorIndexEngineExtensionModule
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setHeaders(
array(
pht('Class'),
@ -36,10 +36,6 @@ final class PhabricatorIndexEngineExtensionModule
'wide pri',
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('IndexEngine Extensions'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -24,7 +24,7 @@ final class PhabricatorDestructionEngineExtensionModule
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setHeaders(
array(
pht('Class'),
@ -36,10 +36,6 @@ final class PhabricatorDestructionEngineExtensionModule
'wide pri',
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('DestructionEngine Extensions'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -28,7 +28,7 @@ final class PhabricatorEditEngineExtensionModule
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setHeaders(
array(
pht('Priority'),
@ -44,10 +44,6 @@ final class PhabricatorEditEngineExtensionModule
null,
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('EditEngine Extensions'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -27,7 +27,7 @@ final class PhabricatorContentSourceModule
);
}
$table = id(new AphrontTableView($rows))
return id(new AphrontTableView($rows))
->setHeaders(
array(
pht('Key'),
@ -43,10 +43,6 @@ final class PhabricatorContentSourceModule
'wide',
));
return id(new PHUIObjectBoxView())
->setHeaderText(pht('Content Sources'))
->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
}
}

View file

@ -17,6 +17,10 @@
clear: both;
}
body.white-background {
background: #fff;
}
.phabricator-standard-page-footer {
text-align: right;
margin: 44px 16px 16px;

View file

@ -0,0 +1,59 @@
/**
* @provides config-page-css
*/
.config-page-header {
margin: 28px 24px 0;
padding-bottom: 28px;
border-bottom: 1px solid {$thinblueborder};
}
.config-page-header .phui-profile-header {
padding: 0;
}
.config-page-header .phui-profile-header.phui-header-shell .phui-header-header {
font-size: 20px;
}
.config-page-content {
margin: 0 24px;
}
.device-desktop .config-page-content .phui-object-item-list-view {
padding-left: 0;
padding-right: 0;
}
.device-desktop .config-page-content .phui-document-fluid .phui-document-view {
padding: 16px 0;
margin: 0;
}
.config-page-content .aphront-table-view {
border: none;
}
.config-page-property {
padding-top: 4px;
border-bottom: 1px solid {$thinblueborder};
}
.config-page-content .aphront-table-notice {
padding: 0;
}
.config-page-content .aphront-table-notice .phui-info-view {
margin-left: 0;
margin-right: 0;
}
.config-page-content .aphront-table-wrap + .aphront-table-wrap {
margin-top: 20px;
border-top: 1px solid {$thinblueborder};
}
.config-page-content .phui-box.phui-box-blue-property {
margin-top: 16px;
}

View file

@ -159,6 +159,9 @@
.phui-icon-view.bg-bluegrey {
background-color: {$bluetext};
}
.phui-icon-view.bg-grey {
background-color: {$lightgreytext};
}
.phui-icon-view.bg-red {
background-color: {$red};
}

View file

@ -447,16 +447,16 @@ ul.phui-object-item-icons {
*/
.phui-object-item-disabled .phui-object-item-link,
.phui-object-item-disabled .phui-object-item-link a {
.phui-object-item.phui-object-item-disabled .phui-object-item-link,
.phui-object-item.phui-object-item-disabled .phui-object-item-link a {
color: {$lightgreytext};
}
.phui-object-item-disabled .phui-object-item-frame {
.phui-object-item.phui-object-item-disabled .phui-object-item-frame {
border-color: #d7d7d7;
}
.phui-object-item-disabled .phui-object-item-objname {
.phui-object-item.phui-object-item-disabled .phui-object-item-objname {
color: {$greytext};
text-decoration: line-through;
}
@ -771,3 +771,7 @@ ul.phui-object-item-list-view .phui-object-item-selected
.device-desktop .phui-object-list-big .phui-object-item {
margin-bottom: 8px;
}
.device-desktop .phui-object-list-big .phui-object-item-frame:hover {
}