Page MenuHomePhabricator

D15487.diff
No OneTemporary

D15487.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -7,12 +7,12 @@
*/
return array(
'names' => array(
- 'core.pkg.css' => '225e8ac7',
+ 'core.pkg.css' => 'a93de192',
'core.pkg.js' => '7d8faf57',
'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => '7ba78475',
'differential.pkg.js' => 'd0cd0df6',
- 'diffusion.pkg.css' => 'f45955ed',
+ 'diffusion.pkg.css' => 'dc8e0cc2',
'diffusion.pkg.js' => '3a9a8bfa',
'maniphest.pkg.css' => '4845691a',
'maniphest.pkg.js' => '949a7498',
@@ -64,9 +64,9 @@
'rsrc/css/application/differential/revision-history.css' => '0e8eb855',
'rsrc/css/application/differential/revision-list.css' => 'f3c47d33',
'rsrc/css/application/differential/table-of-contents.css' => 'ae4b7a55',
- 'rsrc/css/application/diffusion/diffusion-icons.css' => '2941baf1',
+ 'rsrc/css/application/diffusion/diffusion-icons.css' => '3311444d',
'rsrc/css/application/diffusion/diffusion-readme.css' => '356a4f3c',
- 'rsrc/css/application/diffusion/diffusion-source.css' => '075ba788',
+ 'rsrc/css/application/diffusion/diffusion-source.css' => '68b30fd3',
'rsrc/css/application/feed/feed.css' => 'ecd4ec57',
'rsrc/css/application/files/global-drag-and-drop.css' => '5c1b47c2',
'rsrc/css/application/flag/flag.css' => '5337623f',
@@ -123,7 +123,7 @@
'rsrc/css/phui/phui-action-panel.css' => '91c7b835',
'rsrc/css/phui/phui-badge.css' => 'f25c3476',
'rsrc/css/phui/phui-big-info-view.css' => 'bd903741',
- 'rsrc/css/phui/phui-box.css' => '96a10c5d',
+ 'rsrc/css/phui/phui-box.css' => 'b2d49bae',
'rsrc/css/phui/phui-button.css' => 'a64a8de6',
'rsrc/css/phui/phui-chart.css' => '6bf6f78e',
'rsrc/css/phui/phui-crumbs-view.css' => '79d536e5',
@@ -135,28 +135,28 @@
'rsrc/css/phui/phui-fontkit.css' => '9cda225e',
'rsrc/css/phui/phui-form-view.css' => '4a1a0f5e',
'rsrc/css/phui/phui-form.css' => 'aac1d51d',
- 'rsrc/css/phui/phui-head-thing.css' => '31638812',
- 'rsrc/css/phui/phui-header-view.css' => '26cffd3d',
+ 'rsrc/css/phui/phui-head-thing.css' => 'fd311e5f',
+ 'rsrc/css/phui/phui-header-view.css' => '230254d3',
'rsrc/css/phui/phui-hovercard.css' => 'de1a2119',
'rsrc/css/phui/phui-icon-set-selector.css' => '1ab67aad',
'rsrc/css/phui/phui-icon.css' => '3f33ab57',
'rsrc/css/phui/phui-image-mask.css' => 'a8498f9c',
'rsrc/css/phui/phui-info-panel.css' => '27ea50a1',
- 'rsrc/css/phui/phui-info-view.css' => '6d7c3509',
+ 'rsrc/css/phui/phui-info-view.css' => '28efab79',
'rsrc/css/phui/phui-list.css' => '9da2aa00',
'rsrc/css/phui/phui-object-box.css' => '6b487c57',
'rsrc/css/phui/phui-object-item-list-view.css' => '18b2ce8e',
'rsrc/css/phui/phui-pager.css' => 'bea33d23',
'rsrc/css/phui/phui-pinboard-view.css' => '2495140e',
'rsrc/css/phui/phui-profile-menu.css' => '7e92a89a',
- 'rsrc/css/phui/phui-property-list-view.css' => 'b12e801c',
+ 'rsrc/css/phui/phui-property-list-view.css' => '1d42ee7c',
'rsrc/css/phui/phui-remarkup-preview.css' => '1a8f2591',
'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' => '6bbd83e2',
'rsrc/css/phui/phui-timeline-view.css' => 'a0173eba',
- 'rsrc/css/phui/phui-two-column-view.css' => '61dd6d38',
+ 'rsrc/css/phui/phui-two-column-view.css' => 'c110d0c3',
'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',
@@ -553,9 +553,9 @@
'differential-revision-history-css' => '0e8eb855',
'differential-revision-list-css' => 'f3c47d33',
'differential-table-of-contents-css' => 'ae4b7a55',
- 'diffusion-icons-css' => '2941baf1',
+ 'diffusion-icons-css' => '3311444d',
'diffusion-readme-css' => '356a4f3c',
- 'diffusion-source-css' => '075ba788',
+ 'diffusion-source-css' => '68b30fd3',
'diviner-shared-css' => 'aa3656aa',
'font-aleo' => '8bdb2835',
'font-fontawesome' => 'c43323c5',
@@ -805,7 +805,7 @@
'phui-action-panel-css' => '91c7b835',
'phui-badge-view-css' => 'f25c3476',
'phui-big-info-view-css' => 'bd903741',
- 'phui-box-css' => '96a10c5d',
+ 'phui-box-css' => 'b2d49bae',
'phui-button-css' => 'a64a8de6',
'phui-calendar-css' => 'ccabe893',
'phui-calendar-day-css' => 'd1cf6f93',
@@ -822,15 +822,15 @@
'phui-fontkit-css' => '9cda225e',
'phui-form-css' => 'aac1d51d',
'phui-form-view-css' => '4a1a0f5e',
- 'phui-head-thing-view-css' => '31638812',
- 'phui-header-view-css' => '26cffd3d',
+ 'phui-head-thing-view-css' => 'fd311e5f',
+ 'phui-header-view-css' => '230254d3',
'phui-hovercard' => '1bd28176',
'phui-hovercard-view-css' => 'de1a2119',
'phui-icon-set-selector-css' => '1ab67aad',
'phui-icon-view-css' => '3f33ab57',
'phui-image-mask-css' => 'a8498f9c',
'phui-info-panel-css' => '27ea50a1',
- 'phui-info-view-css' => '6d7c3509',
+ 'phui-info-view-css' => '28efab79',
'phui-inline-comment-view-css' => '5953c28e',
'phui-list-view-css' => '9da2aa00',
'phui-object-box-css' => '6b487c57',
@@ -838,7 +838,7 @@
'phui-pager-css' => 'bea33d23',
'phui-pinboard-view-css' => '2495140e',
'phui-profile-menu-css' => '7e92a89a',
- 'phui-property-list-view-css' => 'b12e801c',
+ 'phui-property-list-view-css' => '1d42ee7c',
'phui-remarkup-preview-css' => '1a8f2591',
'phui-segment-bar-view-css' => '46342871',
'phui-spacing-css' => '042804d6',
@@ -846,7 +846,7 @@
'phui-tag-view-css' => '6bbd83e2',
'phui-theme-css' => '027ba77e',
'phui-timeline-view-css' => 'a0173eba',
- 'phui-two-column-view-css' => '61dd6d38',
+ 'phui-two-column-view-css' => 'c110d0c3',
'phui-workboard-color-css' => 'ac6fe6a7',
'phui-workboard-view-css' => 'e6d89647',
'phui-workcard-view-css' => '3646fb96',
diff --git a/src/applications/audit/constants/PhabricatorAuditCommitStatusConstants.php b/src/applications/audit/constants/PhabricatorAuditCommitStatusConstants.php
--- a/src/applications/audit/constants/PhabricatorAuditCommitStatusConstants.php
+++ b/src/applications/audit/constants/PhabricatorAuditCommitStatusConstants.php
@@ -37,9 +37,11 @@
$color = 'red';
break;
case self::NEEDS_AUDIT:
- case self::PARTIALLY_AUDITED:
$color = 'orange';
break;
+ case self::PARTIALLY_AUDITED:
+ $color = 'yellow';
+ break;
case self::FULLY_AUDITED:
$color = 'green';
break;
@@ -53,11 +55,11 @@
public static function getStatusIcon($code) {
switch ($code) {
case self::CONCERN_RAISED:
- $icon = 'fa-exclamation-triangle';
+ $icon = 'fa-exclamation-circle';
break;
case self::NEEDS_AUDIT:
case self::PARTIALLY_AUDITED:
- $icon = 'fa-exclamation-triangle';
+ $icon = 'fa-exclamation-circle';
break;
case self::FULLY_AUDITED:
$icon = 'fa-check';
diff --git a/src/applications/differential/constants/DifferentialChangeType.php b/src/applications/differential/constants/DifferentialChangeType.php
--- a/src/applications/differential/constants/DifferentialChangeType.php
+++ b/src/applications/differential/constants/DifferentialChangeType.php
@@ -81,6 +81,21 @@
return idx($icons, $type, 'fa-file');
}
+ public static function getIconColorForFileType($type) {
+ static $icons = array(
+ self::FILE_TEXT => 'black',
+ self::FILE_IMAGE => 'black',
+ self::FILE_BINARY => 'green',
+ self::FILE_DIRECTORY => 'blue',
+ self::FILE_SYMLINK => 'blue',
+ self::FILE_DELETED => 'red',
+ self::FILE_NORMAL => 'black',
+ self::FILE_SUBMODULE => 'blue',
+ );
+
+ return idx($icons, $type, 'black');
+ }
+
public static function isOldLocationChangeType($type) {
static $types = array(
self::TYPE_MOVE_AWAY => true,
diff --git a/src/applications/differential/view/DifferentialChangesetListView.php b/src/applications/differential/view/DifferentialChangesetListView.php
--- a/src/applications/differential/view/DifferentialChangesetListView.php
+++ b/src/applications/differential/view/DifferentialChangesetListView.php
@@ -9,6 +9,7 @@
private $renderURI = '/differential/changeset/';
private $whitespace;
private $background;
+ private $header;
private $standaloneURI;
private $leftRawFileURI;
@@ -118,6 +119,11 @@
return $this;
}
+ public function setHeader($header) {
+ $this->header = $header;
+ return $this;
+ }
+
public function render() {
$viewer = $this->getViewer();
@@ -246,8 +252,12 @@
));
}
- $header = id(new PHUIHeaderView())
- ->setHeader($this->getTitle());
+ if ($this->header) {
+ $header = $this->header;
+ } else {
+ $header = id(new PHUIHeaderView())
+ ->setHeader($this->getTitle());
+ }
$content = phutil_tag(
'div',
@@ -259,8 +269,8 @@
$object_box = id(new PHUIObjectBoxView())
->setHeader($header)
- ->setCollapsed(true)
->setBackground($this->background)
+ ->setCollapsed(true)
->appendChild($content);
return $object_box;
diff --git a/src/applications/diffusion/controller/DiffusionBranchTableController.php b/src/applications/diffusion/controller/DiffusionBranchTableController.php
--- a/src/applications/diffusion/controller/DiffusionBranchTableController.php
+++ b/src/applications/diffusion/controller/DiffusionBranchTableController.php
@@ -48,26 +48,37 @@
->withRepository($repository)
->execute();
- $view = id(new DiffusionBranchTableView())
+ $table = id(new DiffusionBranchTableView())
->setUser($viewer)
->setBranches($branches)
->setCommits($commits)
->setDiffusionRequest($drequest);
- $panel = id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Branches'))
- ->setTable($view);
-
- $content = $panel;
+ $content = id(new PHUIObjectBoxView())
+ ->setHeaderText($repository->getName())
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->setTable($table);
}
$crumbs = $this->buildCrumbs(
array(
'branches' => true,
));
+ $crumbs->setBorder(true);
$pager_box = $this->renderTablePagerBox($pager);
+ $header = id(new PHUIHeaderView())
+ ->setHeader(pht('Branches'))
+ ->setHeaderIcon('fa-code-fork');
+
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $content,
+ $pager_box,
+ ));
+
return $this->newPage()
->setTitle(
array(
@@ -77,8 +88,7 @@
->setCrumbs($crumbs)
->appendChild(
array(
- $content,
- $pager_box,
+ $view,
));
}
diff --git a/src/applications/diffusion/controller/DiffusionBrowseController.php b/src/applications/diffusion/controller/DiffusionBrowseController.php
--- a/src/applications/diffusion/controller/DiffusionBrowseController.php
+++ b/src/applications/diffusion/controller/DiffusionBrowseController.php
@@ -55,20 +55,17 @@
}
private function browseSearch() {
- $drequest = $this->getDiffusionRequest();
-
- $actions = $this->buildActionView($drequest);
- $properties = $this->buildPropertyView($drequest, $actions);
- $object_box = id(new PHUIObjectBoxView())
- ->setHeader($this->buildHeaderView($drequest))
- ->addPropertyList($properties);
+ $drequest = $this->getDiffusionRequest();
+ $header = $this->buildHeaderView($drequest);
- $content = array();
+ $search_form = $this->renderSearchForm();
+ $search_results = $this->renderSearchResults();
- $content[] = $object_box;
- $content[] = $this->renderSearchForm($collapsed = false);
- $content[] = $this->renderSearchResults();
+ $search_form = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Search'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->appendChild($search_form);
$crumbs = $this->buildCrumbs(
array(
@@ -76,6 +73,14 @@
'path' => true,
'view' => 'browse',
));
+ $crumbs->setBorder(true);
+
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $search_form,
+ $search_results,
+ ));
return $this->newPage()
->setTitle(
@@ -84,7 +89,7 @@
$drequest->getRepository()->getDisplayName(),
))
->setCrumbs($crumbs)
- ->appendChild($content);
+ ->appendChild($view);
}
private function browseFile() {
@@ -218,20 +223,18 @@
require_celerity_resource('diffusion-source-css');
// Render the page.
- $view = $this->buildActionView($drequest);
- $action_list = $this->enrichActionView(
+ $view = $this->buildCurtain($drequest);
+ $curtain = $this->enrichCurtain(
$view,
$drequest,
$show_blame,
$show_color);
- $properties = $this->buildPropertyView($drequest, $action_list);
- $object_box = id(new PHUIObjectBoxView())
- ->setHeader($this->buildHeaderView($drequest))
- ->addPropertyList($properties);
+ $properties = $this->buildPropertyView($drequest);
+ $header = $this->buildHeaderView($drequest);
+ $header->setHeaderIcon('fa-file-code-o');
$content = array();
- $content[] = $object_box;
$follow = $request->getStr('follow');
if ($follow) {
@@ -277,17 +280,31 @@
'path' => true,
'view' => 'browse',
));
+ $crumbs->setBorder(true);
$basename = basename($this->getDiffusionRequest()->getPath());
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setCurtain($curtain)
+ ->setMainColumn(array(
+ $content,
+ ));
+
+ if ($properties) {
+ $view->addPropertySection(pht('DETAILS'), $properties);
+ }
+
+ $title = array($basename, $repository->getDisplayName());
+
return $this->newPage()
- ->setTitle(
- array(
- $basename,
- $repository->getDisplayName(),
- ))
+ ->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($content);
+ ->appendChild(
+ array(
+ $view,
+ ));
+
}
public function browseDirectory(
@@ -300,23 +317,21 @@
$reason = $results->getReasonForEmptyResultSet();
- $content = array();
- $actions = $this->buildActionView($drequest);
- $properties = $this->buildPropertyView($drequest, $actions);
+ $curtain = $this->buildCurtain($drequest);
+ $details = $this->buildPropertyView($drequest);
- $object_box = id(new PHUIObjectBoxView())
- ->setHeader($this->buildHeaderView($drequest))
- ->addPropertyList($properties);
+ $header = $this->buildHeaderView($drequest);
+ $header->setHeaderIcon('fa-folder-open');
- $content[] = $object_box;
- $content[] = $this->renderSearchForm($collapsed = true);
+ $search_form = $this->renderSearchForm();
+ $empty_result = null;
+ $browse_panel = null;
if (!$results->isValidResults()) {
$empty_result = new DiffusionEmptyResultView();
$empty_result->setDiffusionRequest($drequest);
$empty_result->setDiffusionBrowseResultSet($results);
$empty_result->setView($request->getStr('view'));
- $content[] = $empty_result;
} else {
$phids = array();
foreach ($results->getPaths() as $result) {
@@ -331,21 +346,30 @@
$phids = array_keys($phids);
$handles = $this->loadViewerHandles($phids);
- $browse_table = new DiffusionBrowseTableView();
- $browse_table->setDiffusionRequest($drequest);
- $browse_table->setHandles($handles);
- $browse_table->setPaths($results->getPaths());
- $browse_table->setUser($request->getUser());
+ $browse_table = id(new DiffusionBrowseTableView())
+ ->setDiffusionRequest($drequest)
+ ->setHandles($handles)
+ ->setPaths($results->getPaths())
+ ->setUser($request->getUser());
- $browse_panel = new PHUIObjectBoxView();
- $browse_panel->setHeaderText($drequest->getPath(), '/');
- $browse_panel->setTable($browse_table);
+ $browse_header = id(new PHUIHeaderView())
+ ->setHeader(nonempty(basename($drequest->getPath()), '/'))
+ ->setHeaderIcon('fa-folder-open');
- $content[] = $browse_panel;
+ $browse_panel = id(new PHUIObjectBoxView())
+ ->setHeader($browse_header)
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->setTable($browse_table);
+
+ $browse_panel->setShowHide(
+ array(pht('Show Search')),
+ pht('Hide Search'),
+ $search_form,
+ '#');
}
- $content[] = $this->buildOpenRevisions();
- $content[] = $this->renderDirectoryReadme($results);
+ $open_revisions = $this->buildOpenRevisions();
+ $readme = $this->renderDirectoryReadme($results);
$crumbs = $this->buildCrumbs(
array(
@@ -355,18 +379,34 @@
));
$pager_box = $this->renderTablePagerBox($pager);
+ $crumbs->setBorder(true);
+
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setCurtain($curtain)
+ ->setMainColumn(array(
+ $empty_result,
+ $browse_panel,
+ ))
+ ->setFooter(array(
+ $open_revisions,
+ $readme,
+ $pager_box,
+ ));
+
+ if ($details) {
+ $view->addPropertySection(pht('DETAILS'), $details);
+ }
return $this->newPage()
- ->setTitle(
- array(
+ ->setTitle(array(
nonempty(basename($drequest->getPath()), '/'),
$repository->getDisplayName(),
))
->setCrumbs($crumbs)
->appendChild(
array(
- $content,
- $pager_box,
+ $view,
));
}
@@ -431,6 +471,7 @@
$box = id(new PHUIObjectBoxView())
->setHeaderText($header)
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
$pager_box = $this->renderTablePagerBox($pager);
@@ -697,12 +738,14 @@
$edit = $this->renderEditButton();
$file = $this->renderFileButton();
$header = id(new PHUIHeaderView())
- ->setHeader(pht('File Contents'))
+ ->setHeader(basename($this->getDiffusionRequest()->getPath()))
+ ->setHeaderIcon('fa-file-code-o')
->addActionLink($edit)
->addActionLink($file);
$corpus = id(new PHUIObjectBoxView())
->setHeader($header)
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->appendChild($corpus)
->setCollapsed(true);
@@ -737,16 +780,16 @@
return $corpus;
}
- private function enrichActionView(
- PhabricatorActionListView $view,
+ private function enrichCurtain(
+ PHUICurtainView $curtain,
DiffusionRequest $drequest,
$show_blame,
$show_color) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$base_uri = $this->getRequest()->getRequestURI();
- $view->addAction(
+ $curtain->addAction(
id(new PhabricatorActionView())
->setName(pht('Show Last Change'))
->setHref(
@@ -766,7 +809,7 @@
$blame_value = 1;
}
- $view->addAction(
+ $curtain->addAction(
id(new PhabricatorActionView())
->setName($blame_text)
->setHref($base_uri->alter('blame', $blame_value))
@@ -784,7 +827,7 @@
$highlight_value = 1;
}
- $view->addAction(
+ $curtain->addAction(
id(new PhabricatorActionView())
->setName($highlight_text)
->setHref($base_uri->alter('color', $highlight_value))
@@ -809,14 +852,57 @@
))->alter('lint', '');
}
- $view->addAction(
+ $curtain->addAction(
id(new PhabricatorActionView())
->setName($lint_text)
->setHref($href)
->setIcon('fa-exclamation-triangle')
->setDisabled(!$href));
- return $view;
+
+ $repository = $drequest->getRepository();
+
+ $owners = 'PhabricatorOwnersApplication';
+ if (PhabricatorApplication::isClassInstalled($owners)) {
+ $package_query = id(new PhabricatorOwnersPackageQuery())
+ ->setViewer($viewer)
+ ->withStatuses(array(PhabricatorOwnersPackage::STATUS_ACTIVE))
+ ->withControl(
+ $repository->getPHID(),
+ array(
+ $drequest->getPath(),
+ ));
+
+ $package_query->execute();
+
+ $packages = $package_query->getControllingPackagesForPath(
+ $repository->getPHID(),
+ $drequest->getPath());
+
+ if ($packages) {
+ $ownership = id(new PHUIStatusListView())
+ ->setUser($viewer);
+
+ foreach ($packages as $package) {
+ $icon = 'fa-list-alt';
+ $color = 'grey';
+
+ $item = id(new PHUIStatusItemView())
+ ->setIcon($icon, $color)
+ ->setTarget($viewer->renderHandle($package->getPHID()));
+
+ $ownership->addItem($item);
+ }
+ } else {
+ $ownership = phutil_tag('em', array(), pht('None'));
+ }
+
+ $curtain->newPanel()
+ ->setHeaderText(pht('Owners'))
+ ->appendChild($ownership);
+ }
+
+ return $curtain;
}
private function renderEditButton() {
@@ -1265,11 +1351,13 @@
$file = $this->renderFileButton($file_uri);
$header = id(new PHUIHeaderView())
- ->setHeader(pht('Image'))
- ->addActionLink($file);
+ ->setHeader(basename($this->getDiffusionRequest()->getPath()))
+ ->addActionLink($file)
+ ->setHeaderIcon('fa-file-image-o');
return id(new PHUIObjectBoxView())
->setHeader($header)
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($properties);
}
@@ -1282,11 +1370,12 @@
$file = $this->renderFileButton($file_uri);
$header = id(new PHUIHeaderView())
- ->setHeader(pht('Details'))
+ ->setHeader(pht('DETAILS'))
->addActionLink($file);
$box = id(new PHUIObjectBoxView())
->setHeader($header)
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->appendChild($text);
return $box;
@@ -1298,7 +1387,7 @@
->appendChild($message);
$header = id(new PHUIHeaderView())
- ->setHeader(pht('Details'));
+ ->setHeader(pht('DETAILS'));
$box = id(new PHUIObjectBoxView())
->setHeader($header)
@@ -1461,12 +1550,12 @@
return "{$summary}\n{$date} \xC2\xB7 {$author}";
}
- protected function renderSearchForm($collapsed) {
+ protected function renderSearchForm() {
$drequest = $this->getDiffusionRequest();
$forms = array();
$form = id(new AphrontFormView())
- ->setUser($this->getRequest()->getUser())
+ ->setUser($this->getViewer())
->setMethod('GET');
switch ($drequest->getRepository()->getVersionControlSystem()) {
@@ -1492,22 +1581,10 @@
break;
}
- $filter = new AphrontListFilterView();
- $filter->appendChild($forms);
-
- if ($collapsed) {
- $filter->setCollapsed(
- pht('Show Search'),
- pht('Hide Search'),
- pht('Search for file names or content in this directory.'),
- '#');
- }
+ require_celerity_resource('diffusion-icons-css');
+ $form_box = phutil_tag_div('diffusion-search-boxen', $forms);
- $filter = id(new PHUIBoxView())
- ->addClass('mlt mlb')
- ->appendChild($filter);
-
- return $filter;
+ return $form_box;
}
protected function markupText($text) {
@@ -1526,28 +1603,29 @@
}
protected function buildHeaderView(DiffusionRequest $drequest) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
+
+ $tag = $this->renderCommitHashTag($drequest);
$header = id(new PHUIHeaderView())
->setUser($viewer)
->setHeader($this->renderPathLinks($drequest, $mode = 'browse'))
- ->setPolicyObject($drequest->getRepository());
+ ->addTag($tag);
return $header;
}
- protected function buildActionView(DiffusionRequest $drequest) {
- $viewer = $this->getRequest()->getUser();
+ protected function buildCurtain(DiffusionRequest $drequest) {
+ $viewer = $this->getViewer();
- $view = id(new PhabricatorActionListView())
- ->setUser($viewer);
+ $curtain = $this->newCurtainView($drequest);
$history_uri = $drequest->generateURI(
array(
'action' => 'history',
));
- $view->addAction(
+ $curtain->addAction(
id(new PhabricatorActionView())
->setName(pht('View History'))
->setHref($history_uri)
@@ -1559,40 +1637,22 @@
'commit' => '',
'action' => 'browse',
));
- $view->addAction(
+ $curtain->addAction(
id(new PhabricatorActionView())
->setName(pht('Jump to HEAD'))
->setHref($head_uri)
->setIcon('fa-home')
->setDisabled(!$behind_head));
- return $view;
+ return $curtain;
}
protected function buildPropertyView(
- DiffusionRequest $drequest,
- PhabricatorActionListView $actions) {
+ DiffusionRequest $drequest) {
$viewer = $this->getViewer();
-
$view = id(new PHUIPropertyListView())
- ->setUser($viewer)
- ->setActionList($actions);
-
- $stable_commit = $drequest->getStableCommit();
-
- $view->addProperty(
- pht('Commit'),
- phutil_tag(
- 'a',
- array(
- 'href' => $drequest->generateURI(
- array(
- 'action' => 'commit',
- 'commit' => $stable_commit,
- )),
- ),
- $drequest->getRepository()->formatCommitName($stable_commit)));
+ ->setUser($viewer);
if ($drequest->getSymbolicType() == 'tag') {
$symbolic = $drequest->getSymbolicCommit();
@@ -1616,47 +1676,11 @@
}
}
- $repository = $drequest->getRepository();
-
- $owners = 'PhabricatorOwnersApplication';
- if (PhabricatorApplication::isClassInstalled($owners)) {
- $package_query = id(new PhabricatorOwnersPackageQuery())
- ->setViewer($viewer)
- ->withStatuses(array(PhabricatorOwnersPackage::STATUS_ACTIVE))
- ->withControl(
- $repository->getPHID(),
- array(
- $drequest->getPath(),
- ));
-
- $package_query->execute();
-
- $packages = $package_query->getControllingPackagesForPath(
- $repository->getPHID(),
- $drequest->getPath());
-
- if ($packages) {
- $ownership = id(new PHUIStatusListView())
- ->setUser($viewer);
-
- foreach ($packages as $package) {
- $icon = 'fa-list-alt';
- $color = 'grey';
-
- $item = id(new PHUIStatusItemView())
- ->setIcon($icon, $color)
- ->setTarget($viewer->renderHandle($package->getPHID()));
-
- $ownership->addItem($item);
- }
- } else {
- $ownership = phutil_tag('em', array(), pht('None'));
- }
-
- $view->addProperty(pht('Packages'), $ownership);
+ if ($view->hasAnyProperties()) {
+ return $view;
}
- return $view;
+ return null;
}
private function buildOpenRevisions() {
diff --git a/src/applications/diffusion/controller/DiffusionChangeController.php b/src/applications/diffusion/controller/DiffusionChangeController.php
--- a/src/applications/diffusion/controller/DiffusionChangeController.php
+++ b/src/applications/diffusion/controller/DiffusionChangeController.php
@@ -15,8 +15,6 @@
$viewer = $this->getViewer();
$drequest = $this->getDiffusionRequest();
- $content = array();
-
$data = $this->callConduitWithDiffusionRequest(
'diffusion.diffquery',
array(
@@ -42,9 +40,11 @@
0 => $changeset,
);
+ $changeset_header = $this->buildChangesetHeader($drequest);
+
$changeset_view = new DifferentialChangesetListView();
- $changeset_view->setTitle(pht('Change'));
$changeset_view->setChangesets($changesets);
+ $changeset_view->setBackground(PHUIObjectBoxView::BLUE_PROPERTY);
$changeset_view->setVisibleChangesets($changesets);
$changeset_view->setRenderingReferences(
array(
@@ -68,11 +68,11 @@
$changeset_view->setWhitespace(
DifferentialChangesetParser::WHITESPACE_SHOW_ALL);
$changeset_view->setUser($viewer);
+ $changeset_view->setHeader($changeset_header);
// TODO: This is pretty awkward, unify the CSS between Diffusion and
// Differential better.
require_celerity_resource('differential-core-view-css');
- $content[] = $changeset_view->render();
$crumbs = $this->buildCrumbs(
array(
@@ -80,19 +80,18 @@
'path' => true,
'view' => 'change',
));
+ $crumbs->setBorder(true);
$links = $this->renderPathLinks($drequest, $mode = 'browse');
+ $header = $this->buildHeader($drequest, $links);
- $header = id(new PHUIHeaderView())
- ->setHeader($links)
- ->setUser($viewer)
- ->setPolicyObject($drequest->getRepository());
- $actions = $this->buildActionView($drequest);
- $properties = $this->buildPropertyView($drequest, $actions);
-
- $object_box = id(new PHUIObjectBoxView())
+ $view = id(new PHUITwoColumnView())
->setHeader($header)
- ->addPropertyList($properties);
+ ->setMainColumn(array(
+ ))
+ ->setFooter(array(
+ $changeset_view,
+ ));
return $this->newPage()
->setTitle(
@@ -103,25 +102,41 @@
->setCrumbs($crumbs)
->appendChild(
array(
- $object_box,
- $content,
+ $view,
));
}
- private function buildActionView(DiffusionRequest $drequest) {
- $viewer = $this->getRequest()->getUser();
+ private function buildHeader(
+ DiffusionRequest $drequest,
+ $links) {
+ $viewer = $this->getViewer();
- $view = id(new PhabricatorActionListView())
- ->setUser($viewer);
+ $tag = $this->renderCommitHashTag($drequest);
+
+ $header = id(new PHUIHeaderView())
+ ->setHeader($links)
+ ->setUser($viewer)
+ ->setPolicyObject($drequest->getRepository())
+ ->addTag($tag);
+
+ return $header;
+ }
+
+ private function buildChangesetHeader(DiffusionRequest $drequest) {
+ $viewer = $this->getViewer();
+
+ $header = id(new PHUIHeaderView())
+ ->setHeader(pht('Changes'));
$history_uri = $drequest->generateURI(
array(
'action' => 'history',
));
- $view->addAction(
- id(new PhabricatorActionView())
- ->setName(pht('View History'))
+ $header->addActionLink(
+ id(new PHUIButtonView())
+ ->setTag('a')
+ ->setText(pht('View History'))
->setHref($history_uri)
->setIcon('fa-clock-o'));
@@ -130,13 +145,14 @@
'action' => 'browse',
));
- $view->addAction(
- id(new PhabricatorActionView())
- ->setName(pht('Browse Content'))
+ $header->addActionLink(
+ id(new PHUIButtonView())
+ ->setTag('a')
+ ->setText(pht('Browse Content'))
->setHref($browse_uri)
->setIcon('fa-files-o'));
- return $view;
+ return $header;
}
protected function buildPropertyView(
diff --git a/src/applications/diffusion/controller/DiffusionCommitController.php b/src/applications/diffusion/controller/DiffusionCommitController.php
--- a/src/applications/diffusion/controller/DiffusionCommitController.php
+++ b/src/applications/diffusion/controller/DiffusionCommitController.php
@@ -24,8 +24,7 @@
}
$drequest = $this->getDiffusionRequest();
-
- $user = $request->getUser();
+ $viewer = $request->getUser();
if ($request->getStr('diff')) {
return $this->buildRawDiffResponse($drequest);
@@ -33,9 +32,8 @@
$repository = $drequest->getRepository();
- $content = array();
$commit = id(new DiffusionCommitQuery())
- ->setViewer($request->getUser())
+ ->setViewer($viewer)
->withRepository($repository)
->withIdentifiers(array($drequest->getCommit()))
->needCommitData(true)
@@ -45,6 +43,7 @@
$crumbs = $this->buildCrumbs(array(
'commit' => true,
));
+ $crumbs->setBorder(true);
if (!$commit) {
if (!$this->getCommitExists()) {
@@ -70,10 +69,11 @@
$audit_requests = $commit->getAudits();
$this->auditAuthorityPHIDs =
- PhabricatorAuditCommentEditor::loadAuditPHIDsForUser($user);
+ PhabricatorAuditCommentEditor::loadAuditPHIDsForUser($viewer);
$commit_data = $commit->getCommitData();
$is_foreign = $commit_data->getCommitDetail('foreign-svn-stub');
+ $error_panel = null;
if ($is_foreign) {
$subpath = $commit_data->getCommitDetail('svn-subpath');
@@ -87,43 +87,41 @@
"didn't affect the tracked subdirectory ('%s'), so no ".
"information is available.",
$subpath));
- $content[] = $error_panel;
} else {
$engine = PhabricatorMarkupEngine::newDifferentialMarkupEngine();
- $engine->setConfig('viewer', $user);
+ $engine->setConfig('viewer', $viewer);
- $headsup_view = id(new PHUIHeaderView())
+ $commit_tag = $this->renderCommitHashTag($drequest);
+ $header = id(new PHUIHeaderView())
->setHeader(nonempty($commit->getSummary(), pht('Commit Detail')))
- ->setSubheader(pht('Commit: %s', $commit->getCommitIdentifier()));
-
- $headsup_actions = $this->renderHeadsupActionList($commit, $repository);
+ ->setHeaderIcon('fa-code-fork')
+ ->addTag($commit_tag);
+
+ if ($commit->getAuditStatus()) {
+ $icon = PhabricatorAuditCommitStatusConstants::getStatusIcon(
+ $commit->getAuditStatus());
+ $color = PhabricatorAuditCommitStatusConstants::getStatusColor(
+ $commit->getAuditStatus());
+ $status = PhabricatorAuditCommitStatusConstants::getStatusName(
+ $commit->getAuditStatus());
+
+ $header->setStatus($icon, $color, $status);
+ }
- $commit_properties = $this->loadCommitProperties(
+ $curtain = $this->buildCurtain($commit, $repository);
+ $subheader = $this->buildSubheaderView($commit, $commit_data);
+ $details = $this->buildPropertyListView(
$commit,
$commit_data,
$audit_requests);
- $property_list = id(new PHUIPropertyListView())
- ->setHasKeyboardShortcuts(true)
- ->setUser($user)
- ->setObject($commit);
- foreach ($commit_properties as $key => $value) {
- $property_list->addProperty($key, $value);
- }
$message = $commit_data->getCommitMessage();
$revision = $commit->getCommitIdentifier();
$message = $this->linkBugtraq($message);
-
$message = $engine->markupText($message);
- $property_list->invokeWillRenderEvent();
- $property_list->setActionList($headsup_actions);
-
$detail_list = new PHUIPropertyListView();
- $detail_list->addSectionHeader(
- pht('Description'),
- PHUIPropertyListView::ICON_SUMMARY);
$detail_list->addTextContent(
phutil_tag(
'div',
@@ -132,19 +130,14 @@
),
$message));
- $headsup_view->setTall(true);
-
- $object_box = id(new PHUIObjectBoxView())
- ->setHeader($headsup_view)
- ->setFormErrors($this->getCommitErrors())
- ->addPropertyList($property_list)
- ->addPropertyList($detail_list);
-
- $content[] = $object_box;
+ if ($this->getCommitErrors()) {
+ $error_panel = id(new PHUIInfoView())
+ ->appendChild($this->getCommitErrors())
+ ->setSeverity(PHUIInfoView::SEVERITY_WARNING);
+ }
}
- $content[] = $this->buildComments($commit);
-
+ $timeline = $this->buildComments($commit);
$hard_limit = 1000;
if ($commit->isImported()) {
@@ -161,10 +154,10 @@
$changes = array_slice($changes, 0, $hard_limit);
}
- $content[] = $this->buildMergesTable($commit);
+ $merge_table = $this->buildMergesTable($commit);
$highlighted_audits = $commit->getAuthorityAudits(
- $user,
+ $viewer,
$this->auditAuthorityPHIDs);
$count = count($changes);
@@ -179,32 +172,35 @@
}
$show_changesets = false;
+ $info_panel = null;
+ $change_list = null;
+ $change_table = null;
if ($bad_commit) {
- $content[] = $this->renderStatusMessage(
+ $info_panel = $this->renderStatusMessage(
pht('Bad Commit'),
$bad_commit['description']);
} else if ($is_foreign) {
// Don't render anything else.
} else if (!$commit->isImported()) {
- $content[] = $this->renderStatusMessage(
+ $info_panel = $this->renderStatusMessage(
pht('Still Importing...'),
pht(
'This commit is still importing. Changes will be visible once '.
'the import finishes.'));
} else if (!count($changes)) {
- $content[] = $this->renderStatusMessage(
+ $info_panel = $this->renderStatusMessage(
pht('Empty Commit'),
pht(
'This commit is empty and does not affect any paths.'));
} else if ($was_limited) {
- $content[] = $this->renderStatusMessage(
+ $info_panel = $this->renderStatusMessage(
pht('Enormous Commit'),
pht(
'This commit is enormous, and affects more than %d files. '.
'Changes are not shown.',
$hard_limit));
} else if (!$this->getCommitExists()) {
- $content[] = $this->renderStatusMessage(
+ $info_panel = $this->renderStatusMessage(
pht('Commit No Longer Exists'),
pht('This commit no longer exists in the repository.'));
} else {
@@ -214,7 +210,7 @@
// changes inline even if there are more than the soft limit.
$show_all_details = $request->getBool('show_all');
- $header = id(new PHUIHeaderView())
+ $change_header = id(new PHUIHeaderView())
->setHeader(pht('Changes (%s)', new PhutilNumber($count)));
$warning_view = null;
@@ -228,24 +224,23 @@
$warning_view = id(new PHUIInfoView())
->setSeverity(PHUIInfoView::SEVERITY_WARNING)
->setTitle(pht('Very Large Commit'))
- ->addButton($button)
->appendChild(
pht('This commit is very large. Load each file individually.'));
+
+ $change_header->addActionLink($button);
}
$changesets = DiffusionPathChange::convertToDifferentialChangesets(
- $user,
+ $viewer,
$changes);
// TODO: This table and panel shouldn't really be separate, but we need
// to clean up the "Load All Files" interaction first.
$change_table = $this->buildTableOfContents(
$changesets,
- $header,
+ $change_header,
$warning_view);
- $content[] = $change_table;
-
$vcs = $repository->getVersionControlSystem();
switch ($vcs) {
case PhabricatorRepositoryType::REPOSITORY_TYPE_SVN:
@@ -291,7 +286,7 @@
} else {
$visible_changesets = array();
$inlines = PhabricatorAuditInlineComment::loadDraftAndPublishedComments(
- $user,
+ $viewer,
$commit->getPHID());
$path_ids = mpull($inlines, null, 'getPathID');
foreach ($changesets as $key => $changeset) {
@@ -308,10 +303,10 @@
$change_list->setChangesets($changesets);
$change_list->setVisibleChangesets($visible_changesets);
$change_list->setRenderingReferences($references);
- $change_list->setRenderURI(
- $repository->getPathURI('diff/'));
+ $change_list->setRenderURI($repository->getPathURI('diff/'));
$change_list->setRepository($repository);
- $change_list->setUser($user);
+ $change_list->setUser($viewer);
+ $change_list->setBackground(PHUIObjectBoxView::BLUE_PROPERTY);
// TODO: Try to setBranch() to something reasonable here?
@@ -327,48 +322,74 @@
$change_list->setInlineCommentControllerURI(
'/diffusion/inline/edit/'.phutil_escape_uri($commit->getPHID()).'/');
- $content[] = $change_list->render();
}
- $content[] = $this->renderAddCommentPanel($commit, $audit_requests);
+ $add_comment = $this->renderAddCommentPanel($commit, $audit_requests);
- $prefs = $user->loadPreferences();
+ $prefs = $viewer->loadPreferences();
$pref_filetree = PhabricatorUserPreferences::PREFERENCE_DIFF_FILETREE;
$pref_collapse = PhabricatorUserPreferences::PREFERENCE_NAV_COLLAPSED;
$show_filetree = $prefs->getPreference($pref_filetree);
$collapsed = $prefs->getPreference($pref_collapse);
+ $nav = null;
if ($show_changesets && $show_filetree) {
$nav = id(new DifferentialChangesetFileTreeSideNavBuilder())
->setTitle($commit->getDisplayName())
->setBaseURI(new PhutilURI($commit->getURI()))
->build($changesets)
->setCrumbs($crumbs)
- ->setCollapsed((bool)$collapsed)
- ->appendChild($content);
- $content = $nav;
- } else {
- $content = array($crumbs, $content);
+ ->setCollapsed((bool)$collapsed);
}
- return $this->buildApplicationPage(
- $content,
- array(
- 'title' => $commit->getDisplayName(),
- 'pageObjects' => array($commit->getPHID()),
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setSubheader($subheader)
+ ->setMainColumn(array(
+ $error_panel,
+ $timeline,
+ $merge_table,
+ $info_panel,
+ ))
+ ->setFooter(array(
+ $change_table,
+ $change_list,
+ $add_comment,
+ ))
+ ->addPropertySection(pht('DESCRIPTION'), $detail_list)
+ ->addPropertySection(pht('DETAILS'), $details)
+ ->setCurtain($curtain);
+
+ $page = $this->newPage()
+ ->setTitle($commit->getDisplayName())
+ ->setCrumbs($crumbs)
+ ->setPageObjectPHIDS(array($commit->getPHID()))
+ ->appendChild(
+ array(
+ $view,
));
+
+ if ($nav) {
+ $page->setNavigation($nav);
+ }
+
+ return $page;
+
}
- private function loadCommitProperties(
+ private function buildPropertyListView(
PhabricatorRepositoryCommit $commit,
PhabricatorRepositoryCommitData $data,
array $audit_requests) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$commit_phid = $commit->getPHID();
$drequest = $this->getDiffusionRequest();
$repository = $drequest->getRepository();
+ $view = id(new PHUIPropertyListView())
+ ->setUser($this->getRequest()->getUser());
+
$edge_query = id(new PhabricatorEdgeQuery())
->withSourcePHIDs(array($commit_phid))
->withEdgeTypes(array(
@@ -432,31 +453,6 @@
$props = array();
- if ($commit->getAuditStatus()) {
- $status = PhabricatorAuditCommitStatusConstants::getStatusName(
- $commit->getAuditStatus());
- $tag = id(new PHUITagView())
- ->setType(PHUITagView::TYPE_STATE)
- ->setName($status);
-
- switch ($commit->getAuditStatus()) {
- case PhabricatorAuditCommitStatusConstants::NEEDS_AUDIT:
- $tag->setBackgroundColor(PHUITagView::COLOR_ORANGE);
- break;
- case PhabricatorAuditCommitStatusConstants::CONCERN_RAISED:
- $tag->setBackgroundColor(PHUITagView::COLOR_RED);
- break;
- case PhabricatorAuditCommitStatusConstants::PARTIALLY_AUDITED:
- $tag->setBackgroundColor(PHUITagView::COLOR_BLUE);
- break;
- case PhabricatorAuditCommitStatusConstants::FULLY_AUDITED:
- $tag->setBackgroundColor(PHUITagView::COLOR_GREEN);
- break;
- }
-
- $props['Status'] = $tag;
- }
-
if ($audit_requests) {
$user_requests = array();
$other_requests = array();
@@ -469,37 +465,21 @@
}
if ($user_requests) {
- $props['Auditors'] = $this->renderAuditStatusView(
- $user_requests);
+ $view->addProperty(
+ pht('Auditors'),
+ $this->renderAuditStatusView($user_requests));
}
if ($other_requests) {
- $props['Project/Package Auditors'] = $this->renderAuditStatusView(
- $other_requests);
+ $view->addProperty(
+ pht('Project/Package Auditors'),
+ $this->renderAuditStatusView($other_requests));
}
}
$author_phid = $data->getCommitDetail('authorPHID');
$author_name = $data->getAuthorName();
-
- if (!$repository->isSVN()) {
- $authored_info = id(new PHUIStatusItemView());
-
- $author_epoch = $data->getCommitDetail('authorEpoch');
- if ($author_epoch !== null) {
- $authored_info->setNote(
- phabricator_datetime($author_epoch, $viewer));
- }
-
- if ($author_phid) {
- $authored_info->setTarget($handles[$author_phid]->renderLink());
- } else if (strlen($author_name)) {
- $authored_info->setTarget($author_name);
- }
-
- $props['Authored'] = id(new PHUIStatusListView())
- ->addItem($authored_info);
- }
+ $author_epoch = $data->getCommitDetail('authorEpoch');
$committed_info = id(new PHUIStatusItemView())
->setNote(phabricator_datetime($commit->getEpoch(), $viewer));
@@ -516,8 +496,9 @@
$committed_info->setTarget($author_name);
}
- $props['Committed'] = id(new PHUIStatusListView())
- ->addItem($committed_info);
+ $view->addProperty(
+ pht('Committed'),
+ $committed_info);
if ($push_logs) {
$pushed_list = new PHUIStatusListView();
@@ -529,36 +510,49 @@
$pushed_list->addItem($pushed_item);
}
- $props['Pushed'] = $pushed_list;
+ $view->addProperty(
+ pht('Pushed'),
+ $pushed_list);
}
$reviewer_phid = $data->getCommitDetail('reviewerPHID');
if ($reviewer_phid) {
- $props['Reviewer'] = $handles[$reviewer_phid]->renderLink();
+ $view->addProperty(
+ pht('Reviewer'),
+ $handles[$reviewer_phid]->renderLink());
}
if ($revision_phid) {
- $props['Differential Revision'] = $handles[$revision_phid]->renderLink();
+ $view->addProperty(
+ pht('Differential Revision'),
+ $handles[$revision_phid]->renderLink());
}
$parents = $this->getCommitParents();
if ($parents) {
- $props['Parents'] = $viewer->renderHandleList(mpull($parents, 'getPHID'));
+ $view->addProperty(
+ pht('Parents'),
+ $viewer->renderHandleList(mpull($parents, 'getPHID')));
}
if ($this->getCommitExists()) {
- $props['Branches'] = phutil_tag(
+ $view->addProperty(
+ pht('Branches'),
+ phutil_tag(
'span',
array(
'id' => 'commit-branches',
),
- pht('Unknown'));
- $props['Tags'] = phutil_tag(
+ pht('Unknown')));
+
+ $view->addProperty(
+ pht('Tags'),
+ phutil_tag(
'span',
array(
'id' => 'commit-tags',
),
- pht('Unknown'));
+ pht('Unknown')));
$identifier = $commit->getCommitIdentifier();
$root = $repository->getPathURI("commit/{$identifier}");
@@ -581,16 +575,21 @@
),
$ref_data['ref']);
}
- $props['References'] = phutil_implode_html(', ', $ref_links);
+ $view->addProperty(
+ pht('References'),
+ phutil_implode_html(', ', $ref_links));
}
if ($reverts_phids) {
- $props[pht('Reverts')] = $viewer->renderHandleList($reverts_phids);
+ $view->addProperty(
+ pht('Reverts'),
+ $viewer->renderHandleList($reverts_phids));
}
if ($reverted_by_phids) {
- $props[pht('Reverted By')] = $viewer->renderHandleList(
- $reverted_by_phids);
+ $view->addProperty(
+ pht('Reverted By'),
+ $viewer->renderHandleList($reverted_by_phids));
}
if ($task_phids) {
@@ -599,12 +598,60 @@
$task_list[] = $handles[$phid]->renderLink();
}
$task_list = phutil_implode_html(phutil_tag('br'), $task_list);
- $props['Tasks'] = $task_list;
+ $view->addProperty(
+ pht('Tasks'),
+ $task_list);
}
- return $props;
+ return $view;
}
+ private function buildSubheaderView(
+ PhabricatorRepositoryCommit $commit,
+ PhabricatorRepositoryCommitData $data) {
+
+ $viewer = $this->getViewer();
+ $drequest = $this->getDiffusionRequest();
+ $repository = $drequest->getRepository();
+
+ if ($repository->isSVN()) {
+ return null;
+ }
+
+ $author_phid = $data->getCommitDetail('authorPHID');
+ $author_name = $data->getAuthorName();
+ $author_epoch = $data->getCommitDetail('authorEpoch');
+ $date = null;
+ if ($author_epoch !== null) {
+ $date = phabricator_datetime($author_epoch, $viewer);
+ }
+
+ if ($author_phid) {
+ $handles = $viewer->loadHandles(array($author_phid));
+ $image_uri = $handles[$author_phid]->getImageURI();
+ $image_href = $handles[$author_phid]->getURI();
+ $author = $handles[$author_phid]->renderLink();
+ } else if (strlen($author_name)) {
+ $author = $author_name;
+ $image_uri = null;
+ $image_href = null;
+ }
+
+ $author = phutil_tag('strong', array(), $author);
+ if ($date) {
+ $content = pht('Authored by %s on %s.', $author, $date);
+ } else {
+ $content = pht('Authored by %s.', $author);
+ }
+
+ return id(new PHUIHeadThingView())
+ ->setImage($image_uri)
+ ->setImageHref($image_href)
+ ->setContent($content);
+
+ }
+
+
private function buildComments(PhabricatorRepositoryCommit $commit) {
$timeline = $this->buildTransactionTimeline(
$commit,
@@ -619,11 +666,11 @@
assert_instances_of($audit_requests, 'PhabricatorRepositoryAuditRequest');
$request = $this->getRequest();
- $user = $request->getUser();
+ $viewer = $request->getUser();
- if (!$user->isLoggedIn()) {
+ if (!$viewer->isLoggedIn()) {
return id(new PhabricatorApplicationTransactionCommentView())
- ->setUser($user)
+ ->setUser($viewer)
->setRequestURI($request->getRequestURI());
}
@@ -638,7 +685,7 @@
$draft = id(new PhabricatorDraft())->loadOneWhere(
'authorPHID = %s AND draftKey = %s',
- $user->getPHID(),
+ $viewer->getPHID(),
'diffusion-audit-'.$commit->getID());
if ($draft) {
$draft = $draft->getDraft();
@@ -652,7 +699,7 @@
$auditor_source = new DiffusionAuditorDatasource();
$form = id(new AphrontFormView())
- ->setUser($user)
+ ->setUser($viewer)
->setAction('/audit/addcomment/')
->addHiddenInput('commit', $commit->getPHID())
->appendChild(
@@ -685,7 +732,7 @@
->setName('content')
->setValue($draft)
->setID('audit-content')
- ->setUser($user))
+ ->setUser($viewer))
->appendChild(
id(new AphrontFormSubmitControl())
->setValue(pht('Submit')));
@@ -771,13 +818,13 @@
PhabricatorRepositoryCommit $commit,
array $audit_requests) {
assert_instances_of($audit_requests, 'PhabricatorRepositoryAuditRequest');
- $user = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
- $user_is_author = ($commit->getAuthorPHID() == $user->getPHID());
+ $user_is_author = ($commit->getAuthorPHID() == $viewer->getPHID());
$user_request = null;
foreach ($audit_requests as $audit_request) {
- if ($audit_request->getAuditorPHID() == $user->getPHID()) {
+ if ($audit_request->getAuditorPHID() == $viewer->getPHID()) {
$user_request = $audit_request;
break;
}
@@ -871,9 +918,10 @@
$history_table->loadRevisions();
- $panel = new PHUIObjectBoxView();
- $panel->setHeaderText(pht('Merged Changes'));
- $panel->setTable($history_table);
+ $panel = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Merged Changes'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->setTable($history_table);
if ($caption) {
$panel->setInfoView($caption);
}
@@ -881,19 +929,16 @@
return $panel;
}
- private function renderHeadsupActionList(
+ private function buildCurtain(
PhabricatorRepositoryCommit $commit,
PhabricatorRepository $repository) {
$request = $this->getRequest();
- $user = $request->getUser();
-
- $actions = id(new PhabricatorActionListView())
- ->setUser($user)
- ->setObject($commit);
+ $viewer = $this->getViewer();
+ $curtain = $this->newCurtainView($commit);
$can_edit = PhabricatorPolicyFilter::hasCapability(
- $user,
+ $viewer,
$commit,
PhabricatorPolicyCapability::CAN_EDIT);
@@ -906,7 +951,7 @@
->setIcon('fa-pencil')
->setDisabled(!$can_edit)
->setWorkflow(!$can_edit);
- $actions->addAction($action);
+ $curtain->addAction($action);
require_celerity_resource('phabricator-object-selector-css');
require_celerity_resource('javelin-behavior-phabricator-object-selector');
@@ -919,16 +964,16 @@
->setHref('/search/attach/'.$commit->getPHID().'/TASK/edge/')
->setWorkflow(true)
->setDisabled(!$can_edit);
- $actions->addAction($action);
+ $curtain->addAction($action);
}
$action = id(new PhabricatorActionView())
->setName(pht('Download Raw Diff'))
->setHref($request->getRequestURI()->alter('diff', true))
->setIcon('fa-download');
- $actions->addAction($action);
+ $curtain->addAction($action);
- return $actions;
+ return $curtain;
}
private function buildRawDiffResponse(DiffusionRequest $drequest) {
@@ -1022,7 +1067,8 @@
$toc_view = id(new PHUIDiffTableOfContentsListView())
->setUser($viewer)
- ->setHeader($header);
+ ->setHeader($header)
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY);
if ($info_view) {
$toc_view->setInfoView($info_view);
diff --git a/src/applications/diffusion/controller/DiffusionController.php b/src/applications/diffusion/controller/DiffusionController.php
--- a/src/applications/diffusion/controller/DiffusionController.php
+++ b/src/applications/diffusion/controller/DiffusionController.php
@@ -291,6 +291,7 @@
return id(new PHUIInfoView())
->setSeverity(PHUIInfoView::SEVERITY_WARNING)
->setTitle($title)
+ ->setFlush(true)
->appendChild($body);
}
@@ -300,6 +301,27 @@
->appendChild($pager);
}
+ protected function renderCommitHashTag(DiffusionRequest $drequest) {
+ $stable_commit = $drequest->getStableCommit();
+ $commit = phutil_tag(
+ 'a',
+ array(
+ 'href' => $drequest->generateURI(
+ array(
+ 'action' => 'commit',
+ 'commit' => $stable_commit,
+ )),
+ ),
+ $drequest->getRepository()->formatCommitName($stable_commit, true));
+
+ $tag = id(new PHUITagView())
+ ->setName($commit)
+ ->setShade('indigo')
+ ->setType(PHUITagView::TYPE_SHADE);
+
+ return $tag;
+ }
+
protected function renderDirectoryReadme(DiffusionBrowseResultSet $browse) {
$readme_path = $browse->getReadmePath();
if ($readme_path === null) {
diff --git a/src/applications/diffusion/controller/DiffusionHistoryController.php b/src/applications/diffusion/controller/DiffusionHistoryController.php
--- a/src/applications/diffusion/controller/DiffusionHistoryController.php
+++ b/src/applications/diffusion/controller/DiffusionHistoryController.php
@@ -40,8 +40,6 @@
$history = $pager->sliceResults($history);
$show_graph = !strlen($drequest->getPath());
- $content = array();
-
$history_table = id(new DiffusionHistoryTableView())
->setUser($request->getUser())
->setDiffusionRequest($drequest)
@@ -55,23 +53,13 @@
$history_table->setIsTail(!$pager->getHasMorePages());
}
- $history_panel = new PHUIObjectBoxView();
- $history_panel->setHeaderText(pht('History'));
- $history_panel->setTable($history_table);
-
- $content[] = $history_panel;
+ $history_header = $this->buildHistoryHeader($drequest);
+ $history_panel = id(new PHUIObjectBoxView())
+ ->setHeader($history_header)
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->setTable($history_table);
- $header = id(new PHUIHeaderView())
- ->setUser($viewer)
- ->setPolicyObject($repository)
- ->setHeader($this->renderPathLinks($drequest, $mode = 'history'));
-
- $actions = $this->buildActionView($drequest);
- $properties = $this->buildPropertyView($drequest, $actions);
-
- $object_box = id(new PHUIObjectBoxView())
- ->setHeader($header)
- ->addPropertyList($properties);
+ $header = $this->buildHeader($drequest, $repository);
$crumbs = $this->buildCrumbs(
array(
@@ -79,9 +67,17 @@
'path' => true,
'view' => 'history',
));
+ $crumbs->setBorder(true);
$pager_box = $this->renderTablePagerBox($pager);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $history_panel,
+ $pager_box,
+ ));
+
return $this->newPage()
->setTitle(
array(
@@ -91,28 +87,39 @@
->setCrumbs($crumbs)
->appendChild(
array(
- $object_box,
- $content,
- $pager_box,
+ $view,
));
}
- private function buildActionView(DiffusionRequest $drequest) {
- $viewer = $this->getRequest()->getUser();
+ private function buildHeader(DiffusionRequest $drequest) {
+ $viewer = $this->getViewer();
- $view = id(new PhabricatorActionListView())
- ->setUser($viewer);
+ $tag = $this->renderCommitHashTag($drequest);
+
+ $header = id(new PHUIHeaderView())
+ ->setUser($viewer)
+ ->setPolicyObject($drequest->getRepository())
+ ->addTag($tag)
+ ->setHeader($this->renderPathLinks($drequest, $mode = 'history'))
+ ->setHeaderIcon('fa-clock-o');
+
+ return $header;
+
+ }
+
+ private function buildHistoryHeader(DiffusionRequest $drequest) {
+ $viewer = $this->getViewer();
$browse_uri = $drequest->generateURI(
array(
'action' => 'browse',
));
- $view->addAction(
- id(new PhabricatorActionView())
- ->setName(pht('Browse Content'))
- ->setHref($browse_uri)
- ->setIcon('fa-files-o'));
+ $browse_button = id(new PHUIButtonView())
+ ->setTag('a')
+ ->setText(pht('Browse'))
+ ->setHref($browse_uri)
+ ->setIcon('fa-files-o');
// TODO: Sometimes we do have a change view, we need to look at the most
// recent history entry to figure it out.
@@ -130,41 +137,18 @@
->alter('copies', true);
}
- $view->addAction(
- id(new PhabricatorActionView())
- ->setName($branch_name)
- ->setIcon('fa-code-fork')
- ->setHref($branch_uri));
-
- return $view;
- }
+ $branch_button = id(new PHUIButtonView())
+ ->setTag('a')
+ ->setText($branch_name)
+ ->setIcon('fa-code-fork')
+ ->setHref($branch_uri);
- protected function buildPropertyView(
- DiffusionRequest $drequest,
- PhabricatorActionListView $actions) {
-
- $viewer = $this->getRequest()->getUser();
-
- $view = id(new PHUIPropertyListView())
- ->setUser($viewer)
- ->setActionList($actions);
-
- $stable_commit = $drequest->getStableCommit();
+ $header = id(new PHUIHeaderView())
+ ->setHeader(pht('History'))
+ ->addActionLink($browse_button)
+ ->addActionLink($branch_button);
- $view->addProperty(
- pht('Commit'),
- phutil_tag(
- 'a',
- array(
- 'href' => $drequest->generateURI(
- array(
- 'action' => 'commit',
- 'commit' => $stable_commit,
- )),
- ),
- $drequest->getRepository()->formatCommitName($stable_commit)));
-
- return $view;
+ return $header;
}
}
diff --git a/src/applications/diffusion/controller/DiffusionLintController.php b/src/applications/diffusion/controller/DiffusionLintController.php
--- a/src/applications/diffusion/controller/DiffusionLintController.php
+++ b/src/applications/diffusion/controller/DiffusionLintController.php
@@ -157,6 +157,7 @@
$content[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Lint'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
$title = array('Lint');
@@ -179,7 +180,7 @@
$header = id(new PHUIHeaderView())
->setHeader($this->renderPathLinks($drequest, 'lint'))
->setUser($viewer)
- ->setPolicyObject($drequest->getRepository());
+ ->setHeaderIcon('fa-code');
$actions = $this->buildActionView($drequest);
$properties = $this->buildPropertyView(
$drequest,
@@ -189,18 +190,28 @@
$object_box = id(new PHUIObjectBoxView())
->setHeader($header)
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($properties);
} else {
$object_box = null;
+ $header = id(new PHUIHeaderView())
+ ->setHeader(pht('All Lint'))
+ ->setHeaderIcon('fa-code');
}
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $object_box,
+ $content,
+ ));
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
->appendChild(
array(
- $object_box,
- $content,
+ $view,
));
}
@@ -444,6 +455,7 @@
$content[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Lint Details'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setTable($table);
$crumbs = $this->buildCrumbs(
@@ -454,6 +466,16 @@
));
$pager_box = $this->renderTablePagerBox($pager);
+ $header = id(new PHUIHeaderView())
+ ->setHeader(pht('Lint: %s', $drequest->getRepository()->getDisplayName()))
+ ->setHeaderIcon('fa-code');
+
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $content,
+ $pager_box,
+ ));
return $this->newPage()
->setTitle(
@@ -464,8 +486,7 @@
->setCrumbs($crumbs)
->appendChild(
array(
- $content,
- $pager_box,
+ $view,
));
}
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryController.php b/src/applications/diffusion/controller/DiffusionRepositoryController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryController.php
@@ -16,11 +16,14 @@
$drequest = $this->getDiffusionRequest();
$repository = $drequest->getRepository();
- $content = array();
-
$crumbs = $this->buildCrumbs();
+ $crumbs->setBorder(true);
- $content[] = $this->buildPropertiesTable($drequest->getRepository());
+ $header = $this->buildHeaderView($repository);
+ $curtain = $this->buildCurtain($repository);
+ $property_table = $this->buildPropertiesTable($repository);
+ $description = $this->buildDescriptionView($repository);
+ $locate_file = $this->buildLocateFile();
// Before we do any work, make sure we're looking at a some content: we're
// on a valid branch, and the repository is not empty.
@@ -68,14 +71,24 @@
}
if ($page_has_content) {
- $content[] = $this->buildNormalContent($drequest);
+ $content = $this->buildNormalContent($drequest);
} else {
- $content[] = id(new PHUIInfoView())
+ $content = id(new PHUIInfoView())
->setTitle($empty_title)
->setSeverity(PHUIInfoView::SEVERITY_WARNING)
->setErrors(array($empty_message));
}
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setCurtain($curtain)
+ ->setMainColumn(array(
+ $property_table,
+ $description,
+ $locate_file,
+ ))
+ ->setFooter($content);
+
return $this->newPage()
->setTitle(
array(
@@ -83,7 +96,9 @@
$repository->getDisplayName(),
))
->setCrumbs($crumbs)
- ->appendChild($content);
+ ->appendChild(array(
+ $view,
+ ));
}
@@ -206,13 +221,13 @@
return $content;
}
- private function buildPropertiesTable(PhabricatorRepository $repository) {
- $user = $this->getRequest()->getUser();
-
+ private function buildHeaderView(PhabricatorRepository $repository) {
+ $viewer = $this->getViewer();
$header = id(new PHUIHeaderView())
->setHeader($repository->getName())
- ->setUser($user)
- ->setPolicyObject($repository);
+ ->setUser($viewer)
+ ->setPolicyObject($repository)
+ ->setHeaderIcon('fa-code');
if (!$repository->isTracked()) {
$header->setStatus('fa-ban', 'dark', pht('Inactive'));
@@ -227,12 +242,64 @@
$header->setStatus('fa-check', 'bluegrey', pht('Active'));
}
+ return $header;
+ }
+
+ private function buildCurtain(PhabricatorRepository $repository) {
+ $viewer = $this->getViewer();
+
+ $edit_uri = $repository->getPathURI('edit/');
+ $curtain = $this->newCurtainView($repository);
+
+ $can_edit = PhabricatorPolicyFilter::hasCapability(
+ $viewer,
+ $repository,
+ PhabricatorPolicyCapability::CAN_EDIT);
+
+ $curtain->addAction(
+ id(new PhabricatorActionView())
+ ->setName(pht('Edit Repository'))
+ ->setIcon('fa-pencil')
+ ->setHref($edit_uri)
+ ->setWorkflow(!$can_edit)
+ ->setDisabled(!$can_edit));
+
+ if ($repository->isHosted()) {
+ $push_uri = $this->getApplicationURI(
+ 'pushlog/?repositories='.$repository->getMonogram());
- $actions = $this->buildActionList($repository);
+ $curtain->addAction(
+ id(new PhabricatorActionView())
+ ->setName(pht('View Push Logs'))
+ ->setIcon('fa-list-alt')
+ ->setHref($push_uri));
+ }
+ return $curtain;
+ }
+
+ private function buildDescriptionView(PhabricatorRepository $repository) {
+ $viewer = $this->getViewer();
$view = id(new PHUIPropertyListView())
- ->setObject($repository)
- ->setUser($user);
+ ->setUser($viewer);
+
+ $description = $repository->getDetail('description');
+ if (strlen($description)) {
+ $description = new PHUIRemarkupView($viewer, $description);
+ $view->addTextContent($description);
+ return id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('DESCRIPTION'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->appendChild($view);
+ }
+ return null;
+ }
+
+ private function buildPropertiesTable(PhabricatorRepository $repository) {
+ $viewer = $this->getViewer();
+
+ $view = id(new PHUIPropertyListView())
+ ->setUser($viewer);
if ($repository->isHosted()) {
$ssh_uri = $repository->getSSHCloneURIObject();
@@ -286,21 +353,10 @@
}
}
- $view->invokeWillRenderEvent();
-
- $description = $repository->getDetail('description');
- if (strlen($description)) {
- $description = new PHUIRemarkupView($user, $description);
- $view->addSectionHeader(
- pht('Description'), PHUIPropertyListView::ICON_SUMMARY);
- $view->addTextContent($description);
- }
-
- $view->setActionList($actions);
-
$box = id(new PHUIObjectBoxView())
- ->setHeader($header)
- ->addPropertyList($view);
+ ->setHeaderText(pht('DETAILS'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->appendChild($view);
$info = null;
$drequest = $this->getDiffusionRequest();
@@ -344,7 +400,7 @@
}
private function buildBranchListTable(DiffusionRequest $drequest) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
if ($drequest->getBranch() === null) {
return null;
@@ -379,7 +435,8 @@
->setBranches($branches)
->setCommits($commits);
- $panel = new PHUIObjectBoxView();
+ $panel = id(new PHUIObjectBoxView())
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY);
$header = new PHUIHeaderView();
$header->setHeader(pht('Branches'));
@@ -388,7 +445,7 @@
}
$button = new PHUIButtonView();
- $button->setText(pht('Show All Branches'));
+ $button->setText(pht('Show All'));
$button->setTag('a');
$button->setIcon('fa-code-fork');
$button->setHref($drequest->generateURI(
@@ -404,7 +461,7 @@
}
private function buildTagListTable(DiffusionRequest $drequest) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$repository = $drequest->getRepository();
switch ($repository->getVersionControlSystem()) {
@@ -469,46 +526,11 @@
$panel->setHeader($header);
$panel->setTable($view);
+ $panel->setBackground(PHUIObjectBoxView::BLUE_PROPERTY);
return $panel;
}
- private function buildActionList(PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
-
- $edit_uri = $repository->getPathURI('edit/');
-
- $view = id(new PhabricatorActionListView())
- ->setUser($viewer)
- ->setObject($repository);
-
- $can_edit = PhabricatorPolicyFilter::hasCapability(
- $viewer,
- $repository,
- PhabricatorPolicyCapability::CAN_EDIT);
-
- $view->addAction(
- id(new PhabricatorActionView())
- ->setName(pht('Edit Repository'))
- ->setIcon('fa-pencil')
- ->setHref($edit_uri)
- ->setWorkflow(!$can_edit)
- ->setDisabled(!$can_edit));
-
- if ($repository->isHosted()) {
- $push_uri = $this->getApplicationURI(
- 'pushlog/?repositories='.$repository->getMonogram());
-
- $view->addAction(
- id(new PhabricatorActionView())
- ->setName(pht('View Push Logs'))
- ->setIcon('fa-list-alt')
- ->setHref($push_uri));
- }
-
- return $view;
- }
-
private function buildHistoryTable(
$history_results,
$history,
@@ -551,7 +573,7 @@
->setIcon('fa-list-alt');
$button = id(new PHUIButtonView())
- ->setText(pht('View Full History'))
+ ->setText(pht('View History'))
->setHref($drequest->generateURI(
array(
'action' => 'history',
@@ -559,7 +581,8 @@
->setTag('a')
->setIcon($icon);
- $panel = new PHUIObjectBoxView();
+ $panel = id(new PHUIObjectBoxView())
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY);
$header = id(new PHUIHeaderView())
->setHeader(pht('Recent Commits'))
->addActionLink($button);
@@ -569,6 +592,46 @@
return $panel;
}
+ private function buildLocateFile() {
+ $request = $this->getRequest();
+ $viewer = $request->getUser();
+ $drequest = $this->getDiffusionRequest();
+ $repository = $drequest->getRepository();
+
+ $locate_panel = null;
+ if ($repository->canUsePathTree()) {
+ Javelin::initBehavior(
+ 'diffusion-locate-file',
+ array(
+ 'controlID' => 'locate-control',
+ 'inputID' => 'locate-input',
+ 'browseBaseURI' => (string)$drequest->generateURI(
+ array(
+ 'action' => 'browse',
+ )),
+ 'uri' => (string)$drequest->generateURI(
+ array(
+ 'action' => 'pathtree',
+ )),
+ ));
+
+ $form = id(new AphrontFormView())
+ ->setUser($viewer)
+ ->appendChild(
+ id(new AphrontFormTypeaheadControl())
+ ->setHardpointID('locate-control')
+ ->setID('locate-input')
+ ->setLabel(pht('Locate File')));
+ $form_box = id(new PHUIBoxView())
+ ->appendChild($form->buildLayoutView());
+ $locate_panel = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Locate File'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->appendChild($form_box);
+ }
+ return $locate_panel;
+ }
+
private function buildBrowseTable(
$browse_results,
$browse_paths,
@@ -606,9 +669,10 @@
$browse_uri = $drequest->generateURI(array('action' => 'browse'));
- $browse_panel = new PHUIObjectBoxView();
+ $browse_panel = id(new PHUIObjectBoxView())
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY);
$header = id(new PHUIHeaderView())
- ->setHeader(pht('Repository'));
+ ->setHeader($repository->getName());
$icon = id(new PHUIIconView())
->setIcon('fa-folder-open');
@@ -621,38 +685,6 @@
$header->addActionLink($button);
$browse_panel->setHeader($header);
-
- $locate_panel = null;
- if ($repository->canUsePathTree()) {
- Javelin::initBehavior(
- 'diffusion-locate-file',
- array(
- 'controlID' => 'locate-control',
- 'inputID' => 'locate-input',
- 'browseBaseURI' => (string)$drequest->generateURI(
- array(
- 'action' => 'browse',
- )),
- 'uri' => (string)$drequest->generateURI(
- array(
- 'action' => 'pathtree',
- )),
- ));
-
- $form = id(new AphrontFormView())
- ->setUser($viewer)
- ->appendChild(
- id(new AphrontFormTypeaheadControl())
- ->setHardpointID('locate-control')
- ->setID('locate-input')
- ->setLabel(pht('Locate File')));
- $form_box = id(new PHUIBoxView())
- ->appendChild($form->buildLayoutView());
- $locate_panel = id(new PHUIObjectBoxView())
- ->setHeaderText('Locate File')
- ->appendChild($form_box);
- }
-
$browse_panel->setTable($browse_table);
$pager->setURI($browse_uri, 'offset');
@@ -664,7 +696,6 @@
}
return array(
- $locate_panel,
$browse_panel,
$pager_box,
);
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryCreateController.php b/src/applications/diffusion/controller/DiffusionRepositoryCreateController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryCreateController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryCreateController.php
@@ -262,10 +262,26 @@
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb($title);
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
+
+ $form_box = id(new PHUIObjectBoxView())
+ ->setHeaderText($title)
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->setForm($form);
+
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $form,
+ ));
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($form);
+ ->appendChild($view);
+
}
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditActionsController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditActionsController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditActionsController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditActionsController.php
@@ -53,6 +53,10 @@
$title = pht('Edit Actions (%s)', $repository->getName());
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
+
$policies = id(new PhabricatorPolicyQuery())
->setViewer($viewer)
->setObject($repository)
@@ -97,13 +101,21 @@
->addCancelButton($edit_uri));
$form_box = id(new PHUIObjectBoxView())
- ->setHeaderText($title)
+ ->setHeaderText(pht('Actions'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $form_box,
+ ));
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($form_box);
+ ->appendChild($view);
+
}
}
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditAutomationController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditAutomationController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditAutomationController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditAutomationController.php
@@ -49,6 +49,10 @@
$title = pht('Edit %s', $repository->getName());
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
+
$form = id(new AphrontFormView())
->setUser($viewer)
->appendRemarkupInstructions(
@@ -69,14 +73,21 @@
->setValue(pht('Save'))
->addCancelButton($edit_uri));
- $object_box = id(new PHUIObjectBoxView())
- ->setHeaderText($title)
+ $form_box = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Automation'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $form_box,
+ ));
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($object_box);
+ ->appendChild($view);
}
}
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditBasicController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditBasicController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditBasicController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditBasicController.php
@@ -105,6 +105,10 @@
$title = pht('Edit %s', $repository->getName());
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
+
$form = id(new AphrontFormView())
->setUser($viewer)
->appendChild(
@@ -144,16 +148,23 @@
->appendChild(id(new PHUIFormDividerControl()))
->appendRemarkupInstructions($this->getReadmeInstructions());
- $object_box = id(new PHUIObjectBoxView())
- ->setHeaderText($title)
+ $form_box = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Basic Information'))
->setValidationException($validation_exception)
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form)
->setFormErrors($errors);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $form_box,
+ ));
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($object_box);
+ ->appendChild($view);
}
private function getReadmeInstructions() {
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditBranchesController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditBranchesController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditBranchesController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditBranchesController.php
@@ -98,6 +98,9 @@
$crumbs->addTextCrumb(pht('Edit Branches'));
$title = pht('Edit Branches (%s)', $repository->getName());
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
$policies = id(new PhabricatorPolicyQuery())
->setViewer($viewer)
@@ -213,14 +216,21 @@
->addCancelButton($edit_uri));
$form_box = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Branches'))
->setValidationException($validation_exception)
- ->setHeaderText($title)
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $form_box,
+ ));
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($form_box);
+ ->appendChild($view);
}
private function processBranches($string) {
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditController.php
@@ -20,6 +20,7 @@
$crumbs->addTextCrumb(pht('Edit'), $edit_uri);
}
}
+ $crumbs->setBorder(true);
return $crumbs;
}
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditEncodingController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditEncodingController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditEncodingController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditEncodingController.php
@@ -50,6 +50,9 @@
$crumbs->addTextCrumb(pht('Edit Encoding'));
$title = pht('Edit %s', $repository->getName());
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
$form = id(new AphrontFormView())
->setUser($user)
@@ -65,15 +68,22 @@
->setValue(pht('Save Encoding'))
->addCancelButton($edit_uri));
- $object_box = id(new PHUIObjectBoxView())
- ->setHeaderText($title)
+ $form_box = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Encoding'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form)
->setFormErrors($errors);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $form_box,
+ ));
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($object_box);
+ ->appendChild($view);
}
private function getEncodingInstructions() {
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditHostingController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditHostingController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditHostingController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditHostingController.php
@@ -57,6 +57,9 @@
$crumbs->addTextCrumb(pht('Edit Hosting'));
$title = pht('Edit Hosting (%s)', $repository->getName());
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
$hosted_control = id(new AphrontFormRadioButtonControl())
->setName('hosting')
@@ -95,14 +98,21 @@
->setValue(pht('Save and Continue'))
->addCancelButton($edit_uri));
- $object_box = id(new PHUIObjectBoxView())
- ->setHeaderText($title)
+ $form_box = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Hosting'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $form_box,
+ ));
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($object_box);
+ ->appendChild($view);
}
public function handleProtocols(PhabricatorRepository $repository) {
@@ -155,7 +165,9 @@
$crumbs->addTextCrumb(pht('Edit Protocols'));
$title = pht('Edit Protocols (%s)', $repository->getName());
-
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
$rw_message = pht(
'Phabricator will serve a read-write copy of this repository.');
@@ -256,14 +268,21 @@
->setValue(pht('Save Changes'))
->addCancelButton($prev_uri, pht('Back')));
- $object_box = id(new PHUIObjectBoxView())
- ->setHeaderText($title)
+ $form_box = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Protocols'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $form_box,
+ ));
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($object_box);
+ ->appendChild($view);
}
}
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditMainController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditMainController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditMainController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditMainController.php
@@ -38,16 +38,16 @@
$title = pht('Edit %s', $repository->getName());
$header = id(new PHUIHeaderView())
- ->setHeader($title);
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
if ($repository->isTracked()) {
$header->setStatus('fa-check', 'bluegrey', pht('Active'));
} else {
$header->setStatus('fa-ban', 'dark', pht('Inactive'));
}
- $basic_actions = $this->buildBasicActions($repository);
- $basic_properties =
- $this->buildBasicProperties($repository, $basic_actions);
+ $curtain = $this->buildCurtain($repository);
+ $basic_properties = $this->buildBasicProperties($repository);
$policy_actions = $this->buildPolicyActions($repository);
$policy_properties =
@@ -120,15 +120,13 @@
$boxes = array();
$boxes[] = id(new PHUIObjectBoxView())
- ->setHeader($header)
- ->addPropertyList($basic_properties);
-
- $boxes[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Policies'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($policy_properties);
$boxes[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Hosting'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($hosting_properties);
if ($repository->canMirror()) {
@@ -156,6 +154,7 @@
$boxes[] = id(new PHUIObjectBoxView())
->setFormErrors($mirror_info)
->setHeaderText(pht('Mirrors'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($mirror_properties);
$boxes[] = $mirror_list;
@@ -164,73 +163,88 @@
if ($remote_properties) {
$boxes[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Remote'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($remote_properties);
}
if ($storage_properties) {
$boxes[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Storage'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($storage_properties);
}
if ($staging_properties) {
$boxes[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Staging'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($staging_properties);
}
if ($automation_properties) {
$boxes[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Automation'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($automation_properties);
}
$boxes[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Text Encoding'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($encoding_properties);
$boxes[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Symbols'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($symbols_properties);
if ($branches_properties) {
$boxes[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Branches'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($branches_properties);
}
if ($subversion_properties) {
$boxes[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Subversion'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($subversion_properties);
}
$boxes[] = id(new PHUIObjectBoxView())
->setHeaderText(pht('Actions'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->addPropertyList($actions_properties);
- return $this->buildApplicationPage(
- array(
- $crumbs,
+ $crumbs->setBorder(true);
+
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setCurtain($curtain)
+ ->addPropertySection(pht('Properties'), $basic_properties)
+ ->setMainColumn(array(
$boxes,
$timeline,
- ),
- array(
- 'title' => $title,
));
+
+ return $this->newPage()
+ ->setTitle($title)
+ ->setCrumbs($crumbs)
+ ->appendChild($view);
+
}
- private function buildBasicActions(PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
+ private function buildCurtain(PhabricatorRepository $repository) {
+ $viewer = $this->getViewer();
- $view = id(new PhabricatorActionListView())
- ->setUser($viewer);
+ $curtain = $this->newCurtainView($repository);
$edit = id(new PhabricatorActionView())
->setIcon('fa-pencil')
->setName(pht('Edit Basic Information'))
->setHref($this->getRepositoryControllerURI($repository, 'edit/basic/'));
- $view->addAction($edit);
+ $curtain->addAction($edit);
$edit = id(new PhabricatorActionView())
->setIcon('fa-refresh')
@@ -238,7 +252,7 @@
->setWorkflow(true)
->setHref(
$this->getRepositoryControllerURI($repository, 'edit/update/'));
- $view->addAction($edit);
+ $curtain->addAction($edit);
$activate = id(new PhabricatorActionView())
->setHref(
@@ -255,9 +269,9 @@
->setName(pht('Activate Repository'));
}
- $view->addAction($activate);
+ $curtain->addAction($activate);
- $view->addAction(
+ $curtain->addAction(
id(new PhabricatorActionView())
->setName(pht('Delete Repository'))
->setIcon('fa-times')
@@ -266,19 +280,16 @@
->setDisabled(true)
->setWorkflow(true));
- return $view;
+ return $curtain;
}
private function buildBasicProperties(
- PhabricatorRepository $repository,
- PhabricatorActionListView $actions) {
+ PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PHUIPropertyListView())
- ->setUser($viewer)
- ->setObject($repository)
- ->setActionList($actions);
+ ->setUser($viewer);
$type = PhabricatorRepositoryType::getNameForRepositoryType(
$repository->getVersionControlSystem());
@@ -322,7 +333,7 @@
}
private function buildEncodingActions(PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PhabricatorActionListView())
->setUser($viewer);
@@ -341,7 +352,7 @@
PhabricatorRepository $repository,
PhabricatorActionListView $actions) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PHUIPropertyListView())
->setUser($viewer)
@@ -358,7 +369,7 @@
}
private function buildPolicyActions(PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PhabricatorActionListView())
->setUser($viewer);
@@ -377,7 +388,7 @@
PhabricatorRepository $repository,
PhabricatorActionListView $actions) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PHUIPropertyListView())
->setUser($viewer)
@@ -412,7 +423,7 @@
}
private function buildBranchesActions(PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PhabricatorActionListView())
->setUser($viewer);
@@ -431,7 +442,7 @@
PhabricatorRepository $repository,
PhabricatorActionListView $actions) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PHUIPropertyListView())
->setUser($viewer)
@@ -461,7 +472,7 @@
}
private function buildSubversionActions(PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PhabricatorActionListView())
->setUser($viewer);
@@ -480,7 +491,7 @@
PhabricatorRepository $repository,
PhabricatorActionListView $actions) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PHUIPropertyListView())
->setUser($viewer)
@@ -500,7 +511,7 @@
}
private function buildActionsActions(PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PhabricatorActionListView())
->setUser($viewer);
@@ -519,7 +530,7 @@
PhabricatorRepository $repository,
PhabricatorActionListView $actions) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PHUIPropertyListView())
->setUser($viewer)
@@ -541,7 +552,7 @@
}
private function buildRemoteActions(PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PhabricatorActionListView())
->setUser($viewer);
@@ -560,7 +571,7 @@
PhabricatorRepository $repository,
PhabricatorActionListView $actions) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PHUIPropertyListView())
->setUser($viewer)
@@ -581,7 +592,7 @@
}
private function buildStorageActions(PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PhabricatorActionListView())
->setUser($viewer);
@@ -600,7 +611,7 @@
PhabricatorRepository $repository,
PhabricatorActionListView $actions) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PHUIPropertyListView())
->setUser($viewer)
@@ -801,7 +812,7 @@
private function buildRepositoryStatus(
PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$is_cluster = $repository->getAlmanacServicePHID();
$view = new PHUIStatusListView();
@@ -1188,7 +1199,7 @@
private function buildMirrorActions(
PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$mirror_actions = id(new PhabricatorActionListView())
->setUser($viewer);
@@ -1211,7 +1222,7 @@
PhabricatorRepository $repository,
PhabricatorActionListView $actions) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$mirror_properties = id(new PHUIPropertyListView())
->setUser($viewer)
@@ -1262,11 +1273,14 @@
$mirror_list->addItem($item);
}
- return $mirror_list;
+ return id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Configured Mirrors'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->setObjectList($mirror_list);
}
private function buildSymbolsActions(PhabricatorRepository $repository) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PhabricatorActionListView())
->setUser($viewer);
@@ -1285,7 +1299,7 @@
PhabricatorRepository $repository,
PhabricatorActionListView $actions) {
- $viewer = $this->getRequest()->getUser();
+ $viewer = $this->getViewer();
$view = id(new PHUIPropertyListView())
->setUser($viewer)
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditStagingController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditStagingController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditStagingController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditStagingController.php
@@ -45,7 +45,10 @@
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Edit Staging'));
- $title = pht('Edit %s', $repository->getName());
+ $title = pht('Edit Staging (%s)', $repository->getName());
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
$form = id(new AphrontFormView())
->setUser($viewer)
@@ -68,14 +71,21 @@
->setValue(pht('Save'))
->addCancelButton($edit_uri));
- $object_box = id(new PHUIObjectBoxView())
- ->setHeaderText($title)
+ $form_box = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Staging'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $form_box,
+ ));
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($object_box);
+ ->appendChild($view);
}
}
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditStorageController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditStorageController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditStorageController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditStorageController.php
@@ -22,6 +22,9 @@
$crumbs->addTextCrumb(pht('Edit Storage'));
$title = pht('Edit %s', $repository->getName());
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
$service_phid = $repository->getAlmanacServicePHID();
if ($service_phid) {
@@ -57,15 +60,21 @@
id(new AphrontFormSubmitControl())
->addCancelButton($edit_uri, pht('Done')));
- $object_box = id(new PHUIObjectBoxView())
- ->setHeaderText($title)
- ->setForm($form)
- ->setFormErrors($errors);
+ $form_box = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Storage'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->setForm($form);
+
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $form_box,
+ ));
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($object_box);
+ ->appendChild($view);
}
}
diff --git a/src/applications/diffusion/controller/DiffusionRepositoryEditSubversionController.php b/src/applications/diffusion/controller/DiffusionRepositoryEditSubversionController.php
--- a/src/applications/diffusion/controller/DiffusionRepositoryEditSubversionController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositoryEditSubversionController.php
@@ -63,6 +63,9 @@
$crumbs->addTextCrumb(pht('Edit Subversion Info'));
$title = pht('Edit Subversion Info (%s)', $repository->getName());
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
$policies = id(new PhabricatorPolicyQuery())
->setViewer($viewer)
@@ -96,13 +99,20 @@
->addCancelButton($edit_uri));
$form_box = id(new PHUIObjectBoxView())
- ->setHeaderText($title)
+ ->setHeaderText(pht('Subversion'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $form_box,
+ ));
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($form_box);
+ ->appendChild($view);
}
}
diff --git a/src/applications/diffusion/controller/DiffusionRepositorySymbolsController.php b/src/applications/diffusion/controller/DiffusionRepositorySymbolsController.php
--- a/src/applications/diffusion/controller/DiffusionRepositorySymbolsController.php
+++ b/src/applications/diffusion/controller/DiffusionRepositorySymbolsController.php
@@ -59,7 +59,10 @@
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Edit Symbols'));
- $title = pht('Edit %s', $repository->getName());
+ $title = pht('Edit Symbols (%s)', $repository->getName());
+ $header = id(new PHUIHeaderView())
+ ->setHeader($title)
+ ->setHeaderIcon('fa-pencil');
$form = id(new AphrontFormView())
->setUser($viewer)
@@ -85,15 +88,22 @@
->setValue(pht('Save'))
->addCancelButton($edit_uri));
- $object_box = id(new PHUIObjectBoxView())
- ->setHeaderText($title)
+ $form_box = id(new PHUIObjectBoxView())
+ ->setHeaderText(pht('Symbols'))
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setForm($form)
->setFormErrors($errors);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $form_box,
+ ));
+
return $this->newPage()
->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild($object_box);
+ ->appendChild($view);
}
private function getInstructions() {
diff --git a/src/applications/diffusion/controller/DiffusionSymbolController.php b/src/applications/diffusion/controller/DiffusionSymbolController.php
--- a/src/applications/diffusion/controller/DiffusionSymbolController.php
+++ b/src/applications/diffusion/controller/DiffusionSymbolController.php
@@ -134,17 +134,24 @@
$table->setNoDataString(
pht('No matching symbol could be found in any indexed repository.'));
- $panel = id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Similar Symbols'))
- ->setTable($table);
+ $header = id(new PHUIHeaderView())
+ ->setHeader(pht('Similar Symbols'))
+ ->setHeaderIcon('fa-bullseye');
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(pht('Find Symbol'));
+ $crumbs->setBorder(true);
+
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $table,
+ ));
return $this->newPage()
->setTitle(pht('Find Symbol'))
->setCrumbs($crumbs)
- ->appendChild($panel);
+ ->appendChild($view);
}
}
diff --git a/src/applications/diffusion/controller/DiffusionTagListController.php b/src/applications/diffusion/controller/DiffusionTagListController.php
--- a/src/applications/diffusion/controller/DiffusionTagListController.php
+++ b/src/applications/diffusion/controller/DiffusionTagListController.php
@@ -45,6 +45,11 @@
$tags = $pager->sliceResults($tags);
$content = null;
+
+ $header = id(new PHUIHeaderView())
+ ->setHeader(pht('Tags'))
+ ->setHeaderIcon('fa-tags');
+
if (!$tags) {
$content = $this->renderStatusMessage(
pht('No Tags'),
@@ -69,11 +74,7 @@
$handles = $this->loadViewerHandles($phids);
$view->setHandles($handles);
- $panel = id(new PHUIObjectBoxView())
- ->setHeaderText(pht('Tags'))
- ->appendChild($view);
-
- $content = $panel;
+ $content = $view;
}
$crumbs = $this->buildCrumbs(
@@ -81,9 +82,22 @@
'tags' => true,
'commit' => $drequest->getSymbolicCommit(),
));
+ $crumbs->setBorder(true);
+
+ $box = id(new PHUIObjectBoxView())
+ ->setHeaderText($repository->getDisplayName())
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->setTable($view);
$pager_box = $this->renderTablePagerBox($pager);
+ $view = id(new PHUITwoColumnView())
+ ->setHeader($header)
+ ->setFooter(array(
+ $box,
+ $pager_box,
+ ));
+
return $this->newPage()
->setTitle(
array(
@@ -91,11 +105,7 @@
$repository->getDisplayName(),
))
->setCrumbs($crumbs)
- ->appendChild(
- array(
- $content,
- $pager_box,
- ));
+ ->appendChild($view);
}
}
diff --git a/src/applications/diffusion/view/DiffusionBrowseTableView.php b/src/applications/diffusion/view/DiffusionBrowseTableView.php
--- a/src/applications/diffusion/view/DiffusionBrowseTableView.php
+++ b/src/applications/diffusion/view/DiffusionBrowseTableView.php
@@ -90,7 +90,6 @@
$browse_link,
idx($dict, 'lint'),
$dict['commit'],
- $dict['author'],
$dict['details'],
$dict['date'],
);
@@ -120,7 +119,6 @@
pht('Path'),
($lint ? $lint : pht('Lint')),
pht('Modified'),
- pht('Author/Committer'),
pht('Details'),
pht('Committed'),
));
@@ -130,7 +128,6 @@
'',
'',
'',
- '',
'wide',
'',
));
@@ -142,7 +139,6 @@
true,
true,
true,
- true,
));
$view->setDeviceVisibility(
@@ -150,7 +146,6 @@
true,
true,
false,
- true,
false,
true,
false,
diff --git a/src/applications/diffusion/view/DiffusionView.php b/src/applications/diffusion/view/DiffusionView.php
--- a/src/applications/diffusion/view/DiffusionView.php
+++ b/src/applications/diffusion/view/DiffusionView.php
@@ -95,7 +95,9 @@
}
$icon = DifferentialChangeType::getIconForFileType($file_type);
- $icon_view = id(new PHUIIconView())->setIcon($icon);
+ $color = DifferentialChangeType::getIconColorForFileType($file_type);
+ $icon_view = id(new PHUIIconView())
+ ->setIcon($icon.' '.$color);
// If we're rendering a file or directory name, don't show the tooltip.
if ($display_name !== null) {
diff --git a/src/view/form/PHUIInfoView.php b/src/view/form/PHUIInfoView.php
--- a/src/view/form/PHUIInfoView.php
+++ b/src/view/form/PHUIInfoView.php
@@ -14,6 +14,7 @@
private $id;
private $buttons = array();
private $isHidden;
+ private $flush;
public function setTitle($title) {
$this->title = $title;
@@ -40,6 +41,11 @@
return $this;
}
+ public function setFlush($flush) {
+ $this->flush = $flush;
+ return $this;
+ }
+
public function addButton(PHUIButtonView $button) {
$this->buttons[] = $button;
return $this;
@@ -87,6 +93,9 @@
$classes[] = 'phui-info-view';
$classes[] = 'phui-info-severity-'.$this->severity;
$classes[] = 'grouped';
+ if ($this->flush) {
+ $classes[] = 'phui-info-view-flush';
+ }
$classes = implode(' ', $classes);
$children = $this->renderChildren();
diff --git a/src/view/form/PHUIPagedFormView.php b/src/view/form/PHUIPagedFormView.php
--- a/src/view/form/PHUIPagedFormView.php
+++ b/src/view/form/PHUIPagedFormView.php
@@ -263,6 +263,7 @@
$form->appendChild($submit);
$box = id(new PHUIObjectBoxView())
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
->setFormErrors($errors)
->setForm($form);
diff --git a/src/view/phui/PHUIHeadThingView.php b/src/view/phui/PHUIHeadThingView.php
--- a/src/view/phui/PHUIHeadThingView.php
+++ b/src/view/phui/PHUIHeadThingView.php
@@ -35,6 +35,9 @@
$classes = array();
$classes[] = 'phui-head-thing-view';
+ if ($this->image) {
+ $classes[] = 'phui-head-has-image';
+ }
if ($this->size) {
$classes[] = $this->size;
@@ -57,8 +60,11 @@
'href' => $this->imageHref,
));
- return array($image, $this->content);
-
+ if ($this->image) {
+ return array($image, $this->content);
+ } else {
+ return $this->content;
+ }
}
diff --git a/webroot/rsrc/css/application/diffusion/diffusion-icons.css b/webroot/rsrc/css/application/diffusion/diffusion-icons.css
--- a/webroot/rsrc/css/application/diffusion/diffusion-icons.css
+++ b/webroot/rsrc/css/application/diffusion/diffusion-icons.css
@@ -20,3 +20,11 @@
.diffusion-link-icon + .diffusion-link-icon {
margin-left: 6px;
}
+
+.diffusion-search-boxen {
+ padding: 16px;
+}
+
+.diffusion-search-boxen .phui-form-view {
+ padding: 0;
+}
diff --git a/webroot/rsrc/css/application/diffusion/diffusion-source.css b/webroot/rsrc/css/application/diffusion/diffusion-source.css
--- a/webroot/rsrc/css/application/diffusion/diffusion-source.css
+++ b/webroot/rsrc/css/application/diffusion/diffusion-source.css
@@ -4,7 +4,6 @@
.diffusion-source {
width: 100%;
- font: 10px/13px "Menlo", "Consolas", "Monaco", monospace;
background: #fff;
}
@@ -21,13 +20,12 @@
}
.diffusion-source td {
- letter-spacing: 0.0083334px;
- vertical-align: top;
- white-space: pre-wrap;
- padding-bottom: 1px;
- padding-left: 8px;
- line-height: 16px;
- width: 100%;
+ vertical-align: top;
+ white-space: pre-wrap;
+ padding-top: 1px;
+ padding-bottom: 1px;
+ padding-left: 8px;
+ width: 100%;
}
.diffusion-browse-type-form {
diff --git a/webroot/rsrc/css/phui/phui-box.css b/webroot/rsrc/css/phui/phui-box.css
--- a/webroot/rsrc/css/phui/phui-box.css
+++ b/webroot/rsrc/css/phui/phui-box.css
@@ -86,8 +86,10 @@
padding: 6px 16px;
}
-.device .phui-box.phui-box-blue-property .phui-header-shell {
- padding: 6px 12px;
+.device .phui-box.phui-box-blue-property .phui-header-shell,
+.device .phui-box-blue-property.phui-object-box.phui-object-box-collapsed
+ .phui-header-shell {
+ padding: 6px 12px;
}
.phui-box.phui-box-blue-property .phui-header-header {
@@ -98,3 +100,16 @@
.phui-box-blue-property .phui-object-item-list-view.phui-object-list-flush {
padding: 2px 8px;
}
+
+body .phui-box-blue-property.phui-object-box.phui-object-box-collapsed {
+ padding: 0;
+}
+
+body .phui-box-blue-property .phui-header-shell + .phui-object-box {
+ margin-bottom: 0;
+}
+
+.phui-box-blue-property .phui-header-shell + .phui-object-box
+ .phui-header-shell {
+ background: #fff;
+}
diff --git a/webroot/rsrc/css/phui/phui-head-thing.css b/webroot/rsrc/css/phui/phui-head-thing.css
--- a/webroot/rsrc/css/phui/phui-head-thing.css
+++ b/webroot/rsrc/css/phui/phui-head-thing.css
@@ -6,6 +6,9 @@
height: 24px;
line-height: 22px;
color: {$greytext};
+}
+
+.phui-head-thing-view.phui-head-has-image {
position: relative;
padding-left: 32px;
}
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
@@ -324,3 +324,7 @@
.phui-profile-header .phui-header-col3 {
vertical-align: top;
}
+
+.phui-header-view .phui-tag-shade-indigo a {
+ color: {$sh-indigotext};
+}
diff --git a/webroot/rsrc/css/phui/phui-info-view.css b/webroot/rsrc/css/phui/phui-info-view.css
--- a/webroot/rsrc/css/phui/phui-info-view.css
+++ b/webroot/rsrc/css/phui/phui-info-view.css
@@ -10,6 +10,10 @@
border-radius: 3px;
}
+.phui-info-view.phui-info-view-flush {
+ margin: 0 0 20px 0;
+}
+
.device .phui-info-view {
margin: 8px;
}
diff --git a/webroot/rsrc/css/phui/phui-property-list-view.css b/webroot/rsrc/css/phui/phui-property-list-view.css
--- a/webroot/rsrc/css/phui/phui-property-list-view.css
+++ b/webroot/rsrc/css/phui/phui-property-list-view.css
@@ -199,7 +199,6 @@
.phui-property-list-image-content img {
margin: 20px auto;
background: url('/rsrc/image/checker_light.png');
- border: 1px solid {$lightblueborder};
}
.device-desktop .phui-property-list-image-content img:hover {
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
@@ -79,10 +79,6 @@
margin: 0 0 20px 0;
}
-.phui-two-column-view .phui-object-box.phui-object-box-collapsed {
- padding: 0;
-}
-
/* Timeline */
.phui-two-column-view .phui-timeline-view {
@@ -115,12 +111,12 @@
.device-desktop .phui-main-column .phui-property-list-key {
margin-left: 0;
- width: 140px;
+ width: 160px;
}
.device-desktop .phui-main-column .phui-property-list-value {
margin-left: 8px;
- width: calc(100% - 180px);
+ width: calc(100% - 200px);
}
@@ -132,13 +128,18 @@
}
.device-desktop .phui-two-column-view .phui-property-list-container {
- padding: 12px 16px;
+ padding: 16px 0;
}
.device .phui-two-column-view .phui-property-list-container {
padding: 12px 8px;
}
+.phui-two-column-view .phui-property-list-container
+ .keyboard-shortcuts-available {
+ display: none;
+}
+
.phui-two-column-properties.phui-object-box {
border: 1px solid rgba({$alphablue}, .2);
}
@@ -191,3 +192,7 @@
.phui-info-view {
margin: 0;
}
+
+.phui-two-column-view .phui-object-box .phui-header-shell + .phui-info-view {
+ margin: 16px 16px 0 16px;
+}

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 2, 8:00 PM (2 w, 6 d ago)
Storage Engine
amazon-s3
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
phabricator/secure/hd/ir/76wux2nvy2cz6pwb
Default Alt Text
D15487.diff (111 KB)

Event Timeline