Skip to content

Commit f548dc0

Browse files
author
epriestley
committed
Remove PhabricatorProfileHeaderView in favor of PhabricatorHeaderView
Summary: We have this old view which is only used in two places and looks the same but has totally different markup. Get rid of it. @chad, I'm generally going to move the user/project profiles a step toward looking like other object detail view with the custom field stuff. Not sure if you have any grand vision here; we can easily do something else later since this is like 80% "delete weird epriestley one-offs that don't look quite right in favor of standard elements". Test Plan: {F49324} {F49325} {F49326} Reviewers: chad, btrahan Reviewed By: chad CC: aran Differential Revision: https://secure.phabricator.com/D6394
1 parent 2432a47 commit f548dc0

File tree

8 files changed

+137
-218
lines changed

8 files changed

+137
-218
lines changed

src/__celerity_resource_map__.php

Lines changed: 45 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -3197,7 +3197,7 @@
31973197
),
31983198
'phabricator-header-view-css' =>
31993199
array(
3200-
'uri' => '/res/585b771c/rsrc/css/layout/phabricator-header-view.css',
3200+
'uri' => '/res/76173bb6/rsrc/css/layout/phabricator-header-view.css',
32013201
'type' => 'css',
32023202
'requires' =>
32033203
array(
@@ -3398,15 +3398,6 @@
33983398
),
33993399
'disk' => '/rsrc/css/application/profile/profile-view.css',
34003400
),
3401-
'phabricator-profile-header-css' =>
3402-
array(
3403-
'uri' => '/res/a03c1e20/rsrc/css/application/profile/profile-header-view.css',
3404-
'type' => 'css',
3405-
'requires' =>
3406-
array(
3407-
),
3408-
'disk' => '/rsrc/css/application/profile/profile-header-view.css',
3409-
),
34103401
'phabricator-project-tag-css' =>
34113402
array(
34123403
'uri' => '/res/383b8c30/rsrc/css/application/projects/project-tag.css',
@@ -4149,7 +4140,7 @@
41494140
), array(
41504141
'packages' =>
41514142
array(
4152-
'178f5351' =>
4143+
'd7254b92' =>
41534144
array(
41544145
'name' => 'core.pkg.css',
41554146
'symbols' =>
@@ -4197,7 +4188,7 @@
41974188
40 => 'phabricator-property-list-view-css',
41984189
41 => 'phabricator-tag-view-css',
41994190
),
4200-
'uri' => '/res/pkg/178f5351/core.pkg.css',
4191+
'uri' => '/res/pkg/d7254b92/core.pkg.css',
42014192
'type' => 'css',
42024193
),
42034194
'75ccea43' =>
@@ -4391,16 +4382,16 @@
43914382
'reverse' =>
43924383
array(
43934384
'aphront-attached-file-view-css' => 'adc3c36d',
4394-
'aphront-dialog-view-css' => '178f5351',
4395-
'aphront-error-view-css' => '178f5351',
4396-
'aphront-form-view-css' => '178f5351',
4397-
'aphront-list-filter-view-css' => '178f5351',
4398-
'aphront-pager-view-css' => '178f5351',
4399-
'aphront-panel-view-css' => '178f5351',
4400-
'aphront-table-view-css' => '178f5351',
4401-
'aphront-tokenizer-control-css' => '178f5351',
4402-
'aphront-tooltip-css' => '178f5351',
4403-
'aphront-typeahead-control-css' => '178f5351',
4385+
'aphront-dialog-view-css' => 'd7254b92',
4386+
'aphront-error-view-css' => 'd7254b92',
4387+
'aphront-form-view-css' => 'd7254b92',
4388+
'aphront-list-filter-view-css' => 'd7254b92',
4389+
'aphront-pager-view-css' => 'd7254b92',
4390+
'aphront-panel-view-css' => 'd7254b92',
4391+
'aphront-table-view-css' => 'd7254b92',
4392+
'aphront-tokenizer-control-css' => 'd7254b92',
4393+
'aphront-tooltip-css' => 'd7254b92',
4394+
'aphront-typeahead-control-css' => 'd7254b92',
44044395
'differential-changeset-view-css' => 'dd27a69b',
44054396
'differential-core-view-css' => 'dd27a69b',
44064397
'differential-inline-comment-editor' => '4ad86dee',
@@ -4414,7 +4405,7 @@
44144405
'differential-table-of-contents-css' => 'dd27a69b',
44154406
'diffusion-commit-view-css' => 'c8ce2d88',
44164407
'diffusion-icons-css' => 'c8ce2d88',
4417-
'global-drag-and-drop-css' => '178f5351',
4408+
'global-drag-and-drop-css' => 'd7254b92',
44184409
'inline-comment-summary-css' => 'dd27a69b',
44194410
'javelin-aphlict' => '75ccea43',
44204411
'javelin-behavior' => 'a9f14d76',
@@ -4488,55 +4479,55 @@
44884479
'javelin-util' => 'a9f14d76',
44894480
'javelin-vector' => 'a9f14d76',
44904481
'javelin-workflow' => 'a9f14d76',
4491-
'lightbox-attachment-css' => '178f5351',
4482+
'lightbox-attachment-css' => 'd7254b92',
44924483
'maniphest-task-summary-css' => 'adc3c36d',
44934484
'maniphest-transaction-detail-css' => 'adc3c36d',
4494-
'phabricator-action-list-view-css' => '178f5351',
4495-
'phabricator-application-launch-view-css' => '178f5351',
4485+
'phabricator-action-list-view-css' => 'd7254b92',
4486+
'phabricator-application-launch-view-css' => 'd7254b92',
44964487
'phabricator-busy' => '75ccea43',
44974488
'phabricator-content-source-view-css' => 'dd27a69b',
4498-
'phabricator-core-css' => '178f5351',
4499-
'phabricator-crumbs-view-css' => '178f5351',
4489+
'phabricator-core-css' => 'd7254b92',
4490+
'phabricator-crumbs-view-css' => 'd7254b92',
45004491
'phabricator-drag-and-drop-file-upload' => '4ad86dee',
45014492
'phabricator-dropdown-menu' => '75ccea43',
45024493
'phabricator-file-upload' => '75ccea43',
4503-
'phabricator-filetree-view-css' => '178f5351',
4504-
'phabricator-flag-css' => '178f5351',
4505-
'phabricator-form-view-css' => '178f5351',
4506-
'phabricator-header-view-css' => '178f5351',
4494+
'phabricator-filetree-view-css' => 'd7254b92',
4495+
'phabricator-flag-css' => 'd7254b92',
4496+
'phabricator-form-view-css' => 'd7254b92',
4497+
'phabricator-header-view-css' => 'd7254b92',
45074498
'phabricator-hovercard' => '75ccea43',
4508-
'phabricator-jump-nav' => '178f5351',
4499+
'phabricator-jump-nav' => 'd7254b92',
45094500
'phabricator-keyboard-shortcut' => '75ccea43',
45104501
'phabricator-keyboard-shortcut-manager' => '75ccea43',
4511-
'phabricator-main-menu-view' => '178f5351',
4502+
'phabricator-main-menu-view' => 'd7254b92',
45124503
'phabricator-menu-item' => '75ccea43',
4513-
'phabricator-nav-view-css' => '178f5351',
4504+
'phabricator-nav-view-css' => 'd7254b92',
45144505
'phabricator-notification' => '75ccea43',
4515-
'phabricator-notification-css' => '178f5351',
4516-
'phabricator-notification-menu-css' => '178f5351',
4517-
'phabricator-object-item-list-view-css' => '178f5351',
4506+
'phabricator-notification-css' => 'd7254b92',
4507+
'phabricator-notification-menu-css' => 'd7254b92',
4508+
'phabricator-object-item-list-view-css' => 'd7254b92',
45184509
'phabricator-object-selector-css' => 'dd27a69b',
45194510
'phabricator-phtize' => '75ccea43',
45204511
'phabricator-prefab' => '75ccea43',
45214512
'phabricator-project-tag-css' => 'adc3c36d',
4522-
'phabricator-property-list-view-css' => '178f5351',
4523-
'phabricator-remarkup-css' => '178f5351',
4513+
'phabricator-property-list-view-css' => 'd7254b92',
4514+
'phabricator-remarkup-css' => 'd7254b92',
45244515
'phabricator-shaped-request' => '4ad86dee',
4525-
'phabricator-side-menu-view-css' => '178f5351',
4526-
'phabricator-standard-page-view' => '178f5351',
4527-
'phabricator-tag-view-css' => '178f5351',
4516+
'phabricator-side-menu-view-css' => 'd7254b92',
4517+
'phabricator-standard-page-view' => 'd7254b92',
4518+
'phabricator-tag-view-css' => 'd7254b92',
45284519
'phabricator-textareautils' => '75ccea43',
45294520
'phabricator-tooltip' => '75ccea43',
4530-
'phabricator-transaction-view-css' => '178f5351',
4531-
'phabricator-zindex-css' => '178f5351',
4532-
'phui-button-css' => '178f5351',
4533-
'phui-form-css' => '178f5351',
4534-
'phui-icon-view-css' => '178f5351',
4535-
'phui-spacing-css' => '178f5351',
4536-
'sprite-apps-large-css' => '178f5351',
4537-
'sprite-gradient-css' => '178f5351',
4538-
'sprite-icons-css' => '178f5351',
4539-
'sprite-menu-css' => '178f5351',
4540-
'syntax-highlighting-css' => '178f5351',
4521+
'phabricator-transaction-view-css' => 'd7254b92',
4522+
'phabricator-zindex-css' => 'd7254b92',
4523+
'phui-button-css' => 'd7254b92',
4524+
'phui-form-css' => 'd7254b92',
4525+
'phui-icon-view-css' => 'd7254b92',
4526+
'phui-spacing-css' => 'd7254b92',
4527+
'sprite-apps-large-css' => 'd7254b92',
4528+
'sprite-gradient-css' => 'd7254b92',
4529+
'sprite-icons-css' => 'd7254b92',
4530+
'sprite-menu-css' => 'd7254b92',
4531+
'syntax-highlighting-css' => 'd7254b92',
45414532
),
45424533
));

src/__phutil_library_map__.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1369,7 +1369,6 @@
13691369
'PhabricatorPolicyTestCase' => 'applications/policy/__tests__/PhabricatorPolicyTestCase.php',
13701370
'PhabricatorPolicyTestObject' => 'applications/policy/__tests__/PhabricatorPolicyTestObject.php',
13711371
'PhabricatorPolicyType' => 'applications/policy/constants/PhabricatorPolicyType.php',
1372-
'PhabricatorProfileHeaderView' => 'view/layout/PhabricatorProfileHeaderView.php',
13731372
'PhabricatorProject' => 'applications/project/storage/PhabricatorProject.php',
13741373
'PhabricatorProjectConstants' => 'applications/project/constants/PhabricatorProjectConstants.php',
13751374
'PhabricatorProjectController' => 'applications/project/controller/PhabricatorProjectController.php',
@@ -3325,7 +3324,6 @@
33253324
'PhabricatorPolicyTestCase' => 'PhabricatorTestCase',
33263325
'PhabricatorPolicyTestObject' => 'PhabricatorPolicyInterface',
33273326
'PhabricatorPolicyType' => 'PhabricatorPolicyConstants',
3328-
'PhabricatorProfileHeaderView' => 'AphrontView',
33293327
'PhabricatorProject' =>
33303328
array(
33313329
0 => 'PhabricatorProjectDAO',

src/applications/people/controller/PhabricatorPeopleProfileController.php

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -89,11 +89,10 @@ public function processRequest() {
8989

9090
$picture = $user->loadProfileImageURI();
9191

92-
$header = new PhabricatorProfileHeaderView();
93-
$header
94-
->setProfilePicture($picture)
95-
->setName($user->getUserName().' ('.$user->getRealName().')')
96-
->setDescription($profile->getTitle());
92+
$header = id(new PhabricatorHeaderView())
93+
->setHeader($user->getUserName().' ('.$user->getRealName().')')
94+
->setSubheader($profile->getTitle())
95+
->setImage($picture);
9796

9897
if ($user->getIsDisabled()) {
9998
$header->setStatus(pht('Disabled'));
@@ -106,7 +105,7 @@ public function processRequest() {
106105
}
107106

108107
$nav->appendChild($header);
109-
$header->appendChild($content);
108+
$nav->appendChild($content);
110109

111110
if ($user->getPHID() == $viewer->getPHID()) {
112111
$nav->addFilter(

src/applications/project/controller/PhabricatorProjectProfileController.php

Lines changed: 26 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -65,48 +65,40 @@ public function processRequest() {
6565
$tasks,
6666
$content);
6767

68-
$header = new PhabricatorProfileHeaderView();
69-
$header->setName($project->getName());
70-
$header->setDescription(
71-
phutil_utf8_shorten($profile->getBlurb(), 1024));
72-
$header->setProfilePicture($picture);
68+
$header = id(new PhabricatorHeaderView())
69+
->setHeader($project->getName())
70+
->setSubheader(phutil_utf8_shorten($profile->getBlurb(), 1024))
71+
->setImage($picture);
7372

7473
$action = null;
7574
if (!$project->isUserMember($user->getPHID())) {
76-
$can_join = PhabricatorPolicyCapability::CAN_JOIN;
77-
78-
if (PhabricatorPolicyFilter::hasCapability($user, $project, $can_join)) {
79-
$class = 'green';
80-
} else {
81-
$class = 'grey disabled';
82-
}
83-
84-
$action = phabricator_form(
75+
$can_join = PhabricatorPolicyFilter::hasCapability(
8576
$user,
86-
array(
87-
'action' => '/project/update/'.$project->getID().'/join/',
88-
'method' => 'post',
89-
),
90-
phutil_tag(
91-
'button',
92-
array(
93-
'class' => $class,
94-
),
95-
pht('Join Project')));
77+
$project,
78+
PhabricatorPolicyCapability::CAN_JOIN);
79+
80+
$action = id(new PhabricatorActionView())
81+
->setUser($user)
82+
->setRenderAsForm(true)
83+
->setHref('/project/update/'.$project->getID().'/join/')
84+
->setIcon('new')
85+
->setDisabled(!$can_join)
86+
->setName(pht('Join Project'));
9687
} else {
97-
$action = javelin_tag(
98-
'a',
99-
array(
100-
'href' => '/project/update/'.$project->getID().'/leave/',
101-
'sigil' => 'workflow',
102-
'class' => 'grey button',
103-
),
104-
pht('Leave Project...'));
88+
$action = id(new PhabricatorActionView())
89+
->setWorkflow(true)
90+
->setHref('/project/update/'.$project->getID().'/leave/')
91+
->setIcon('delete')
92+
->setName(pht('Leave Project...'));
10593
}
10694

107-
$header->addAction($action);
95+
$action_list = id(new PhabricatorActionListView())
96+
->setUser($user)
97+
->addAction($action);
98+
10899
$nav_view->appendChild($header);
109-
$header->appendChild($content);
100+
$nav_view->appendChild($action_list);
101+
$nav_view->appendChild($content);
110102

111103
return $this->buildApplicationPage(
112104
$nav_view,

src/view/layout/PhabricatorHeaderView.php

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ final class PhabricatorHeaderView extends AphrontView {
55
private $objectName;
66
private $header;
77
private $tags = array();
8+
private $image;
9+
private $subheader;
810

911
public function setHeader($header) {
1012
$this->header = $header;
@@ -21,10 +23,32 @@ public function addTag(PhabricatorTagView $tag) {
2123
return $this;
2224
}
2325

26+
public function setImage($uri) {
27+
$this->image = $uri;
28+
return $this;
29+
}
30+
31+
public function setSubheader($subheader) {
32+
$this->subheader = $subheader;
33+
return $this;
34+
}
35+
2436
public function render() {
2537
require_celerity_resource('phabricator-header-view-css');
2638

27-
$header = array($this->header);
39+
$image = null;
40+
if ($this->image) {
41+
$image = phutil_tag(
42+
'span',
43+
array(
44+
'class' => 'phabricator-header-image',
45+
'style' => 'background-image: url('.$this->image.')',
46+
),
47+
'');
48+
}
49+
50+
$header = array();
51+
$header[] = $this->header;
2852

2953
if ($this->objectName) {
3054
array_unshift(
@@ -48,17 +72,29 @@ public function render() {
4872
array_interleave(' ', $this->tags));
4973
}
5074

75+
if ($this->subheader) {
76+
$header[] = phutil_tag(
77+
'div',
78+
array(
79+
'class' => 'phabricator-header-subheader',
80+
),
81+
$this->subheader);
82+
}
83+
5184
return phutil_tag(
5285
'div',
5386
array(
5487
'class' => 'phabricator-header-shell',
5588
),
56-
phutil_tag(
57-
'h1',
58-
array(
59-
'class' => 'phabricator-header-view',
60-
),
61-
$header));
89+
array(
90+
$image,
91+
phutil_tag(
92+
'h1',
93+
array(
94+
'class' => 'phabricator-header-view',
95+
),
96+
$header),
97+
));
6298
}
6399

64100

0 commit comments

Comments
 (0)