From a903388d4f891716c1069fd04f2220266897e4ec Mon Sep 17 00:00:00 2001 From: Chad Little Date: Tue, 5 Sep 2017 20:02:11 -0700 Subject: [PATCH] Update EditEngine pages to take a page header separate Summary: This simplifies EditEngine pages in general by removing the dual header, and extending to allow setting of a custom PHUIHeaderView if needed (like settings). Test Plan: Review all settings pages, review task, project pages. This should all be fine, but is a big change maybe some layouts I'm not considering. Tested these all mobile, destkop as well. {F5166181} Reviewers: epriestley Reviewed By: epriestley Spies: Korvin Differential Revision: https://secure.phabricator.com/D18527 --- resources/celerity/map.php | 6 ++-- .../editor/PhabricatorSettingsEditEngine.php | 25 +++++++++++++---- .../editengine/PhabricatorEditEngine.php | 28 +++++++++++++------ src/view/phui/PHUIInfoView.php | 1 - src/view/phui/PHUITwoColumnView.php | 4 +++ .../rsrc/css/phui/phui-two-column-view.css | 4 +++ 6 files changed, 50 insertions(+), 18 deletions(-) diff --git a/resources/celerity/map.php b/resources/celerity/map.php index d82341b47d..aef701f7bc 100644 --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -9,7 +9,7 @@ return array( 'names' => array( 'conpherence.pkg.css' => 'e68cf1fa', 'conpherence.pkg.js' => 'b5b51108', - 'core.pkg.css' => '03264689', + 'core.pkg.css' => 'b2235af0', 'core.pkg.js' => '6c085267', 'darkconsole.pkg.js' => '1f9a31bc', 'differential.pkg.css' => '45951e9e', @@ -177,7 +177,7 @@ return array( 'rsrc/css/phui/phui-status.css' => 'd5263e49', 'rsrc/css/phui/phui-tag-view.css' => 'b4719c50', 'rsrc/css/phui/phui-timeline-view.css' => 'f21db7ca', - 'rsrc/css/phui/phui-two-column-view.css' => 'bf86c483', + 'rsrc/css/phui/phui-two-column-view.css' => '1ade9c5f', 'rsrc/css/phui/workboards/phui-workboard-color.css' => '783cdff5', 'rsrc/css/phui/workboards/phui-workboard.css' => '3bc85455', 'rsrc/css/phui/workboards/phui-workcard.css' => 'cca5fa92', @@ -872,7 +872,7 @@ return array( 'phui-tag-view-css' => 'b4719c50', 'phui-theme-css' => '9f261c6b', 'phui-timeline-view-css' => 'f21db7ca', - 'phui-two-column-view-css' => 'bf86c483', + 'phui-two-column-view-css' => '1ade9c5f', 'phui-workboard-color-css' => '783cdff5', 'phui-workboard-view-css' => '3bc85455', 'phui-workcard-view-css' => 'cca5fa92', diff --git a/src/applications/settings/editor/PhabricatorSettingsEditEngine.php b/src/applications/settings/editor/PhabricatorSettingsEditEngine.php index e12654e1a4..30e831543d 100644 --- a/src/applications/settings/editor/PhabricatorSettingsEditEngine.php +++ b/src/applications/settings/editor/PhabricatorSettingsEditEngine.php @@ -63,12 +63,13 @@ final class PhabricatorSettingsEditEngine } protected function getObjectEditTitleText($object) { - $user = $object->getUser(); - if ($user) { - return pht('Edit Settings (%s)', $user->getUserName()); - } else { - return pht('Edit Global Settings'); + $page = $this->getSelectedPage(); + + if ($page) { + return $page->getLabel(); } + + return pht('Settings'); } protected function getObjectEditShortText($object) { @@ -97,6 +98,20 @@ final class PhabricatorSettingsEditEngine return pht('Settings'); } + protected function getPageHeader($object) { + $user = $object->getUser(); + if ($user) { + $text = pht('Edit Settings (%s)', $user->getUserName()); + } else { + $text = pht('Edit Global Settings'); + } + + $header = id(new PHUIHeaderView()) + ->setHeader($text); + + return $header; + } + protected function getEditorURI() { throw new PhutilMethodNotImplementedException(); } diff --git a/src/applications/transactions/editengine/PhabricatorEditEngine.php b/src/applications/transactions/editengine/PhabricatorEditEngine.php index d09e2450a1..e1d6812778 100644 --- a/src/applications/transactions/editengine/PhabricatorEditEngine.php +++ b/src/applications/transactions/editengine/PhabricatorEditEngine.php @@ -312,6 +312,15 @@ abstract class PhabricatorEditEngine } + /** + * @task text + */ + protected function getPageHeader($object) { + return null; + } + + + /** * Return a human-readable header describing what this engine is used to do, * like "Configure Maniphest Task Forms". @@ -1169,6 +1178,9 @@ abstract class PhabricatorEditEngine $form = $this->buildEditForm($object, $fields); + $crumbs = $this->buildCrumbs($object, $final = true); + $crumbs->setBorder(true); + if ($request->isAjax()) { return $this->getController() ->newDialog() @@ -1180,21 +1192,18 @@ abstract class PhabricatorEditEngine ->addSubmitButton($submit_button); } - $crumbs = $this->buildCrumbs($object, $final = true); - - $header = id(new PHUIHeaderView()) + $box_header = id(new PHUIHeaderView()) ->setHeader($header_text); - $crumbs->setBorder(true); if ($action_button) { - $header->addActionLink($action_button); + $box_header->addActionLink($action_button); } $box = id(new PHUIObjectBoxView()) ->setUser($viewer) - ->setHeaderText($this->getObjectName()) + ->setHeader($box_header) ->setValidationException($validation_exception) - ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY) + ->setBackground(PHUIObjectBoxView::WHITE_CONFIG) ->appendChild($form); // This is fairly questionable, but in use by Settings. @@ -1209,8 +1218,9 @@ abstract class PhabricatorEditEngine $view = new PHUITwoColumnView(); - if ($header) { - $view->setHeader($header); + $page_header = $this->getPageHeader($object); + if ($page_header) { + $view->setHeader($page_header); } $page = $controller->newPage() diff --git a/src/view/phui/PHUIInfoView.php b/src/view/phui/PHUIInfoView.php index 161e49108b..18f5af3374 100644 --- a/src/view/phui/PHUIInfoView.php +++ b/src/view/phui/PHUIInfoView.php @@ -59,7 +59,6 @@ final class PHUIInfoView extends AphrontTagView { } else { $icon = id(new PHUIIconView()) ->setIcon($icon); - $this->icon = $icon; } return $this; diff --git a/src/view/phui/PHUITwoColumnView.php b/src/view/phui/PHUITwoColumnView.php index 6e261ffeeb..9240887f4b 100644 --- a/src/view/phui/PHUITwoColumnView.php +++ b/src/view/phui/PHUITwoColumnView.php @@ -106,6 +106,10 @@ final class PHUITwoColumnView extends AphrontTagView { $classes[] = 'with-subheader'; } + if (!$this->header) { + $classes[] = 'without-header'; + } + return array( 'class' => implode(' ', $classes), ); diff --git a/webroot/rsrc/css/phui/phui-two-column-view.css b/webroot/rsrc/css/phui/phui-two-column-view.css index 73926be92a..2fb0eccee2 100644 --- a/webroot/rsrc/css/phui/phui-two-column-view.css +++ b/webroot/rsrc/css/phui/phui-two-column-view.css @@ -13,6 +13,10 @@ margin-bottom: 24px; } +.phui-two-column-view.without-header { + margin-top: 24px; +} + .device .phui-two-column-view .phui-two-column-header { margin-bottom: 12px; }