Page MenuHomePhabricator

D15396.diff
No OneTemporary

D15396.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -7,7 +7,7 @@
*/
return array(
'names' => array(
- 'core.pkg.css' => 'dd1447be',
+ 'core.pkg.css' => 'db1cd0bd',
'core.pkg.js' => '7d8faf57',
'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => '2de124c9',
@@ -111,7 +111,7 @@
'rsrc/css/font/font-aleo.css' => '8bdb2835',
'rsrc/css/font/font-awesome.css' => 'c43323c5',
'rsrc/css/font/font-lato.css' => 'c7ccd872',
- 'rsrc/css/font/phui-font-icon-base.css' => 'ecbbb4c2',
+ 'rsrc/css/font/phui-font-icon-base.css' => '6449bce8',
'rsrc/css/layout/phabricator-filetree-view.css' => 'fccf9f82',
'rsrc/css/layout/phabricator-side-menu-view.css' => '3a3d9f41',
'rsrc/css/layout/phabricator-source-code-view.css' => 'cbeef983',
@@ -135,7 +135,7 @@
'rsrc/css/phui/phui-form-view.css' => '4a1a0f5e',
'rsrc/css/phui/phui-form.css' => 'aac1d51d',
'rsrc/css/phui/phui-head-thing.css' => '11731da0',
- 'rsrc/css/phui/phui-header-view.css' => 'fc4acf14',
+ 'rsrc/css/phui/phui-header-view.css' => 'bfb9fed3',
'rsrc/css/phui/phui-hovercard.css' => 'de1a2119',
'rsrc/css/phui/phui-icon-set-selector.css' => '1ab67aad',
'rsrc/css/phui/phui-icon.css' => '3f33ab57',
@@ -153,9 +153,9 @@
'rsrc/css/phui/phui-segment-bar-view.css' => '46342871',
'rsrc/css/phui/phui-spacing.css' => '042804d6',
'rsrc/css/phui/phui-status.css' => '37309046',
- 'rsrc/css/phui/phui-tag-view.css' => '9d5d4400',
+ 'rsrc/css/phui/phui-tag-view.css' => '6bbd83e2',
'rsrc/css/phui/phui-timeline-view.css' => '2efceff8',
- 'rsrc/css/phui/phui-two-column-view.css' => 'd0ad8c10',
+ 'rsrc/css/phui/phui-two-column-view.css' => '097630a3',
'rsrc/css/phui/workboards/phui-workboard-color.css' => 'ac6fe6a7',
'rsrc/css/phui/workboards/phui-workboard.css' => 'e6d89647',
'rsrc/css/phui/workboards/phui-workcard.css' => '3646fb96',
@@ -815,12 +815,12 @@
'phui-document-view-css' => '9c71d2bf',
'phui-document-view-pro-css' => '92d5b648',
'phui-feed-story-css' => '04aec08f',
- 'phui-font-icon-base-css' => 'ecbbb4c2',
+ 'phui-font-icon-base-css' => '6449bce8',
'phui-fontkit-css' => '9cda225e',
'phui-form-css' => 'aac1d51d',
'phui-form-view-css' => '4a1a0f5e',
'phui-head-thing-view-css' => '11731da0',
- 'phui-header-view-css' => 'fc4acf14',
+ 'phui-header-view-css' => 'bfb9fed3',
'phui-hovercard' => '1bd28176',
'phui-hovercard-view-css' => 'de1a2119',
'phui-icon-set-selector-css' => '1ab67aad',
@@ -840,10 +840,10 @@
'phui-segment-bar-view-css' => '46342871',
'phui-spacing-css' => '042804d6',
'phui-status-list-view-css' => '37309046',
- 'phui-tag-view-css' => '9d5d4400',
+ 'phui-tag-view-css' => '6bbd83e2',
'phui-theme-css' => '027ba77e',
'phui-timeline-view-css' => '2efceff8',
- 'phui-two-column-view-css' => 'd0ad8c10',
+ 'phui-two-column-view-css' => '097630a3',
'phui-workboard-color-css' => 'ac6fe6a7',
'phui-workboard-view-css' => 'e6d89647',
'phui-workcard-view-css' => '3646fb96',
diff --git a/src/applications/differential/constants/DifferentialRevisionStatus.php b/src/applications/differential/constants/DifferentialRevisionStatus.php
--- a/src/applications/differential/constants/DifferentialRevisionStatus.php
+++ b/src/applications/differential/constants/DifferentialRevisionStatus.php
@@ -8,10 +8,11 @@
final class DifferentialRevisionStatus extends Phobject {
- const COLOR_STATUS_DEFAULT = 'status';
- const COLOR_STATUS_DARK = 'status-dark';
- const COLOR_STATUS_GREEN = 'status-green';
- const COLOR_STATUS_RED = 'status-red';
+ const COLOR_STATUS_DEFAULT = 'bluegrey';
+ const COLOR_STATUS_DARK = 'indigo';
+ const COLOR_STATUS_BLUE = 'blue';
+ const COLOR_STATUS_GREEN = 'green';
+ const COLOR_STATUS_RED = 'red';
public static function getRevisionStatusColor($status) {
$default = self::COLOR_STATUS_DEFAULT;
@@ -30,7 +31,7 @@
ArcanistDifferentialRevisionStatus::ABANDONED =>
self::COLOR_STATUS_DARK,
ArcanistDifferentialRevisionStatus::IN_PREPARATION =>
- self::COLOR_STATUS_DARK,
+ self::COLOR_STATUS_BLUE,
);
return idx($map, $status, $default);
}
@@ -42,38 +43,30 @@
ArcanistDifferentialRevisionStatus::NEEDS_REVIEW =>
'fa-square-o bluegrey',
ArcanistDifferentialRevisionStatus::NEEDS_REVISION =>
- 'fa-refresh red',
+ 'fa-refresh',
ArcanistDifferentialRevisionStatus::CHANGES_PLANNED =>
- 'fa-headphones red',
+ 'fa-headphones',
ArcanistDifferentialRevisionStatus::ACCEPTED =>
- 'fa-check green',
+ 'fa-check',
ArcanistDifferentialRevisionStatus::CLOSED =>
'fa-check-square-o',
ArcanistDifferentialRevisionStatus::ABANDONED =>
- 'fa-check-square-o',
+ 'fa-plane',
ArcanistDifferentialRevisionStatus::IN_PREPARATION =>
- 'fa-question-circle blue',
+ 'fa-question-circle',
);
return idx($map, $status, $default);
}
public static function renderFullDescription($status) {
- $color = self::getRevisionStatusColor($status);
$status_name =
ArcanistDifferentialRevisionStatus::getNameForRevisionStatus($status);
- $img = id(new PHUIIconView())
- ->setIcon(self::getRevisionStatusIcon($status));
-
- $tag = phutil_tag(
- 'span',
- array(
- 'class' => 'phui-header-status phui-header-'.$color,
- ),
- array(
- $img,
- $status_name,
- ));
+ $tag = id(new PHUITagView())
+ ->setName($status_name)
+ ->setIcon(self::getRevisionStatusIcon($status))
+ ->setShade(self::getRevisionStatusColor($status))
+ ->setType(PHUITagView::TYPE_SHADE);
return $tag;
}
diff --git a/src/applications/maniphest/config/PhabricatorManiphestConfigOptions.php b/src/applications/maniphest/config/PhabricatorManiphestConfigOptions.php
--- a/src/applications/maniphest/config/PhabricatorManiphestConfigOptions.php
+++ b/src/applications/maniphest/config/PhabricatorManiphestConfigOptions.php
@@ -77,6 +77,7 @@
'name.full' => pht('Closed, Resolved'),
'closed' => true,
'special' => ManiphestTaskStatus::SPECIAL_CLOSED,
+ 'transaction.icon' => 'fa-check-circle',
'prefixes' => array(
'closed',
'closes',
@@ -97,6 +98,7 @@
'wontfix' => array(
'name' => pht('Wontfix'),
'name.full' => pht('Closed, Wontfix'),
+ 'transaction.icon' => 'fa-ban',
'closed' => true,
'prefixes' => array(
'wontfix',
@@ -110,6 +112,7 @@
'invalid' => array(
'name' => pht('Invalid'),
'name.full' => pht('Closed, Invalid'),
+ 'transaction.icon' => 'fa-minus-circle',
'closed' => true,
'claim' => false,
'prefixes' => array(
diff --git a/src/applications/maniphest/constants/ManiphestTaskStatus.php b/src/applications/maniphest/constants/ManiphestTaskStatus.php
--- a/src/applications/maniphest/constants/ManiphestTaskStatus.php
+++ b/src/applications/maniphest/constants/ManiphestTaskStatus.php
@@ -82,29 +82,22 @@
return self::getStatusAttribute($status, 'name', pht('Unknown Status'));
}
- public static function renderFullDescription($status) {
+ public static function renderFullDescription($status, $priority) {
if (self::isOpenStatus($status)) {
- $color = 'status';
- $icon_color = 'bluegrey';
+ $name = pht('%s, %s', self::getTaskStatusFullName($status), $priority);
+ $color = 'grey';
+ $icon = 'fa-square-o';
} else {
- $color = 'status-dark';
- $icon_color = '';
+ $name = self::getTaskStatusFullName($status);
+ $color = 'indigo';
+ $icon = 'fa-check-square-o';
}
- $icon = self::getStatusIcon($status);
-
- $img = id(new PHUIIconView())
- ->setIcon($icon.' '.$icon_color);
-
- $tag = phutil_tag(
- 'span',
- array(
- 'class' => 'phui-header-status phui-header-'.$color,
- ),
- array(
- $img,
- self::getTaskStatusFullName($status),
- ));
+ $tag = id(new PHUITagView())
+ ->setName($name)
+ ->setIcon($icon)
+ ->setType(PHUITagView::TYPE_SHADE)
+ ->setShade($color);
return $tag;
}
diff --git a/src/applications/maniphest/controller/ManiphestTaskDetailController.php b/src/applications/maniphest/controller/ManiphestTaskDetailController.php
--- a/src/applications/maniphest/controller/ManiphestTaskDetailController.php
+++ b/src/applications/maniphest/controller/ManiphestTaskDetailController.php
@@ -65,24 +65,16 @@
new ManiphestTransactionQuery(),
$engine);
- $actions = $this->buildActionView($task);
-
$monogram = $task->getMonogram();
$crumbs = $this->buildApplicationCrumbs()
- ->addTextCrumb($monogram, '/'.$monogram);
+ ->addTextCrumb($monogram)
+ ->setBorder(true);
$header = $this->buildHeaderView($task);
- $properties = $this->buildPropertyView(
- $task, $field_list, $edges, $actions, $handles);
+ $details = $this->buildPropertyView($task, $field_list, $edges, $handles);
$description = $this->buildDescriptionView($task, $engine);
-
- $object_box = id(new PHUIObjectBoxView())
- ->setHeader($header)
- ->addPropertyList($properties);
-
- if ($description) {
- $object_box->addPropertyList($description);
- }
+ $actions = $this->buildActionView($task);
+ $properties = $this->buildPropertyListView($task, $handles);
$title = pht('%s %s', $monogram, $task->getTitle());
@@ -93,6 +85,17 @@
$timeline->setQuoteRef($monogram);
$comment_view->setTransactionTimeline($timeline);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setMainColumn(array(
+ $timeline,
+ $comment_view,
+ ))
+ ->addPropertySection(pht('DETAILS'), $details)
+ ->addPropertySection(pht('DESCRIPTION'), $description)
+ ->setPropertyList($properties)
+ ->setActionList($actions);
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
@@ -102,10 +105,9 @@
))
->appendChild(
array(
- $object_box,
- $timeline,
- $comment_view,
- ));
+ $view,
+ ));
+
}
private function buildHeaderView(ManiphestTask $task) {
@@ -114,11 +116,34 @@
->setUser($this->getRequest()->getUser())
->setPolicyObject($task);
- $status = $task->getStatus();
- $status_name = ManiphestTaskStatus::renderFullDescription($status);
+ $priority_name = ManiphestTaskPriority::getTaskPriorityName(
+ $task->getPriority());
+ $priority_color = ManiphestTaskPriority::getTaskPriorityColor(
+ $task->getPriority());
+ $status = $task->getStatus();
+ $status_name = ManiphestTaskStatus::renderFullDescription(
+ $status, $priority_name, $priority_color);
$view->addProperty(PHUIHeaderView::PROPERTY_STATUS, $status_name);
+ $view->setHeaderIcon(ManiphestTaskStatus::getStatusIcon(
+ $task->getStatus()).' '.$priority_color);
+
+ if (ManiphestTaskPoints::getIsEnabled()) {
+ $points = $task->getPoints();
+ if ($points !== null) {
+ $points_name = pht('%s %s',
+ $task->getPoints(),
+ ManiphestTaskPoints::getPointsLabel());
+ $tag = id(new PHUITagView())
+ ->setName($points_name)
+ ->setShade('blue')
+ ->setType(PHUITagView::TYPE_SHADE);
+
+ $view->addTag($tag);
+ }
+ }
+
return $view;
}
@@ -198,45 +223,11 @@
ManiphestTask $task,
PhabricatorCustomFieldList $field_list,
array $edges,
- PhabricatorActionListView $actions,
$handles) {
$viewer = $this->getRequest()->getUser();
-
$view = id(new PHUIPropertyListView())
- ->setUser($viewer)
- ->setObject($task)
- ->setActionList($actions);
-
- $owner_phid = $task->getOwnerPHID();
- if ($owner_phid) {
- $assigned_to = $handles
- ->renderHandle($owner_phid)
- ->setShowHovercard(true);
- } else {
- $assigned_to = phutil_tag('em', array(), pht('None'));
- }
-
- $view->addProperty(pht('Assigned To'), $assigned_to);
-
- $view->addProperty(
- pht('Priority'),
- ManiphestTaskPriority::getTaskPriorityName($task->getPriority()));
-
- $author = $handles
- ->renderHandle($task->getAuthorPHID())
- ->setShowHovercard(true);
-
- $view->addProperty(pht('Author'), $author);
-
- if (ManiphestTaskPoints::getIsEnabled()) {
- $points = $task->getPoints();
- if ($points !== null) {
- $view->addProperty(
- ManiphestTaskPoints::getPointsLabel(),
- $task->getPoints());
- }
- }
+ ->setUser($viewer);
$source = $task->getOriginalEmailSource();
if ($source) {
@@ -304,13 +295,46 @@
phutil_implode_html(phutil_tag('br'), $revisions_commits));
}
- $view->invokeWillRenderEvent();
-
$field_list->appendFieldsToPropertyList(
$task,
$viewer,
$view);
+ if ($view->hasAnyProperties()) {
+ return $view;
+ }
+
+ return null;
+ }
+
+ private function buildPropertyListView(ManiphestTask $task, $handles) {
+ $viewer = $this->getRequest()->getUser();
+ $view = id(new PHUIPropertyListView())
+ ->setUser($viewer)
+ ->setObject($task);
+
+ $view->invokeWillRenderEvent();
+
+ $owner_phid = $task->getOwnerPHID();
+ if ($owner_phid) {
+ $assigned_to = $handles
+ ->renderHandle($owner_phid)
+ ->setShowHovercard(true);
+ } else {
+ $assigned_to = phutil_tag('em', array(), pht('None'));
+ }
+
+ $view->addProperty(pht('Assigned To'), $assigned_to);
+
+ $author_phid = $task->getAuthorPHID();
+ $author = $handles
+ ->renderHandle($author_phid)
+ ->setShowHovercard(true);
+
+ $date = phabricator_datetime($task->getDateCreated(), $viewer);
+
+ $view->addProperty(pht('Author'), $author);
+
return $view;
}
@@ -321,9 +345,6 @@
$section = null;
if (strlen($task->getDescription())) {
$section = new PHUIPropertyListView();
- $section->addSectionHeader(
- pht('Description'),
- PHUIPropertyListView::ICON_SUMMARY);
$section->addTextContent(
phutil_tag(
'div',
diff --git a/src/view/phui/PHUIHeaderView.php b/src/view/phui/PHUIHeaderView.php
--- a/src/view/phui/PHUIHeaderView.php
+++ b/src/view/phui/PHUIHeaderView.php
@@ -116,25 +116,17 @@
}
public function setStatus($icon, $color, $name) {
- $header_class = 'phui-header-status';
- if ($color) {
- $icon = $icon.' '.$color;
- $header_class = $header_class.'-'.$color;
+ // TODO: Normalize "closed/archived" to constants.
+ if ($color == 'dark') {
+ $color = PHUITagView::COLOR_INDIGO;
}
- $img = id(new PHUIIconView())
- ->setIcon($icon);
-
- $tag = phutil_tag(
- 'span',
- array(
- 'class' => "phui-header-status {$header_class}",
- ),
- array(
- $img,
- $name,
- ));
+ $tag = id(new PHUITagView())
+ ->setName($name)
+ ->setIcon($icon)
+ ->setShade($color)
+ ->setType(PHUITagView::TYPE_SHADE);
return $this->addProperty(self::PROPERTY_STATUS, $tag);
}
@@ -285,7 +277,7 @@
$this->buttonBar);
}
- if ($this->actionIcons || $this->tags) {
+ if ($this->actionIcons) {
$action_list = array();
if ($this->actionIcons) {
foreach ($this->actionIcons as $icon) {
@@ -297,14 +289,6 @@
$icon);
}
}
- if ($this->tags) {
- $action_list[] = phutil_tag(
- 'li',
- array(
- 'class' => 'phui-header-action-tag',
- ),
- array_interleave(' ', $this->tags));
- }
$right[] = phutil_tag(
'ul',
array(
@@ -379,6 +363,10 @@
$property_list[] = $this->renderPolicyProperty($this->policyObject);
}
+ if ($this->tags) {
+ $property_list[] = $this->tags;
+ }
+
$left[] = phutil_tag(
'div',
array(
diff --git a/webroot/rsrc/css/font/phui-font-icon-base.css b/webroot/rsrc/css/font/phui-font-icon-base.css
--- a/webroot/rsrc/css/font/phui-font-icon-base.css
+++ b/webroot/rsrc/css/font/phui-font-icon-base.css
@@ -148,7 +148,7 @@
}
.phui-icon-view.lightgreytext,
.phui-icon-view.grey {
- color: {$lightgreytext};
+ color: rgba({$alphagrey},0.3);
}
/* Hovers */
diff --git a/webroot/rsrc/css/phui/phui-header-view.css b/webroot/rsrc/css/phui/phui-header-view.css
--- a/webroot/rsrc/css/phui/phui-header-view.css
+++ b/webroot/rsrc/css/phui/phui-header-view.css
@@ -175,7 +175,8 @@
margin-top: 8px;
}
-.phui-header-subheader .phui-icon-view {
+.phui-header-subheader .phui-tag-view .phui-icon-view,
+.phui-header-subheader .policy-header-callout .phui-icon-view {
display: inline-block;
margin: -2px 4px -2px 0;
font-size: 15px;
@@ -187,11 +188,18 @@
}
.policy-header-callout,
-.phui-header-subheader .phui-header-status {
+.phui-header-subheader .phui-tag-core {
padding: 3px 9px;
border-radius: 3px;
- background: rgba({$alphablue}, 0.08);
+ background: rgba({$alphablue}, 0.1);
margin-right: 8px;
+ -webkit-font-smoothing: auto;
+ border-color: transparent;
+}
+
+.phui-header-subheader .phui-tag-type-shade .phui-tag-core {
+ border: none;
+ -webkit-font-smoothing: auto;
}
.policy-header-callout.policy-adjusted-weaker {
@@ -221,26 +229,6 @@
color: {$sh-orangetext};
}
-.phui-header-subheader .phui-header-status-dark {
- color: {$sh-indigotext};
- background: {$sh-indigobackground};
- margin-right: 8px;
-}
-
-.phui-header-subheader .phui-header-status-dark .phui-icon-view {
- color: {$sh-indigotext};
-}
-
-.phui-header-subheader .phui-header-status-red {
- color: {$sh-redtext};
- background: {$sh-redbackground};
-}
-
-.phui-header-subheader .phui-header-status-green {
- color: {$sh-greentext};
- background: {$sh-greenbackground};
-}
-
.phui-header-action-links .phui-mobile-menu {
display: none;
}
diff --git a/webroot/rsrc/css/phui/phui-tag-view.css b/webroot/rsrc/css/phui/phui-tag-view.css
--- a/webroot/rsrc/css/phui/phui-tag-view.css
+++ b/webroot/rsrc/css/phui/phui-tag-view.css
@@ -257,6 +257,26 @@
border-color: {$sh-blueborder};
}
+/* - Sky ------------------------------------------------------------------- */
+
+.phui-tag-shade-sky .phui-tag-core,
+.jx-tokenizer-token.sky {
+ background: #E0F0FA;
+ border-color: {$sh-lightblueborder};
+ color: {$sh-bluetext};
+}
+
+.phui-tag-shade-sky .phui-icon-view,
+.jx-tokenizer-token.sky .phui-icon-view,
+.jx-tokenizer-token.sky .jx-tokenizer-x {
+ color: {$sh-blueicon};
+}
+
+a.phui-tag-view:hover.phui-tag-shade-sky .phui-tag-core,
+.jx-tokenizer-token.sky:hover {
+ border-color: {$sh-blueborder};
+}
+
/* - Indigo ----------------------------------------------------------------- */
.phui-tag-shade-indigo .phui-tag-core,
diff --git a/webroot/rsrc/css/phui/phui-two-column-view.css b/webroot/rsrc/css/phui/phui-two-column-view.css
--- a/webroot/rsrc/css/phui/phui-two-column-view.css
+++ b/webroot/rsrc/css/phui/phui-two-column-view.css
@@ -8,6 +8,10 @@
margin-bottom: 24px;
}
+.device .phui-two-column-view .phui-two-column-header {
+ margin-bottom: 12px;
+}
+
.phui-two-column-view.with-subheader .phui-two-column-header {
margin-bottom: 0;
}
@@ -99,6 +103,10 @@
margin: 0;
}
+.phui-main-column > .phui-timeline-view {
+ border-top: 1px solid {$thinblueborder};
+}
+
/* Main Column Properties */
.device-desktop .phui-main-column .phui-property-list-key {
@@ -144,7 +152,13 @@
padding: 0 4px;
}
-.device-desktop .phui-two-column-properties .phui-property-list-container {
+.device .phui-two-column-properties .phui-property-list-stacked
+ .phui-property-list-properties .phui-property-list-value {
+ margin-bottom: 12px;
+}
+
+.device-desktop .phui-two-column-properties .phui-property-list-container,
+.device .phui-two-column-properties .phui-property-list-container {
padding: 0;
}
@@ -155,10 +169,6 @@
border: none;
}
-.device .phui-two-column-properties .phui-property-list-container {
- padding: 0 0 12px 0;
-}
-
.device .phui-two-column-content .phui-two-column-properties.phui-object-box {
padding: 0 12px;
}

File Metadata

Mime Type
text/plain
Expires
Thu, May 9, 9:32 PM (3 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6278070
Default Alt Text
D15396.diff (20 KB)

Event Timeline