mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-27 16:00:59 +01:00
Unify Differential/Maniphest/Diffusion styles and allow commits to be flagged explicitly
Summary: - Differential, Maniphest and Diffusion use slightly different styles for the object detail panels. - Instead, use the same styles and CSS. - Add object actions to Diffusion, including "Flag". Test Plan: Looked at revisions, tasks and commit. Flagged and unflagged commits. Reviewers: btrahan Reviewed By: btrahan CC: aran, epriestley Maniphest Tasks: T1041 Differential Revision: https://secure.phabricator.com/D2062
This commit is contained in:
parent
fcec4c368c
commit
5945546440
16 changed files with 356 additions and 184 deletions
|
@ -81,13 +81,22 @@ celerity_register_resource_map(array(
|
||||||
),
|
),
|
||||||
'aphront-headsup-action-list-view-css' =>
|
'aphront-headsup-action-list-view-css' =>
|
||||||
array(
|
array(
|
||||||
'uri' => '/res/84743e20/rsrc/css/aphront/headsup-action-list-view.css',
|
'uri' => '/res/aff0a541/rsrc/css/aphront/headsup-action-list-view.css',
|
||||||
'type' => 'css',
|
'type' => 'css',
|
||||||
'requires' =>
|
'requires' =>
|
||||||
array(
|
array(
|
||||||
),
|
),
|
||||||
'disk' => '/rsrc/css/aphront/headsup-action-list-view.css',
|
'disk' => '/rsrc/css/aphront/headsup-action-list-view.css',
|
||||||
),
|
),
|
||||||
|
'aphront-headsup-view-css' =>
|
||||||
|
array(
|
||||||
|
'uri' => '/res/39ffc2e7/rsrc/css/aphront/headsup.css',
|
||||||
|
'type' => 'css',
|
||||||
|
'requires' =>
|
||||||
|
array(
|
||||||
|
),
|
||||||
|
'disk' => '/rsrc/css/aphront/headsup.css',
|
||||||
|
),
|
||||||
'aphront-list-filter-view-css' =>
|
'aphront-list-filter-view-css' =>
|
||||||
array(
|
array(
|
||||||
'uri' => '/res/0f5ddaba/rsrc/css/aphront/list-filter-view.css',
|
'uri' => '/res/0f5ddaba/rsrc/css/aphront/list-filter-view.css',
|
||||||
|
@ -241,7 +250,7 @@ celerity_register_resource_map(array(
|
||||||
),
|
),
|
||||||
'differential-revision-detail-css' =>
|
'differential-revision-detail-css' =>
|
||||||
array(
|
array(
|
||||||
'uri' => '/res/2433dbdc/rsrc/css/application/differential/revision-detail.css',
|
'uri' => '/res/a838bf31/rsrc/css/application/differential/revision-detail.css',
|
||||||
'type' => 'css',
|
'type' => 'css',
|
||||||
'requires' =>
|
'requires' =>
|
||||||
array(
|
array(
|
||||||
|
@ -1409,7 +1418,7 @@ celerity_register_resource_map(array(
|
||||||
),
|
),
|
||||||
'maniphest-task-detail-css' =>
|
'maniphest-task-detail-css' =>
|
||||||
array(
|
array(
|
||||||
'uri' => '/res/15c28f68/rsrc/css/application/maniphest/task-detail.css',
|
'uri' => '/res/7599c878/rsrc/css/application/maniphest/task-detail.css',
|
||||||
'type' => 'css',
|
'type' => 'css',
|
||||||
'requires' =>
|
'requires' =>
|
||||||
array(
|
array(
|
||||||
|
@ -2039,7 +2048,7 @@ celerity_register_resource_map(array(
|
||||||
'uri' => '/res/pkg/21d01ed8/core.pkg.js',
|
'uri' => '/res/pkg/21d01ed8/core.pkg.js',
|
||||||
'type' => 'js',
|
'type' => 'js',
|
||||||
),
|
),
|
||||||
'28d8e85a' =>
|
'18be02e0' =>
|
||||||
array(
|
array(
|
||||||
'name' => 'differential.pkg.css',
|
'name' => 'differential.pkg.css',
|
||||||
'symbols' =>
|
'symbols' =>
|
||||||
|
@ -2057,7 +2066,7 @@ celerity_register_resource_map(array(
|
||||||
10 => 'phabricator-content-source-view-css',
|
10 => 'phabricator-content-source-view-css',
|
||||||
11 => 'differential-local-commits-view-css',
|
11 => 'differential-local-commits-view-css',
|
||||||
),
|
),
|
||||||
'uri' => '/res/pkg/28d8e85a/differential.pkg.css',
|
'uri' => '/res/pkg/18be02e0/differential.pkg.css',
|
||||||
'type' => 'css',
|
'type' => 'css',
|
||||||
),
|
),
|
||||||
'06ebcd69' =>
|
'06ebcd69' =>
|
||||||
|
@ -2115,7 +2124,7 @@ celerity_register_resource_map(array(
|
||||||
'uri' => '/res/pkg/4fbae2af/javelin.pkg.js',
|
'uri' => '/res/pkg/4fbae2af/javelin.pkg.js',
|
||||||
'type' => 'js',
|
'type' => 'js',
|
||||||
),
|
),
|
||||||
31583232 =>
|
'7cc1c9a3' =>
|
||||||
array(
|
array(
|
||||||
'name' => 'maniphest.pkg.css',
|
'name' => 'maniphest.pkg.css',
|
||||||
'symbols' =>
|
'symbols' =>
|
||||||
|
@ -2125,7 +2134,7 @@ celerity_register_resource_map(array(
|
||||||
2 => 'maniphest-task-detail-css',
|
2 => 'maniphest-task-detail-css',
|
||||||
3 => 'aphront-attached-file-view-css',
|
3 => 'aphront-attached-file-view-css',
|
||||||
),
|
),
|
||||||
'uri' => '/res/pkg/31583232/maniphest.pkg.css',
|
'uri' => '/res/pkg/7cc1c9a3/maniphest.pkg.css',
|
||||||
'type' => 'css',
|
'type' => 'css',
|
||||||
),
|
),
|
||||||
'86fc0b0c' =>
|
'86fc0b0c' =>
|
||||||
|
@ -2160,11 +2169,11 @@ celerity_register_resource_map(array(
|
||||||
),
|
),
|
||||||
'reverse' =>
|
'reverse' =>
|
||||||
array(
|
array(
|
||||||
'aphront-attached-file-view-css' => '31583232',
|
'aphront-attached-file-view-css' => '7cc1c9a3',
|
||||||
'aphront-crumbs-view-css' => '82263727',
|
'aphront-crumbs-view-css' => '82263727',
|
||||||
'aphront-dialog-view-css' => '82263727',
|
'aphront-dialog-view-css' => '82263727',
|
||||||
'aphront-form-view-css' => '82263727',
|
'aphront-form-view-css' => '82263727',
|
||||||
'aphront-headsup-action-list-view-css' => '28d8e85a',
|
'aphront-headsup-action-list-view-css' => '18be02e0',
|
||||||
'aphront-list-filter-view-css' => '82263727',
|
'aphront-list-filter-view-css' => '82263727',
|
||||||
'aphront-pager-view-css' => '82263727',
|
'aphront-pager-view-css' => '82263727',
|
||||||
'aphront-panel-view-css' => '82263727',
|
'aphront-panel-view-css' => '82263727',
|
||||||
|
@ -2172,16 +2181,16 @@ celerity_register_resource_map(array(
|
||||||
'aphront-table-view-css' => '82263727',
|
'aphront-table-view-css' => '82263727',
|
||||||
'aphront-tokenizer-control-css' => '82263727',
|
'aphront-tokenizer-control-css' => '82263727',
|
||||||
'aphront-typeahead-control-css' => '82263727',
|
'aphront-typeahead-control-css' => '82263727',
|
||||||
'differential-changeset-view-css' => '28d8e85a',
|
'differential-changeset-view-css' => '18be02e0',
|
||||||
'differential-core-view-css' => '28d8e85a',
|
'differential-core-view-css' => '18be02e0',
|
||||||
'differential-inline-comment-editor' => '06ebcd69',
|
'differential-inline-comment-editor' => '06ebcd69',
|
||||||
'differential-local-commits-view-css' => '28d8e85a',
|
'differential-local-commits-view-css' => '18be02e0',
|
||||||
'differential-revision-add-comment-css' => '28d8e85a',
|
'differential-revision-add-comment-css' => '18be02e0',
|
||||||
'differential-revision-comment-css' => '28d8e85a',
|
'differential-revision-comment-css' => '18be02e0',
|
||||||
'differential-revision-comment-list-css' => '28d8e85a',
|
'differential-revision-comment-list-css' => '18be02e0',
|
||||||
'differential-revision-detail-css' => '28d8e85a',
|
'differential-revision-detail-css' => '18be02e0',
|
||||||
'differential-revision-history-css' => '28d8e85a',
|
'differential-revision-history-css' => '18be02e0',
|
||||||
'differential-table-of-contents-css' => '28d8e85a',
|
'differential-table-of-contents-css' => '18be02e0',
|
||||||
'diffusion-commit-view-css' => '61f9d480',
|
'diffusion-commit-view-css' => '61f9d480',
|
||||||
'javelin-behavior' => '4fbae2af',
|
'javelin-behavior' => '4fbae2af',
|
||||||
'javelin-behavior-aphront-basic-tokenizer' => '2af849fb',
|
'javelin-behavior-aphront-basic-tokenizer' => '2af849fb',
|
||||||
|
@ -2226,11 +2235,11 @@ celerity_register_resource_map(array(
|
||||||
'javelin-util' => '4fbae2af',
|
'javelin-util' => '4fbae2af',
|
||||||
'javelin-vector' => '4fbae2af',
|
'javelin-vector' => '4fbae2af',
|
||||||
'javelin-workflow' => '21d01ed8',
|
'javelin-workflow' => '21d01ed8',
|
||||||
'maniphest-task-detail-css' => '31583232',
|
'maniphest-task-detail-css' => '7cc1c9a3',
|
||||||
'maniphest-task-summary-css' => '31583232',
|
'maniphest-task-summary-css' => '7cc1c9a3',
|
||||||
'maniphest-transaction-detail-css' => '31583232',
|
'maniphest-transaction-detail-css' => '7cc1c9a3',
|
||||||
'phabricator-app-buttons-css' => '82263727',
|
'phabricator-app-buttons-css' => '82263727',
|
||||||
'phabricator-content-source-view-css' => '28d8e85a',
|
'phabricator-content-source-view-css' => '18be02e0',
|
||||||
'phabricator-core-buttons-css' => '82263727',
|
'phabricator-core-buttons-css' => '82263727',
|
||||||
'phabricator-core-css' => '82263727',
|
'phabricator-core-css' => '82263727',
|
||||||
'phabricator-directory-css' => '82263727',
|
'phabricator-directory-css' => '82263727',
|
||||||
|
@ -2240,7 +2249,7 @@ celerity_register_resource_map(array(
|
||||||
'phabricator-keyboard-shortcut' => '21d01ed8',
|
'phabricator-keyboard-shortcut' => '21d01ed8',
|
||||||
'phabricator-keyboard-shortcut-manager' => '21d01ed8',
|
'phabricator-keyboard-shortcut-manager' => '21d01ed8',
|
||||||
'phabricator-menu-item' => '21d01ed8',
|
'phabricator-menu-item' => '21d01ed8',
|
||||||
'phabricator-object-selector-css' => '28d8e85a',
|
'phabricator-object-selector-css' => '18be02e0',
|
||||||
'phabricator-paste-file-upload' => '21d01ed8',
|
'phabricator-paste-file-upload' => '21d01ed8',
|
||||||
'phabricator-remarkup-css' => '82263727',
|
'phabricator-remarkup-css' => '82263727',
|
||||||
'phabricator-shaped-request' => '06ebcd69',
|
'phabricator-shaped-request' => '06ebcd69',
|
||||||
|
|
|
@ -52,6 +52,7 @@ phutil_register_library_map(array(
|
||||||
'AphrontHTTPSinkTestCase' => 'aphront/sink/base/__tests__',
|
'AphrontHTTPSinkTestCase' => 'aphront/sink/base/__tests__',
|
||||||
'AphrontHeadsupActionListView' => 'view/layout/headsup/actionlist',
|
'AphrontHeadsupActionListView' => 'view/layout/headsup/actionlist',
|
||||||
'AphrontHeadsupActionView' => 'view/layout/headsup/action',
|
'AphrontHeadsupActionView' => 'view/layout/headsup/action',
|
||||||
|
'AphrontHeadsupView' => 'view/layout/headsup/panel',
|
||||||
'AphrontIsolatedDatabaseConnection' => 'storage/connection/isolated',
|
'AphrontIsolatedDatabaseConnection' => 'storage/connection/isolated',
|
||||||
'AphrontIsolatedDatabaseConnectionTestCase' => 'storage/connection/isolated/__tests__',
|
'AphrontIsolatedDatabaseConnectionTestCase' => 'storage/connection/isolated/__tests__',
|
||||||
'AphrontIsolatedHTTPSink' => 'aphront/sink/test',
|
'AphrontIsolatedHTTPSink' => 'aphront/sink/test',
|
||||||
|
@ -383,7 +384,6 @@ phutil_register_library_map(array(
|
||||||
'DrydockWebrootInterface' => 'applications/drydock/interface/webroot/base',
|
'DrydockWebrootInterface' => 'applications/drydock/interface/webroot/base',
|
||||||
'HeraldAction' => 'applications/herald/storage/action',
|
'HeraldAction' => 'applications/herald/storage/action',
|
||||||
'HeraldActionConfig' => 'applications/herald/config/action',
|
'HeraldActionConfig' => 'applications/herald/config/action',
|
||||||
'HeraldAllRulesController' => 'applications/herald/controller/all',
|
|
||||||
'HeraldApplyTranscript' => 'applications/herald/storage/transcript/apply',
|
'HeraldApplyTranscript' => 'applications/herald/storage/transcript/apply',
|
||||||
'HeraldCommitAdapter' => 'applications/herald/adapter/commit',
|
'HeraldCommitAdapter' => 'applications/herald/adapter/commit',
|
||||||
'HeraldCondition' => 'applications/herald/storage/condition',
|
'HeraldCondition' => 'applications/herald/storage/condition',
|
||||||
|
@ -989,6 +989,7 @@ phutil_register_library_map(array(
|
||||||
'AphrontHTTPSinkTestCase' => 'PhabricatorTestCase',
|
'AphrontHTTPSinkTestCase' => 'PhabricatorTestCase',
|
||||||
'AphrontHeadsupActionListView' => 'AphrontView',
|
'AphrontHeadsupActionListView' => 'AphrontView',
|
||||||
'AphrontHeadsupActionView' => 'AphrontView',
|
'AphrontHeadsupActionView' => 'AphrontView',
|
||||||
|
'AphrontHeadsupView' => 'AphrontView',
|
||||||
'AphrontIsolatedDatabaseConnection' => 'AphrontDatabaseConnection',
|
'AphrontIsolatedDatabaseConnection' => 'AphrontDatabaseConnection',
|
||||||
'AphrontIsolatedDatabaseConnectionTestCase' => 'PhabricatorTestCase',
|
'AphrontIsolatedDatabaseConnectionTestCase' => 'PhabricatorTestCase',
|
||||||
'AphrontIsolatedHTTPSink' => 'AphrontHTTPSink',
|
'AphrontIsolatedHTTPSink' => 'AphrontHTTPSink',
|
||||||
|
@ -1263,7 +1264,6 @@ phutil_register_library_map(array(
|
||||||
'DrydockSSHCommandInterface' => 'DrydockCommandInterface',
|
'DrydockSSHCommandInterface' => 'DrydockCommandInterface',
|
||||||
'DrydockWebrootInterface' => 'DrydockInterface',
|
'DrydockWebrootInterface' => 'DrydockInterface',
|
||||||
'HeraldAction' => 'HeraldDAO',
|
'HeraldAction' => 'HeraldDAO',
|
||||||
'HeraldAllRulesController' => 'HeraldController',
|
|
||||||
'HeraldApplyTranscript' => 'HeraldDAO',
|
'HeraldApplyTranscript' => 'HeraldDAO',
|
||||||
'HeraldCommitAdapter' => 'HeraldObjectAdapter',
|
'HeraldCommitAdapter' => 'HeraldObjectAdapter',
|
||||||
'HeraldCondition' => 'HeraldDAO',
|
'HeraldCondition' => 'HeraldDAO',
|
||||||
|
@ -1344,6 +1344,7 @@ phutil_register_library_map(array(
|
||||||
'PhabricatorChatLogDAO' => 'PhabricatorLiskDAO',
|
'PhabricatorChatLogDAO' => 'PhabricatorLiskDAO',
|
||||||
'PhabricatorChatLogEvent' => 'PhabricatorChatLogDAO',
|
'PhabricatorChatLogEvent' => 'PhabricatorChatLogDAO',
|
||||||
'PhabricatorChatLogEventType' => 'PhabricatorChatLogConstants',
|
'PhabricatorChatLogEventType' => 'PhabricatorChatLogConstants',
|
||||||
|
'PhabricatorChatLogQuery' => 'PhabricatorOffsetPagedQuery',
|
||||||
'PhabricatorConduitAPIController' => 'PhabricatorConduitController',
|
'PhabricatorConduitAPIController' => 'PhabricatorConduitController',
|
||||||
'PhabricatorConduitCertificateToken' => 'PhabricatorConduitDAO',
|
'PhabricatorConduitCertificateToken' => 'PhabricatorConduitDAO',
|
||||||
'PhabricatorConduitConnectionLog' => 'PhabricatorConduitDAO',
|
'PhabricatorConduitConnectionLog' => 'PhabricatorConduitDAO',
|
||||||
|
|
|
@ -322,9 +322,7 @@ final class DifferentialRevisionViewController extends DifferentialController {
|
||||||
$page_pane = id(new DifferentialPrimaryPaneView())
|
$page_pane = id(new DifferentialPrimaryPaneView())
|
||||||
->setLineWidthFromChangesets($changesets)
|
->setLineWidthFromChangesets($changesets)
|
||||||
->setID($pane_id)
|
->setID($pane_id)
|
||||||
->appendChild($reviewer_warning)
|
|
||||||
->appendChild(
|
->appendChild(
|
||||||
$revision_detail->render().
|
|
||||||
$comment_view->render().
|
$comment_view->render().
|
||||||
$diff_history->render().
|
$diff_history->render().
|
||||||
$warning.
|
$warning.
|
||||||
|
@ -336,7 +334,11 @@ final class DifferentialRevisionViewController extends DifferentialController {
|
||||||
$page_pane->appendChild($comment_form->render());
|
$page_pane->appendChild($comment_form->render());
|
||||||
}
|
}
|
||||||
return $this->buildStandardPageResponse(
|
return $this->buildStandardPageResponse(
|
||||||
|
array(
|
||||||
|
$reviewer_warning,
|
||||||
|
$revision_detail,
|
||||||
$page_pane,
|
$page_pane,
|
||||||
|
),
|
||||||
array(
|
array(
|
||||||
'title' => 'D'.$revision->getID().' '.$revision->getTitle(),
|
'title' => 'D'.$revision->getID().' '.$revision->getTitle(),
|
||||||
));
|
));
|
||||||
|
@ -446,11 +448,13 @@ final class DifferentialRevisionViewController extends DifferentialController {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($user->getIsAdmin()) {
|
||||||
$links[] = array(
|
$links[] = array(
|
||||||
'class' => 'transcripts-metamta',
|
'class' => 'transcripts-metamta',
|
||||||
'name' => 'MetaMTA Transcripts',
|
'name' => 'MetaMTA Transcripts',
|
||||||
'href' => "/mail/?phid={$revision_phid}",
|
'href' => "/mail/?phid={$revision_phid}",
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$links[] = array(
|
$links[] = array(
|
||||||
'class' => 'transcripts-herald',
|
'class' => 'transcripts-herald',
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Copyright 2011 Facebook, Inc.
|
* Copyright 2012 Facebook, Inc.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
|
@ -50,24 +50,15 @@ final class DifferentialRevisionDetailView extends AphrontView {
|
||||||
|
|
||||||
$revision = $this->revision;
|
$revision = $this->revision;
|
||||||
|
|
||||||
$rows = array();
|
$dict = array();
|
||||||
foreach ($this->auxiliaryFields as $field) {
|
foreach ($this->auxiliaryFields as $field) {
|
||||||
$value = $field->renderValueForRevisionView();
|
$value = $field->renderValueForRevisionView();
|
||||||
if (strlen($value)) {
|
if (strlen($value)) {
|
||||||
$label = $field->renderLabelForRevisionView();
|
$label = rtrim($field->renderLabelForRevisionView(), ':');
|
||||||
$rows[] =
|
$dict[$label] = $value;
|
||||||
'<tr>'.
|
|
||||||
'<th>'.$label.'</th>'.
|
|
||||||
'<td>'.$value.'</td>'.
|
|
||||||
'</tr>';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$properties =
|
|
||||||
'<table class="differential-revision-properties">'.
|
|
||||||
implode("\n", $rows).
|
|
||||||
'</table>';
|
|
||||||
|
|
||||||
$actions = array();
|
$actions = array();
|
||||||
foreach ($this->actions as $action) {
|
foreach ($this->actions as $action) {
|
||||||
$obj = new AphrontHeadsupActionView();
|
$obj = new AphrontHeadsupActionView();
|
||||||
|
@ -83,22 +74,14 @@ final class DifferentialRevisionDetailView extends AphrontView {
|
||||||
$action_list = new AphrontHeadsupActionListView();
|
$action_list = new AphrontHeadsupActionListView();
|
||||||
$action_list->setActions($actions);
|
$action_list->setActions($actions);
|
||||||
|
|
||||||
return
|
$action_panel = new AphrontHeadsupView();
|
||||||
'<div class="differential-revision-detail differential-panel">'.
|
$action_panel->setActionList($action_list);
|
||||||
$action_list->render().
|
$action_panel->setHasKeyboardShortcuts(true);
|
||||||
'<div class="differential-keyboard-shortcuts">'.
|
$action_panel->setProperties($dict);
|
||||||
id(new AphrontKeyboardShortcutsAvailableView())->render().
|
|
||||||
'</div>'.
|
$action_panel->setObjectName('D'.$revision->getID());
|
||||||
'<div class="differential-revision-detail-core">'.
|
$action_panel->setHeader($revision->getTitle());
|
||||||
'<h1>'.
|
|
||||||
'<span class="aphront-headsup-object-name">'.
|
return $action_panel->render();
|
||||||
phutil_escape_html('D'.$revision->getID()).
|
|
||||||
'</span>'.
|
|
||||||
' '.
|
|
||||||
phutil_escape_html($revision->getTitle()).'</h1>'.
|
|
||||||
$properties.
|
|
||||||
'</div>'.
|
|
||||||
'<div style="clear: both;"></div>'.
|
|
||||||
'</div>';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,9 +10,8 @@ phutil_require_module('phabricator', 'infrastructure/celerity/api');
|
||||||
phutil_require_module('phabricator', 'view/base');
|
phutil_require_module('phabricator', 'view/base');
|
||||||
phutil_require_module('phabricator', 'view/layout/headsup/action');
|
phutil_require_module('phabricator', 'view/layout/headsup/action');
|
||||||
phutil_require_module('phabricator', 'view/layout/headsup/actionlist');
|
phutil_require_module('phabricator', 'view/layout/headsup/actionlist');
|
||||||
phutil_require_module('phabricator', 'view/widget/keyboardshortcuts');
|
phutil_require_module('phabricator', 'view/layout/headsup/panel');
|
||||||
|
|
||||||
phutil_require_module('phutil', 'markup');
|
|
||||||
phutil_require_module('phutil', 'utils');
|
phutil_require_module('phutil', 'utils');
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -41,8 +41,6 @@ final class DiffusionCommitController extends DiffusionController {
|
||||||
'commit' => true,
|
'commit' => true,
|
||||||
));
|
));
|
||||||
|
|
||||||
$detail_panel = new AphrontPanelView();
|
|
||||||
|
|
||||||
$repository = $drequest->getRepository();
|
$repository = $drequest->getRepository();
|
||||||
$commit = $drequest->loadCommit();
|
$commit = $drequest->loadCommit();
|
||||||
|
|
||||||
|
@ -76,31 +74,23 @@ final class DiffusionCommitController extends DiffusionController {
|
||||||
|
|
||||||
$parent_query = DiffusionCommitParentsQuery::newFromDiffusionRequest(
|
$parent_query = DiffusionCommitParentsQuery::newFromDiffusionRequest(
|
||||||
$drequest);
|
$drequest);
|
||||||
$parents = $parent_query->loadParents();
|
|
||||||
|
|
||||||
$property_table = $this->renderPropertyTable(
|
$headsup_panel = new AphrontHeadsupView();
|
||||||
|
$headsup_panel->setHeader('Commit Detail');
|
||||||
|
$headsup_panel->setActionList(
|
||||||
|
$this->renderHeadsupActionList($commit));
|
||||||
|
$headsup_panel->setProperties(
|
||||||
|
$this->getCommitProperties(
|
||||||
$commit,
|
$commit,
|
||||||
$commit_data,
|
$commit_data,
|
||||||
$parents);
|
$parent_query->loadParents()));
|
||||||
|
|
||||||
$detail_panel->setHeader('Revision Detail');
|
$headsup_panel->appendChild(
|
||||||
$detail_panel->addButton(
|
|
||||||
'<div class="diffusion-commit-dateline">'.
|
|
||||||
'r'.$callsign.$commit->getCommitIdentifier().
|
|
||||||
' · '.
|
|
||||||
phabricator_datetime($commit->getEpoch(), $user).
|
|
||||||
'</div>');
|
|
||||||
|
|
||||||
$detail_panel->appendChild(
|
|
||||||
'<div class="diffusion-commit-details">'.
|
|
||||||
$property_table.
|
|
||||||
'<hr />'.
|
|
||||||
'<div class="diffusion-commit-message phabricator-remarkup">'.
|
'<div class="diffusion-commit-message phabricator-remarkup">'.
|
||||||
$engine->markupText($commit_data->getCommitMessage()).
|
$engine->markupText($commit_data->getCommitMessage()).
|
||||||
'</div>'.
|
|
||||||
'</div>');
|
'</div>');
|
||||||
|
|
||||||
$content[] = $detail_panel;
|
$content[] = $headsup_panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = new PhabricatorAuditQuery();
|
$query = new PhabricatorAuditQuery();
|
||||||
|
@ -273,10 +263,11 @@ final class DiffusionCommitController extends DiffusionController {
|
||||||
));
|
));
|
||||||
}
|
}
|
||||||
|
|
||||||
private function renderPropertyTable(
|
private function getCommitProperties(
|
||||||
PhabricatorRepositoryCommit $commit,
|
PhabricatorRepositoryCommit $commit,
|
||||||
PhabricatorRepositoryCommitData $data,
|
PhabricatorRepositoryCommitData $data,
|
||||||
array $parents) {
|
array $parents) {
|
||||||
|
$user = $this->getRequest()->getUser();
|
||||||
|
|
||||||
$phids = array();
|
$phids = array();
|
||||||
if ($data->getCommitDetail('authorPHID')) {
|
if ($data->getCommitDetail('authorPHID')) {
|
||||||
|
@ -302,6 +293,17 @@ final class DiffusionCommitController extends DiffusionController {
|
||||||
|
|
||||||
$props = array();
|
$props = array();
|
||||||
|
|
||||||
|
if ($commit->getAuditStatus()) {
|
||||||
|
$status = PhabricatorAuditCommitStatusConstants::getStatusName(
|
||||||
|
$commit->getAuditStatus());
|
||||||
|
$props['Status'] = phutil_render_tag(
|
||||||
|
'strong',
|
||||||
|
array(),
|
||||||
|
phutil_escape_html($status));
|
||||||
|
}
|
||||||
|
|
||||||
|
$props['Committed'] = phabricator_datetime($commit->getEpoch(), $user);
|
||||||
|
|
||||||
$author_phid = $data->getCommitDetail('authorPHID');
|
$author_phid = $data->getCommitDetail('authorPHID');
|
||||||
if ($data->getCommitDetail('authorPHID')) {
|
if ($data->getCommitDetail('authorPHID')) {
|
||||||
$props['Author'] = $handles[$author_phid]->renderLink();
|
$props['Author'] = $handles[$author_phid]->renderLink();
|
||||||
|
@ -322,11 +324,6 @@ final class DiffusionCommitController extends DiffusionController {
|
||||||
$props['Differential Revision'] = $handles[$revision_phid]->renderLink();
|
$props['Differential Revision'] = $handles[$revision_phid]->renderLink();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($commit->getAuditStatus()) {
|
|
||||||
$props['Audit'] = PhabricatorAuditCommitStatusConstants::getStatusName(
|
|
||||||
$commit->getAuditStatus());
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($parents) {
|
if ($parents) {
|
||||||
$parent_links = array();
|
$parent_links = array();
|
||||||
foreach ($parents as $parent) {
|
foreach ($parents as $parent) {
|
||||||
|
@ -347,19 +344,7 @@ final class DiffusionCommitController extends DiffusionController {
|
||||||
$props['Branches'] = $branches;
|
$props['Branches'] = $branches;
|
||||||
}
|
}
|
||||||
|
|
||||||
$rows = array();
|
return $props;
|
||||||
foreach ($props as $key => $value) {
|
|
||||||
$rows[] =
|
|
||||||
'<tr>'.
|
|
||||||
'<th>'.$key.':</th>'.
|
|
||||||
'<td>'.$value.'</td>'.
|
|
||||||
'</tr>';
|
|
||||||
}
|
|
||||||
|
|
||||||
return
|
|
||||||
'<table class="diffusion-commit-properties">'.
|
|
||||||
implode("\n", $rows).
|
|
||||||
'</table>';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private function buildAuditTable($commit, $audits) {
|
private function buildAuditTable($commit, $audits) {
|
||||||
|
@ -378,6 +363,7 @@ final class DiffusionCommitController extends DiffusionController {
|
||||||
|
|
||||||
$panel = new AphrontPanelView();
|
$panel = new AphrontPanelView();
|
||||||
$panel->setHeader('Audits');
|
$panel->setHeader('Audits');
|
||||||
|
$panel->setCaption('Audits you are responsible for are highlighted.');
|
||||||
$panel->appendChild($view);
|
$panel->appendChild($view);
|
||||||
|
|
||||||
return $panel;
|
return $panel;
|
||||||
|
@ -609,5 +595,68 @@ final class DiffusionCommitController extends DiffusionController {
|
||||||
return $panel;
|
return $panel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function renderHeadsupActionList(
|
||||||
|
PhabricatorRepositoryCommit $commit) {
|
||||||
|
|
||||||
|
$user = $this->getRequest()->getUser();
|
||||||
|
|
||||||
|
$actions = array();
|
||||||
|
|
||||||
|
require_celerity_resource('phabricator-flag-css');
|
||||||
|
$flag = PhabricatorFlagQuery::loadUserFlag($user, $commit->getPHID());
|
||||||
|
if ($flag) {
|
||||||
|
$class = PhabricatorFlagColor::getCSSClass($flag->getColor());
|
||||||
|
$color = PhabricatorFlagColor::getColorName($flag->getColor());
|
||||||
|
|
||||||
|
$action = new AphrontHeadsupActionView();
|
||||||
|
$action->setClass('flag-clear '.$class);
|
||||||
|
$action->setURI('/flag/delete/'.$flag->getID().'/');
|
||||||
|
$action->setName('Remove '.$color.' Flag');
|
||||||
|
$action->setWorkflow(true);
|
||||||
|
$actions[] = $action;
|
||||||
|
} else {
|
||||||
|
$action = new AphrontHeadsupActionView();
|
||||||
|
$action->setClass('phabricator-flag-ghost');
|
||||||
|
$action->setURI('/flag/edit/'.$commit->getPHID().'/');
|
||||||
|
$action->setName('Flag Commit');
|
||||||
|
$action->setWorkflow(true);
|
||||||
|
$actions[] = $action;
|
||||||
|
}
|
||||||
|
|
||||||
|
require_celerity_resource('phabricator-object-selector-css');
|
||||||
|
require_celerity_resource('javelin-behavior-phabricator-object-selector');
|
||||||
|
|
||||||
|
/*
|
||||||
|
TODO: Implement this.
|
||||||
|
|
||||||
|
$action = new AphrontHeadsupActionView();
|
||||||
|
$action->setName('Edit Maniphest Tasks');
|
||||||
|
$action->setURI('/search/attach/'.$commit->getPHID().'/TASK/');
|
||||||
|
$action->setWorkflow(true);
|
||||||
|
$action->setClass('attach-maniphest');
|
||||||
|
$actions[] = $action;
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
if ($user->getIsAdmin()) {
|
||||||
|
$action = new AphrontHeadsupActionView();
|
||||||
|
$action->setName('MetaMTA Transcripts');
|
||||||
|
$action->setURI('/mail/?phid='.$commit->getPHID());
|
||||||
|
$action->setClass('transcripts-metamta');
|
||||||
|
$actions[] = $action;
|
||||||
|
}
|
||||||
|
|
||||||
|
$action = new AphrontHeadsupActionView();
|
||||||
|
$action->setName('Herald Transcripts');
|
||||||
|
$action->setURI('/herald/transcript/?phid='.$commit->getPHID());
|
||||||
|
$action->setClass('transcripts-herald');
|
||||||
|
$actions[] = $action;
|
||||||
|
|
||||||
|
$action_list = new AphrontHeadsupActionListView();
|
||||||
|
$action_list->setActions($actions);
|
||||||
|
|
||||||
|
return $action_list;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,8 @@ phutil_require_module('phabricator', 'applications/diffusion/view/commentlist');
|
||||||
phutil_require_module('phabricator', 'applications/diffusion/view/commitchangetable');
|
phutil_require_module('phabricator', 'applications/diffusion/view/commitchangetable');
|
||||||
phutil_require_module('phabricator', 'applications/diffusion/view/historytable');
|
phutil_require_module('phabricator', 'applications/diffusion/view/historytable');
|
||||||
phutil_require_module('phabricator', 'applications/draft/storage/draft');
|
phutil_require_module('phabricator', 'applications/draft/storage/draft');
|
||||||
|
phutil_require_module('phabricator', 'applications/flag/constants/color');
|
||||||
|
phutil_require_module('phabricator', 'applications/flag/query/flag');
|
||||||
phutil_require_module('phabricator', 'applications/markup/engine');
|
phutil_require_module('phabricator', 'applications/markup/engine');
|
||||||
phutil_require_module('phabricator', 'applications/phid/handle/data');
|
phutil_require_module('phabricator', 'applications/phid/handle/data');
|
||||||
phutil_require_module('phabricator', 'applications/repository/constants/repositorytype');
|
phutil_require_module('phabricator', 'applications/repository/constants/repositorytype');
|
||||||
|
@ -42,6 +44,9 @@ phutil_require_module('phabricator', 'view/form/control/select');
|
||||||
phutil_require_module('phabricator', 'view/form/control/submit');
|
phutil_require_module('phabricator', 'view/form/control/submit');
|
||||||
phutil_require_module('phabricator', 'view/form/control/textarea');
|
phutil_require_module('phabricator', 'view/form/control/textarea');
|
||||||
phutil_require_module('phabricator', 'view/form/error');
|
phutil_require_module('phabricator', 'view/form/error');
|
||||||
|
phutil_require_module('phabricator', 'view/layout/headsup/action');
|
||||||
|
phutil_require_module('phabricator', 'view/layout/headsup/actionlist');
|
||||||
|
phutil_require_module('phabricator', 'view/layout/headsup/panel');
|
||||||
phutil_require_module('phabricator', 'view/layout/panel');
|
phutil_require_module('phabricator', 'view/layout/panel');
|
||||||
phutil_require_module('phabricator', 'view/null');
|
phutil_require_module('phabricator', 'view/null');
|
||||||
phutil_require_module('phabricator', 'view/utils');
|
phutil_require_module('phabricator', 'view/utils');
|
||||||
|
|
|
@ -30,10 +30,8 @@ final class ManiphestTaskDescriptionPreviewController
|
||||||
$engine = PhabricatorMarkupEngine::newManiphestMarkupEngine();
|
$engine = PhabricatorMarkupEngine::newManiphestMarkupEngine();
|
||||||
|
|
||||||
$content =
|
$content =
|
||||||
'<div class="maniphest-task-description">'.
|
|
||||||
'<div class="phabricator-remarkup">'.
|
'<div class="phabricator-remarkup">'.
|
||||||
$engine->markupText($description).
|
$engine->markupText($description).
|
||||||
'</div>'.
|
|
||||||
'</div>';
|
'</div>';
|
||||||
|
|
||||||
return id(new AphrontAjaxResponse())
|
return id(new AphrontAjaxResponse())
|
||||||
|
|
|
@ -185,28 +185,6 @@ final class ManiphestTaskDetailController extends ManiphestController {
|
||||||
$dict['Files'] = implode('', $views);
|
$dict['Files'] = implode('', $views);
|
||||||
}
|
}
|
||||||
|
|
||||||
$dict['Description'] =
|
|
||||||
'<div class="maniphest-task-description">'.
|
|
||||||
'<div class="phabricator-remarkup">'.
|
|
||||||
$engine->markupText($task->getDescription()).
|
|
||||||
'</div>'.
|
|
||||||
'</div>';
|
|
||||||
|
|
||||||
require_celerity_resource('maniphest-task-detail-css');
|
|
||||||
|
|
||||||
$table = array();
|
|
||||||
foreach ($dict as $key => $value) {
|
|
||||||
$table[] =
|
|
||||||
'<tr>'.
|
|
||||||
'<th>'.phutil_escape_html($key).':</th>'.
|
|
||||||
'<td>'.$value.'</td>'.
|
|
||||||
'</tr>';
|
|
||||||
}
|
|
||||||
$table =
|
|
||||||
'<table class="maniphest-task-properties">'.
|
|
||||||
implode("\n", $table).
|
|
||||||
'</table>';
|
|
||||||
|
|
||||||
$context_bar = null;
|
$context_bar = null;
|
||||||
|
|
||||||
if ($parent_task) {
|
if ($parent_task) {
|
||||||
|
@ -308,20 +286,16 @@ final class ManiphestTaskDetailController extends ManiphestController {
|
||||||
$action_list = new AphrontHeadsupActionListView();
|
$action_list = new AphrontHeadsupActionListView();
|
||||||
$action_list->setActions($actions);
|
$action_list->setActions($actions);
|
||||||
|
|
||||||
$panel =
|
$headsup_panel = new AphrontHeadsupView();
|
||||||
'<div class="maniphest-panel">'.
|
$headsup_panel->setObjectName('T'.$task->getID());
|
||||||
$action_list->render().
|
$headsup_panel->setHeader($task->getTitle());
|
||||||
'<div class="maniphest-task-detail-core">'.
|
$headsup_panel->setActionList($action_list);
|
||||||
'<h1>'.
|
$headsup_panel->setProperties($dict);
|
||||||
'<span class="aphront-headsup-object-name">'.
|
|
||||||
phutil_escape_html('T'.$task->getID()).
|
$headsup_panel->appendChild(
|
||||||
'</span>'.
|
'<div class="phabricator-remarkup">'.
|
||||||
' '.
|
$engine->markupText($task->getDescription()).
|
||||||
phutil_escape_html($task->getTitle()).
|
'</div>');
|
||||||
'</h1>'.
|
|
||||||
$table.
|
|
||||||
'</div>'.
|
|
||||||
'</div>';
|
|
||||||
|
|
||||||
$transaction_types = ManiphestTransactionType::getTransactionTypeMap();
|
$transaction_types = ManiphestTransactionType::getTransactionTypeMap();
|
||||||
$resolution_types = ManiphestTaskStatus::getTaskStatusMap();
|
$resolution_types = ManiphestTaskStatus::getTaskStatusMap();
|
||||||
|
@ -523,7 +497,7 @@ final class ManiphestTaskDetailController extends ManiphestController {
|
||||||
return $this->buildStandardPageResponse(
|
return $this->buildStandardPageResponse(
|
||||||
array(
|
array(
|
||||||
$context_bar,
|
$context_bar,
|
||||||
$panel,
|
$headsup_panel,
|
||||||
$transaction_view,
|
$transaction_view,
|
||||||
$comment_panel,
|
$comment_panel,
|
||||||
$preview_panel,
|
$preview_panel,
|
||||||
|
|
|
@ -36,6 +36,7 @@ phutil_require_module('phabricator', 'view/layout/contextbar');
|
||||||
phutil_require_module('phabricator', 'view/layout/filepreview');
|
phutil_require_module('phabricator', 'view/layout/filepreview');
|
||||||
phutil_require_module('phabricator', 'view/layout/headsup/action');
|
phutil_require_module('phabricator', 'view/layout/headsup/action');
|
||||||
phutil_require_module('phabricator', 'view/layout/headsup/actionlist');
|
phutil_require_module('phabricator', 'view/layout/headsup/actionlist');
|
||||||
|
phutil_require_module('phabricator', 'view/layout/headsup/panel');
|
||||||
phutil_require_module('phabricator', 'view/layout/panel');
|
phutil_require_module('phabricator', 'view/layout/panel');
|
||||||
|
|
||||||
phutil_require_module('phutil', 'markup');
|
phutil_require_module('phutil', 'markup');
|
||||||
|
|
112
src/view/layout/headsup/panel/AphrontHeadsupView.php
Normal file
112
src/view/layout/headsup/panel/AphrontHeadsupView.php
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Copyright 2012 Facebook, Inc.
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
final class AphrontHeadsupView extends AphrontView {
|
||||||
|
|
||||||
|
private $actionList;
|
||||||
|
private $header;
|
||||||
|
private $properties;
|
||||||
|
private $objectName;
|
||||||
|
private $hasKeyboardShortcuts;
|
||||||
|
|
||||||
|
public function setActionList(AphrontHeadsupActionListView $action_list) {
|
||||||
|
$this->actionList = $action_list;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setHeader($header) {
|
||||||
|
$this->header = $header;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setProperties(array $dict) {
|
||||||
|
$this->properties = $dict;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setObjectName($name) {
|
||||||
|
$this->objectName = $name;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function setHasKeyboardShortcuts($has_keyboard_shortcuts) {
|
||||||
|
$this->hasKeyboardShortcuts = $has_keyboard_shortcuts;
|
||||||
|
return $this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getHasKeyboardShortcuts() {
|
||||||
|
return $this->hasKeyboardShortcuts;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function render() {
|
||||||
|
$header =
|
||||||
|
'<h1>'.
|
||||||
|
'<span class="aphront-headsup-object-name">'.
|
||||||
|
phutil_escape_html($this->objectName).
|
||||||
|
'</span>'.
|
||||||
|
' '.
|
||||||
|
phutil_escape_html($this->header).
|
||||||
|
'</h1>';
|
||||||
|
|
||||||
|
require_celerity_resource('aphront-headsup-view-css');
|
||||||
|
|
||||||
|
$shortcuts = null;
|
||||||
|
if ($this->hasKeyboardShortcuts) {
|
||||||
|
$shortcuts =
|
||||||
|
'<div class="aphront-headsup-keyboard-shortcuts">'.
|
||||||
|
id(new AphrontKeyboardShortcutsAvailableView())->render().
|
||||||
|
'</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$prop_table = null;
|
||||||
|
if ($this->properties) {
|
||||||
|
$prop_table = array();
|
||||||
|
foreach ($this->properties as $key => $value) {
|
||||||
|
$prop_table[] =
|
||||||
|
'<tr>'.
|
||||||
|
'<th>'.phutil_escape_html($key.':').'</th>'.
|
||||||
|
'<td>'.$value.'</td>'.
|
||||||
|
'</tr>';
|
||||||
|
}
|
||||||
|
$prop_table =
|
||||||
|
'<table class="aphront-headsup-property-table">'.
|
||||||
|
implode("\n", $prop_table).
|
||||||
|
'</table>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$children = $this->renderChildren();
|
||||||
|
if (strlen($children)) {
|
||||||
|
$children =
|
||||||
|
'<div class="aphront-headsup-details">'.
|
||||||
|
$children.
|
||||||
|
'</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
'<div class="aphront-headsup-panel">'.
|
||||||
|
self::renderSingleView($this->actionList).
|
||||||
|
$shortcuts.
|
||||||
|
'<div class="aphront-headsup-core">'.
|
||||||
|
$header.
|
||||||
|
$prop_table.
|
||||||
|
$children.
|
||||||
|
'</div>'.
|
||||||
|
'</div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
17
src/view/layout/headsup/panel/__init__.php
Normal file
17
src/view/layout/headsup/panel/__init__.php
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* This file is automatically generated. Lint this module to rebuild it.
|
||||||
|
* @generated
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
phutil_require_module('phabricator', 'infrastructure/celerity/api');
|
||||||
|
phutil_require_module('phabricator', 'view/base');
|
||||||
|
phutil_require_module('phabricator', 'view/widget/keyboardshortcuts');
|
||||||
|
|
||||||
|
phutil_require_module('phutil', 'markup');
|
||||||
|
phutil_require_module('phutil', 'utils');
|
||||||
|
|
||||||
|
|
||||||
|
phutil_require_source('AphrontHeadsupView.php');
|
|
@ -13,7 +13,7 @@
|
||||||
background: #cfcfbf;
|
background: #cfcfbf;
|
||||||
border: 1px solid #666622;
|
border: 1px solid #666622;
|
||||||
border-width: 0px 0px 1px 1px;
|
border-width: 0px 0px 1px 1px;
|
||||||
margin: -15px -20px 1em 0;
|
margin: -15px 0px 1em 0;
|
||||||
font-size: 11px;
|
font-size: 11px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
55
webroot/rsrc/css/aphront/headsup.css
Normal file
55
webroot/rsrc/css/aphront/headsup.css
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
/**
|
||||||
|
* @provides aphront-headsup-view-css
|
||||||
|
*/
|
||||||
|
|
||||||
|
.aphront-headsup-panel {
|
||||||
|
border: 1px solid #666622;
|
||||||
|
background: #efefdf;
|
||||||
|
font-size: 13px;
|
||||||
|
margin: .5em 2em .25em;
|
||||||
|
padding: 15px 0 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aphront-headsup-panel h1 {
|
||||||
|
border-bottom: 1px solid #aaaa99;
|
||||||
|
|
||||||
|
margin: 0 285px 8px 20px;
|
||||||
|
padding-bottom: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aphront-headsup-property-table {
|
||||||
|
font-size: 12px;
|
||||||
|
width: auto;
|
||||||
|
margin: 0 285px 15px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aphront-headsup-property-table th {
|
||||||
|
font-weight: bold;
|
||||||
|
width: 100px;
|
||||||
|
text-align: right;
|
||||||
|
padding: 3px;
|
||||||
|
color: #333333;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aphront-headsup-property-table td {
|
||||||
|
padding: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aphront-headsup-details {
|
||||||
|
clear: both;
|
||||||
|
border-top: 1px solid #666622;
|
||||||
|
background: #fbfbef;
|
||||||
|
margin-top: 1em;
|
||||||
|
padding: .75em 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aphront-headsup-object-name {
|
||||||
|
color: #666666;
|
||||||
|
margin-right: 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.aphront-headsup-keyboard-shortcuts {
|
||||||
|
float: right;
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
|
@ -2,32 +2,6 @@
|
||||||
* @provides differential-revision-detail-css
|
* @provides differential-revision-detail-css
|
||||||
*/
|
*/
|
||||||
|
|
||||||
.differential-revision-properties {
|
|
||||||
font-size: 12px;
|
|
||||||
width: 100%;
|
|
||||||
table-layout: fixed;
|
|
||||||
}
|
|
||||||
|
|
||||||
.differential-revision-properties tt {
|
|
||||||
letter-spacing: 1.1px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.differential-revision-properties th {
|
|
||||||
font-weight: bold;
|
|
||||||
width: 120px;
|
|
||||||
text-align: right;
|
|
||||||
padding: 3px 4px 3px 3px;
|
|
||||||
color: #333333;
|
|
||||||
}
|
|
||||||
|
|
||||||
.differential-revision-properties td {
|
|
||||||
padding: 3px 2px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.differential-revision-detail-core {
|
|
||||||
margin-right: 265px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.differential-unit-block,
|
.differential-unit-block,
|
||||||
.differential-lint-block {
|
.differential-lint-block {
|
||||||
padding: .5em;
|
padding: .5em;
|
||||||
|
@ -92,7 +66,3 @@
|
||||||
color: #ffff66;
|
color: #ffff66;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.differential-keyboard-shortcuts {
|
|
||||||
float: right;
|
|
||||||
}
|
|
||||||
|
|
|
@ -41,8 +41,3 @@
|
||||||
.maniphest-task-detail-core {
|
.maniphest-task-detail-core {
|
||||||
margin-right: 265px;
|
margin-right: 265px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.maniphest-task-detail-core .create-button-container {
|
|
||||||
float:right;
|
|
||||||
margin-top:-0.5em;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue