Skip to content

Commit fe7e288

Browse files
chadlittleepriestley
authored andcommitted
Solidify PHUITwoColumnView as a page layout
Summary: Rolls out a new "Object Page" design with PHUITwoColumnView. This is reasonably polished, but wanted to post it up for you now for feedback before chasing down minor bugs. This implements TwoColumn in the following applications: - Ponder - Paste - Slowvote - Countdown - Projects - Profile - Passphrase This helped track down display issues and inconsistencies and make sure the layout was flexible for different pages. Test Plan: Test each of the applications on mobile, tablet, and desktop breakpoints. {F1135705} {F1135706} {F1135707} {F1135708} {F1135709} {F1135710} {F1135711} Reviewers: epriestley Reviewed By: epriestley Subscribers: Korvin Differential Revision: https://secure.phabricator.com/D15366
1 parent 8240e0f commit fe7e288

27 files changed

+735
-492
lines changed

resources/celerity/map.php

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88
return array(
99
'names' => array(
10-
'core.pkg.css' => '76a3afdf',
10+
'core.pkg.css' => 'e50c063a',
1111
'core.pkg.js' => '7d8faf57',
1212
'darkconsole.pkg.js' => 'e7393ebb',
1313
'differential.pkg.css' => '2de124c9',
@@ -52,7 +52,7 @@
5252
'rsrc/css/application/conpherence/update.css' => 'faf6be09',
5353
'rsrc/css/application/conpherence/widget-pane.css' => '775eaaba',
5454
'rsrc/css/application/contentsource/content-source-view.css' => '4b8b05d4',
55-
'rsrc/css/application/countdown/timer.css' => 'e7544472',
55+
'rsrc/css/application/countdown/timer.css' => '96696f21',
5656
'rsrc/css/application/daemon/bulk-job.css' => 'df9c1d4a',
5757
'rsrc/css/application/dashboard/dashboard.css' => 'eb458607',
5858
'rsrc/css/application/diff/inline-comment-summary.css' => '51efda3a',
@@ -79,7 +79,7 @@
7979
'rsrc/css/application/maniphest/task-summary.css' => '11cc5344',
8080
'rsrc/css/application/objectselector/object-selector.css' => '85ee8ce6',
8181
'rsrc/css/application/owners/owners-path-editor.css' => '2f00933b',
82-
'rsrc/css/application/paste/paste.css' => 'a5157c48',
82+
'rsrc/css/application/paste/paste.css' => '1898e534',
8383
'rsrc/css/application/people/people-profile.css' => '2473d929',
8484
'rsrc/css/application/phame/phame.css' => '737792d6',
8585
'rsrc/css/application/pholio/pholio-edit.css' => '3ad9d1ee',
@@ -92,18 +92,18 @@
9292
'rsrc/css/application/policy/policy-edit.css' => '815c66f7',
9393
'rsrc/css/application/policy/policy-transaction-detail.css' => '82100a43',
9494
'rsrc/css/application/policy/policy.css' => '957ea14c',
95-
'rsrc/css/application/ponder/ponder-view.css' => '212495e0',
95+
'rsrc/css/application/ponder/ponder-view.css' => '4e321d68',
9696
'rsrc/css/application/project/project-card-view.css' => '9418c97d',
97-
'rsrc/css/application/project/project-view.css' => '298b7c5b',
97+
'rsrc/css/application/project/project-view.css' => '9ce99f21',
9898
'rsrc/css/application/releeph/releeph-core.css' => '9b3c5733',
9999
'rsrc/css/application/releeph/releeph-preview-branch.css' => 'b7a6f4a5',
100100
'rsrc/css/application/releeph/releeph-request-differential-create-dialog.css' => '8d8b92cd',
101101
'rsrc/css/application/releeph/releeph-request-typeahead.css' => '667a48ae',
102102
'rsrc/css/application/search/search-results.css' => '7dea472c',
103-
'rsrc/css/application/slowvote/slowvote.css' => 'da0afb1b',
103+
'rsrc/css/application/slowvote/slowvote.css' => 'a94b7230',
104104
'rsrc/css/application/tokens/tokens.css' => '3d0f239e',
105105
'rsrc/css/application/uiexample/example.css' => '528b19de',
106-
'rsrc/css/core/core.css' => '5b3563c8',
106+
'rsrc/css/core/core.css' => 'd0801452',
107107
'rsrc/css/core/remarkup.css' => 'fc228f08',
108108
'rsrc/css/core/syntax.css' => '9fd11da8',
109109
'rsrc/css/core/z-index.css' => '5b6fcf3f',
@@ -123,8 +123,8 @@
123123
'rsrc/css/phui/phui-action-panel.css' => '91c7b835',
124124
'rsrc/css/phui/phui-badge.css' => 'f25c3476',
125125
'rsrc/css/phui/phui-big-info-view.css' => 'bd903741',
126-
'rsrc/css/phui/phui-box.css' => 'dd1294d3',
127-
'rsrc/css/phui/phui-button.css' => 'edf464e9',
126+
'rsrc/css/phui/phui-box.css' => '348bd872',
127+
'rsrc/css/phui/phui-button.css' => 'c096e4e9',
128128
'rsrc/css/phui/phui-chart.css' => '6bf6f78e',
129129
'rsrc/css/phui/phui-crumbs-view.css' => '79d536e5',
130130
'rsrc/css/phui/phui-document-pro.css' => '92d5b648',
@@ -134,15 +134,16 @@
134134
'rsrc/css/phui/phui-fontkit.css' => '9cda225e',
135135
'rsrc/css/phui/phui-form-view.css' => '4a1a0f5e',
136136
'rsrc/css/phui/phui-form.css' => 'aac1d51d',
137-
'rsrc/css/phui/phui-header-view.css' => 'a6d7b20d',
137+
'rsrc/css/phui/phui-head-thing.css' => '11731da0',
138+
'rsrc/css/phui/phui-header-view.css' => 'b541cc78',
138139
'rsrc/css/phui/phui-hovercard.css' => 'de1a2119',
139140
'rsrc/css/phui/phui-icon-set-selector.css' => '1ab67aad',
140141
'rsrc/css/phui/phui-icon.css' => '3f33ab57',
141142
'rsrc/css/phui/phui-image-mask.css' => 'a8498f9c',
142143
'rsrc/css/phui/phui-info-panel.css' => '27ea50a1',
143144
'rsrc/css/phui/phui-info-view.css' => '6d7c3509',
144145
'rsrc/css/phui/phui-list.css' => '9da2aa00',
145-
'rsrc/css/phui/phui-object-box.css' => '407eaf5a',
146+
'rsrc/css/phui/phui-object-box.css' => '91628842',
146147
'rsrc/css/phui/phui-object-item-list-view.css' => '18b2ce8e',
147148
'rsrc/css/phui/phui-pager.css' => 'bea33d23',
148149
'rsrc/css/phui/phui-pinboard-view.css' => '2495140e',
@@ -154,7 +155,7 @@
154155
'rsrc/css/phui/phui-status.css' => '888cedb8',
155156
'rsrc/css/phui/phui-tag-view.css' => '9d5d4400',
156157
'rsrc/css/phui/phui-timeline-view.css' => '2efceff8',
157-
'rsrc/css/phui/phui-two-column-view.css' => 'a317616a',
158+
'rsrc/css/phui/phui-two-column-view.css' => '7c5d0741',
158159
'rsrc/css/phui/workboards/phui-workboard-color.css' => 'ac6fe6a7',
159160
'rsrc/css/phui/workboards/phui-workboard.css' => 'e6d89647',
160161
'rsrc/css/phui/workboards/phui-workcard.css' => '3646fb96',
@@ -740,16 +741,16 @@
740741
'multirow-row-manager' => 'b5d57730',
741742
'owners-path-editor' => 'aa1733d0',
742743
'owners-path-editor-css' => '2f00933b',
743-
'paste-css' => 'a5157c48',
744+
'paste-css' => '1898e534',
744745
'path-typeahead' => 'f7fc67ec',
745746
'people-profile-css' => '2473d929',
746747
'phabricator-action-list-view-css' => 'c5eba19d',
747748
'phabricator-application-launch-view-css' => '95351601',
748749
'phabricator-busy' => '59a7976a',
749750
'phabricator-chatlog-css' => 'd295b020',
750751
'phabricator-content-source-view-css' => '4b8b05d4',
751-
'phabricator-core-css' => '5b3563c8',
752-
'phabricator-countdown-css' => 'e7544472',
752+
'phabricator-core-css' => 'd0801452',
753+
'phabricator-countdown-css' => '96696f21',
753754
'phabricator-dashboard-css' => 'eb458607',
754755
'phabricator-drag-and-drop-file-upload' => '81f182b5',
755756
'phabricator-draggable-list' => '5a13c79f',
@@ -772,7 +773,7 @@
772773
'phabricator-search-results-css' => '7dea472c',
773774
'phabricator-shaped-request' => '7cbe244b',
774775
'phabricator-side-menu-view-css' => '3a3d9f41',
775-
'phabricator-slowvote-css' => 'da0afb1b',
776+
'phabricator-slowvote-css' => 'a94b7230',
776777
'phabricator-source-code-view-css' => 'cbeef983',
777778
'phabricator-standard-page-view' => 'e709f6d0',
778779
'phabricator-textareautils' => '5813016a',
@@ -802,8 +803,8 @@
802803
'phui-action-panel-css' => '91c7b835',
803804
'phui-badge-view-css' => 'f25c3476',
804805
'phui-big-info-view-css' => 'bd903741',
805-
'phui-box-css' => 'dd1294d3',
806-
'phui-button-css' => 'edf464e9',
806+
'phui-box-css' => '348bd872',
807+
'phui-button-css' => 'c096e4e9',
807808
'phui-calendar-css' => 'ccabe893',
808809
'phui-calendar-day-css' => 'd1cf6f93',
809810
'phui-calendar-list-css' => 'c1c7f338',
@@ -818,7 +819,8 @@
818819
'phui-fontkit-css' => '9cda225e',
819820
'phui-form-css' => 'aac1d51d',
820821
'phui-form-view-css' => '4a1a0f5e',
821-
'phui-header-view-css' => 'a6d7b20d',
822+
'phui-head-thing-view-css' => '11731da0',
823+
'phui-header-view-css' => 'b541cc78',
822824
'phui-hovercard' => '1bd28176',
823825
'phui-hovercard-view-css' => 'de1a2119',
824826
'phui-icon-set-selector-css' => '1ab67aad',
@@ -828,7 +830,7 @@
828830
'phui-info-view-css' => '6d7c3509',
829831
'phui-inline-comment-view-css' => '0fdb3667',
830832
'phui-list-view-css' => '9da2aa00',
831-
'phui-object-box-css' => '407eaf5a',
833+
'phui-object-box-css' => '91628842',
832834
'phui-object-item-list-view-css' => '18b2ce8e',
833835
'phui-pager-css' => 'bea33d23',
834836
'phui-pinboard-view-css' => '2495140e',
@@ -841,7 +843,7 @@
841843
'phui-tag-view-css' => '9d5d4400',
842844
'phui-theme-css' => '027ba77e',
843845
'phui-timeline-view-css' => '2efceff8',
844-
'phui-two-column-view-css' => 'a317616a',
846+
'phui-two-column-view-css' => '7c5d0741',
845847
'phui-workboard-color-css' => 'ac6fe6a7',
846848
'phui-workboard-view-css' => 'e6d89647',
847849
'phui-workcard-view-css' => '3646fb96',
@@ -855,9 +857,9 @@
855857
'policy-css' => '957ea14c',
856858
'policy-edit-css' => '815c66f7',
857859
'policy-transaction-detail-css' => '82100a43',
858-
'ponder-view-css' => '212495e0',
860+
'ponder-view-css' => '4e321d68',
859861
'project-card-view-css' => '9418c97d',
860-
'project-view-css' => '298b7c5b',
862+
'project-view-css' => '9ce99f21',
861863
'releeph-core' => '9b3c5733',
862864
'releeph-preview-branch' => 'b7a6f4a5',
863865
'releeph-request-differential-create-dialog' => '8d8b92cd',

src/__phutil_library_map__.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1524,6 +1524,7 @@
15241524
'PHUIHandleListView' => 'applications/phid/view/PHUIHandleListView.php',
15251525
'PHUIHandleTagListView' => 'applications/phid/view/PHUIHandleTagListView.php',
15261526
'PHUIHandleView' => 'applications/phid/view/PHUIHandleView.php',
1527+
'PHUIHeadThingView' => 'view/phui/PHUIHeadThingView.php',
15271528
'PHUIHeaderView' => 'view/phui/PHUIHeaderView.php',
15281529
'PHUIHovercardUIExample' => 'applications/uiexample/examples/PHUIHovercardUIExample.php',
15291530
'PHUIHovercardView' => 'view/phui/PHUIHovercardView.php',
@@ -5758,6 +5759,7 @@
57585759
'PHUIHandleListView' => 'AphrontTagView',
57595760
'PHUIHandleTagListView' => 'AphrontTagView',
57605761
'PHUIHandleView' => 'AphrontView',
5762+
'PHUIHeadThingView' => 'AphrontTagView',
57615763
'PHUIHeaderView' => 'AphrontTagView',
57625764
'PHUIHovercardUIExample' => 'PhabricatorUIExample',
57635765
'PHUIHovercardView' => 'AphrontTagView',
@@ -6380,7 +6382,7 @@
63806382
'PhabricatorCountdownTransaction' => 'PhabricatorApplicationTransaction',
63816383
'PhabricatorCountdownTransactionComment' => 'PhabricatorApplicationTransactionComment',
63826384
'PhabricatorCountdownTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
6383-
'PhabricatorCountdownView' => 'AphrontTagView',
6385+
'PhabricatorCountdownView' => 'AphrontView',
63846386
'PhabricatorCountdownViewController' => 'PhabricatorCountdownController',
63856387
'PhabricatorCredentialsUsedByObjectEdgeType' => 'PhabricatorEdgeType',
63866388
'PhabricatorCursorPagedPolicyAwareQuery' => 'PhabricatorPolicyAwareQuery',

src/applications/celerity/postprocessor/CelerityDefaultPostprocessor.php

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -192,10 +192,7 @@ public function buildVariables() {
192192
'sh-disabledbackground' => '#f3f3f3',
193193

194194
// Background color for "most" themes.
195-
'page.background' => '#f1f1f4',
196-
197-
// Background color for "dark" themes.
198-
'page.background.dark' => '#ebecee',
195+
'page.background' => '#f8f8fb',
199196

200197
'menu.profile.text' => 'rgba(255,255,255,.8)',
201198
'menu.profile.text.selected' => 'rgba(255,255,255,1)',

src/applications/countdown/controller/PhabricatorCountdownViewController.php

Lines changed: 42 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ public function handleRequest(AphrontRequest $request) {
2121

2222
$countdown_view = id(new PhabricatorCountdownView())
2323
->setUser($viewer)
24-
->setCountdown($countdown)
25-
->setHeadless(true);
24+
->setCountdown($countdown);
2625

2726
$id = $countdown->getID();
2827
$title = $countdown->getTitle();
2928

3029
$crumbs = $this
3130
->buildApplicationCrumbs()
32-
->addTextCrumb("C{$id}");
31+
->addTextCrumb("C{$id}")
32+
->setBorder(true);
3333

3434
$epoch = $countdown->getEpoch();
3535
if ($epoch >= PhabricatorTime::getNow()) {
@@ -49,19 +49,26 @@ public function handleRequest(AphrontRequest $request) {
4949
->setStatus($icon, $color, $status);
5050

5151
$actions = $this->buildActionListView($countdown);
52-
$properties = $this->buildPropertyListView($countdown, $actions);
53-
54-
$object_box = id(new PHUIObjectBoxView())
55-
->setHeader($header)
56-
->addPropertyList($properties);
52+
$properties = $this->buildPropertyListView($countdown);
53+
$subheader = $this->buildSubheaderView($countdown);
5754

5855
$timeline = $this->buildTransactionTimeline(
5956
$countdown,
6057
new PhabricatorCountdownTransactionQuery());
61-
6258
$add_comment = $this->buildCommentForm($countdown);
6359

60+
$content = array(
61+
$countdown_view,
62+
$timeline,
63+
$add_comment,
64+
);
6465

66+
$view = id(new PHUITwoColumnView())
67+
->setHeader($header)
68+
->setSubheader($subheader)
69+
->setMainColumn($content)
70+
->setPropertyList($properties)
71+
->setActionList($actions);
6572

6673
return $this->newPage()
6774
->setTitle($title)
@@ -72,10 +79,7 @@ public function handleRequest(AphrontRequest $request) {
7279
))
7380
->appendChild(
7481
array(
75-
$object_box,
76-
$countdown_view,
77-
$timeline,
78-
$add_comment,
82+
$view,
7983
));
8084
}
8185

@@ -114,32 +118,38 @@ private function buildActionListView(PhabricatorCountdown $countdown) {
114118
}
115119

116120
private function buildPropertyListView(
117-
PhabricatorCountdown $countdown,
118-
PhabricatorActionListView $actions) {
119-
121+
PhabricatorCountdown $countdown) {
120122
$viewer = $this->getViewer();
121-
122123
$view = id(new PHUIPropertyListView())
123124
->setUser($viewer)
124-
->setObject($countdown)
125-
->setActionList($actions);
125+
->setObject($countdown);
126+
$view->invokeWillRenderEvent();
127+
return $view;
128+
}
126129

127-
$view->addProperty(
128-
pht('Author'),
129-
$viewer->renderHandle($countdown->getAuthorPHID()));
130+
private function buildSubheaderView(
131+
PhabricatorCountdown $countdown) {
132+
$viewer = $this->getViewer();
130133

131-
$view->invokeWillRenderEvent();
134+
$author = $viewer->renderHandle($countdown->getAuthorPHID())->render();
135+
$date = phabricator_datetime($countdown->getDateCreated(), $viewer);
136+
$author = phutil_tag('strong', array(), $author);
132137

133-
$description = $countdown->getDescription();
134-
if (strlen($description)) {
135-
$description = new PHUIRemarkupView($viewer, $description);
136-
$view->addSectionHeader(
137-
pht('Description'),
138-
PHUIPropertyListView::ICON_SUMMARY);
139-
$view->addTextContent($description);
140-
}
138+
$person = id(new PhabricatorPeopleQuery())
139+
->setViewer($viewer)
140+
->withPHIDs(array($countdown->getAuthorPHID()))
141+
->needProfileImage(true)
142+
->executeOne();
141143

142-
return $view;
144+
$image_uri = $person->getProfileImageURI();
145+
$image_href = '/p/'.$person->getUsername();
146+
147+
$content = pht('Authored by %s on %s.', $author, $date);
148+
149+
return id(new PHUIHeadThingView())
150+
->setImage($image_uri)
151+
->setImageHref($image_href)
152+
->setContent($content);
143153
}
144154

145155
private function buildCommentForm(PhabricatorCountdown $countdown) {

0 commit comments

Comments
 (0)