Page MenuHomePhabricator

D18039.diff
No OneTemporary

D18039.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -9,7 +9,7 @@
'names' => array(
'conpherence.pkg.css' => 'ff161f2d',
'conpherence.pkg.js' => 'b5b51108',
- 'core.pkg.css' => '19f6f61f',
+ 'core.pkg.css' => '525ecd1c',
'core.pkg.js' => '1475bd91',
'darkconsole.pkg.js' => '1f9a31bc',
'differential.pkg.css' => '7d4cfa59',
@@ -71,7 +71,7 @@
'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-history.css' => '0c596546',
+ 'rsrc/css/application/diffusion/diffusion-history.css' => '4faf40cd',
'rsrc/css/application/diffusion/diffusion-icons.css' => 'a6a1e2ba',
'rsrc/css/application/diffusion/diffusion-readme.css' => '18bd3910',
'rsrc/css/application/diffusion/diffusion-source.css' => '750add59',
@@ -132,7 +132,7 @@
'rsrc/css/phui/object-item/phui-oi-color.css' => 'cd2b9b77',
'rsrc/css/phui/object-item/phui-oi-drag-ui.css' => '08f4ccc3',
'rsrc/css/phui/object-item/phui-oi-flush-ui.css' => '9d9685d6',
- 'rsrc/css/phui/object-item/phui-oi-list-view.css' => 'ed19241b',
+ 'rsrc/css/phui/object-item/phui-oi-list-view.css' => '43752968',
'rsrc/css/phui/object-item/phui-oi-simple-ui.css' => 'a8beebea',
'rsrc/css/phui/phui-action-list.css' => 'c01858f4',
'rsrc/css/phui/phui-action-panel.css' => '91c7b835',
@@ -158,7 +158,7 @@
'rsrc/css/phui/phui-header-view.css' => 'a3d1aecd',
'rsrc/css/phui/phui-hovercard.css' => 'f0592bcf',
'rsrc/css/phui/phui-icon-set-selector.css' => '87db8fee',
- 'rsrc/css/phui/phui-icon.css' => '4c6d624c',
+ 'rsrc/css/phui/phui-icon.css' => '4c46b6ba',
'rsrc/css/phui/phui-image-mask.css' => 'a8498f9c',
'rsrc/css/phui/phui-info-panel.css' => '27ea50a1',
'rsrc/css/phui/phui-info-view.css' => '6e217679',
@@ -575,7 +575,7 @@
'differential-revision-history-css' => '0e8eb855',
'differential-revision-list-css' => 'f3c47d33',
'differential-table-of-contents-css' => 'ae4b7a55',
- 'diffusion-history-css' => '0c596546',
+ 'diffusion-history-css' => '4faf40cd',
'diffusion-icons-css' => 'a6a1e2ba',
'diffusion-readme-css' => '18bd3910',
'diffusion-source-css' => '750add59',
@@ -862,7 +862,7 @@
'phui-hovercard' => '1bd28176',
'phui-hovercard-view-css' => 'f0592bcf',
'phui-icon-set-selector-css' => '87db8fee',
- 'phui-icon-view-css' => '4c6d624c',
+ 'phui-icon-view-css' => '4c46b6ba',
'phui-image-mask-css' => 'a8498f9c',
'phui-info-panel-css' => '27ea50a1',
'phui-info-view-css' => '6e217679',
@@ -875,7 +875,7 @@
'phui-oi-color-css' => 'cd2b9b77',
'phui-oi-drag-ui-css' => '08f4ccc3',
'phui-oi-flush-ui-css' => '9d9685d6',
- 'phui-oi-list-view-css' => 'ed19241b',
+ 'phui-oi-list-view-css' => '43752968',
'phui-oi-simple-ui-css' => 'a8beebea',
'phui-pager-css' => '77d8a794',
'phui-pinboard-view-css' => '2495140e',
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -728,8 +728,10 @@
'DiffusionGitSSHWorkflow' => 'applications/diffusion/ssh/DiffusionGitSSHWorkflow.php',
'DiffusionGitUploadPackSSHWorkflow' => 'applications/diffusion/ssh/DiffusionGitUploadPackSSHWorkflow.php',
'DiffusionHistoryController' => 'applications/diffusion/controller/DiffusionHistoryController.php',
+ 'DiffusionHistoryListView' => 'applications/diffusion/view/DiffusionHistoryListView.php',
'DiffusionHistoryQueryConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionHistoryQueryConduitAPIMethod.php',
'DiffusionHistoryTableView' => 'applications/diffusion/view/DiffusionHistoryTableView.php',
+ 'DiffusionHistoryView' => 'applications/diffusion/view/DiffusionHistoryView.php',
'DiffusionHovercardEngineExtension' => 'applications/diffusion/engineextension/DiffusionHovercardEngineExtension.php',
'DiffusionInlineCommentController' => 'applications/diffusion/controller/DiffusionInlineCommentController.php',
'DiffusionInlineCommentPreviewController' => 'applications/diffusion/controller/DiffusionInlineCommentPreviewController.php',
@@ -5705,8 +5707,10 @@
),
'DiffusionGitUploadPackSSHWorkflow' => 'DiffusionGitSSHWorkflow',
'DiffusionHistoryController' => 'DiffusionController',
+ 'DiffusionHistoryListView' => 'DiffusionHistoryView',
'DiffusionHistoryQueryConduitAPIMethod' => 'DiffusionQueryConduitAPIMethod',
- 'DiffusionHistoryTableView' => 'DiffusionView',
+ 'DiffusionHistoryTableView' => 'DiffusionHistoryView',
+ 'DiffusionHistoryView' => 'DiffusionView',
'DiffusionHovercardEngineExtension' => 'PhabricatorHovercardEngineExtension',
'DiffusionInlineCommentController' => 'PhabricatorInlineCommentController',
'DiffusionInlineCommentPreviewController' => 'PhabricatorInlineCommentPreviewController',
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
@@ -26,11 +26,6 @@
'limit' => $pager->getPageSize() + 1,
);
- if (!$request->getBool('copies')) {
- $params['needDirectChanges'] = true;
- $params['needChildChanges'] = true;
- }
-
$history_results = $this->callConduitWithDiffusionRequest(
'diffusion.historyquery',
$params);
@@ -39,27 +34,12 @@
$history = $pager->sliceResults($history);
- $show_graph = !strlen($drequest->getPath());
- $history_table = id(new DiffusionHistoryTableView())
- ->setUser($request->getUser())
+ $history_list = id(new DiffusionHistoryListView())
+ ->setViewer($viewer)
->setDiffusionRequest($drequest)
->setHistory($history);
- $history_table->loadRevisions();
-
- if ($show_graph) {
- $history_table->setParents($history_results['parents']);
- $history_table->setIsHead(!$pager->getOffset());
- $history_table->setIsTail(!$pager->getHasMorePages());
- }
-
- $history_header = $this->buildHistoryHeader($drequest);
- $history_panel = id(new PHUIObjectBoxView())
- ->setHeader($history_header)
- ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
- ->setTable($history_table)
- ->setPager($pager);
-
+ $history_list->loadRevisions();
$header = $this->buildHeader($drequest);
$crumbs = $this->buildCrumbs(
@@ -70,44 +50,32 @@
));
$crumbs->setBorder(true);
+ $title = array(
+ pht('History'),
+ $repository->getDisplayName(),
+ );
+
+ $pager = id(new PHUIBoxView())
+ ->addClass('mlb')
+ ->appendChild($pager);
+
$view = id(new PHUITwoColumnView())
->setHeader($header)
->setFooter(array(
- $history_panel,
+ $history_list,
+ $pager,
));
return $this->newPage()
- ->setTitle(
- array(
- pht('History'),
- $repository->getDisplayName(),
- ))
+ ->setTitle($title)
->setCrumbs($crumbs)
- ->appendChild(
- array(
- $view,
- ));
+ ->appendChild($view);
}
private function buildHeader(DiffusionRequest $drequest) {
$viewer = $this->getViewer();
$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',
@@ -117,36 +85,18 @@
->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.
-
- $request = $this->getRequest();
- if ($request->getBool('copies')) {
- $branch_name = pht('Hide Copies/Branches');
- $branch_uri = $request->getRequestURI()
- ->alter('offset', null)
- ->alter('copies', null);
- } else {
- $branch_name = pht('Show Copies/Branches');
- $branch_uri = $request->getRequestURI()
- ->alter('offset', null)
- ->alter('copies', true);
- }
-
- $branch_button = id(new PHUIButtonView())
- ->setTag('a')
- ->setText($branch_name)
- ->setIcon('fa-code-fork')
- ->setHref($branch_uri);
+ ->setIcon('fa-code');
$header = id(new PHUIHeaderView())
- ->setHeader(pht('History'))
- ->addActionLink($browse_button)
- ->addActionLink($branch_button);
+ ->setUser($viewer)
+ ->setPolicyObject($drequest->getRepository())
+ ->addTag($tag)
+ ->setHeader($this->renderPathLinks($drequest, $mode = 'history'))
+ ->setHeaderIcon('fa-clock-o')
+ ->addActionLink($browse_button);
return $header;
+
}
}
diff --git a/src/applications/diffusion/view/DiffusionCommitListView.php b/src/applications/diffusion/view/DiffusionCommitListView.php
--- a/src/applications/diffusion/view/DiffusionCommitListView.php
+++ b/src/applications/diffusion/view/DiffusionCommitListView.php
@@ -25,6 +25,28 @@
return $this->commits;
}
+ public function setHandles(array $handles) {
+ assert_instances_of($handles, 'PhabricatorObjectHandle');
+ $this->handles = $handles;
+ return $this;
+ }
+
+ private function getRequiredHandlePHIDs() {
+ $phids = array();
+ foreach ($this->history as $item) {
+ $data = $item->getCommitData();
+ if ($data) {
+ if ($data->getCommitDetail('authorPHID')) {
+ $phids[$data->getCommitDetail('authorPHID')] = true;
+ }
+ if ($data->getCommitDetail('committerPHID')) {
+ $phids[$data->getCommitDetail('committerPHID')] = true;
+ }
+ }
+ }
+ return array_keys($phids);
+ }
+
private function getCommitDescription($phid) {
if ($this->commits === null) {
return pht('(Unknown Commit)');
@@ -114,12 +136,10 @@
if ($author_phid) {
$author_name = $handles[$author_phid]->renderLink();
$author_image_uri = $handles[$author_phid]->getImageURI();
- $author_image_href = $handles[$author_phid]->getURI();
} else {
$author_name = $commit->getCommitData()->getAuthorName();
$author_image_uri =
celerity_get_resource_uri('/rsrc/image/people/user0.png');
- $author_image_href = null;
}
$commit_tag = id(new PHUITagView())
@@ -134,7 +154,6 @@
->setDisabled($commit->isUnreachable())
->setDescription($message)
->setImageURI($author_image_uri)
- ->setImageHref($author_image_href)
->addByline(pht('Author: %s', $author_name))
->addIcon('none', $committed)
->addAttribute($commit_tag);
diff --git a/src/applications/diffusion/view/DiffusionHistoryListView.php b/src/applications/diffusion/view/DiffusionHistoryListView.php
new file mode 100644
--- /dev/null
+++ b/src/applications/diffusion/view/DiffusionHistoryListView.php
@@ -0,0 +1,225 @@
+<?php
+
+final class DiffusionHistoryListView extends DiffusionHistoryView {
+
+ public function render() {
+ $drequest = $this->getDiffusionRequest();
+ $viewer = $this->getUser();
+ $repository = $drequest->getRepository();
+
+ require_celerity_resource('diffusion-history-css');
+ Javelin::initBehavior('phabricator-tooltips');
+
+ $buildables = $this->loadBuildables(
+ mpull($this->getHistory(), 'getCommit'));
+
+ $show_revisions = PhabricatorApplication::isClassInstalledForViewer(
+ 'PhabricatorDifferentialApplication',
+ $viewer);
+
+ $handles = $viewer->loadHandles($this->getRequiredHandlePHIDs());
+
+ $show_builds = PhabricatorApplication::isClassInstalledForViewer(
+ 'PhabricatorHarbormasterApplication',
+ $this->getUser());
+
+ $rows = array();
+ $ii = 0;
+ $cur_date = 0;
+ $list = null;
+ $header = null;
+ $view = array();
+ foreach ($this->getHistory() as $history) {
+ $epoch = $history->getEpoch();
+ $new_date = date('Ymd', $history->getEpoch());
+ if ($cur_date != $new_date) {
+ if ($list) {
+ $view[] = id(new PHUIObjectBoxView())
+ ->setHeader($header)
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->setObjectList($list);
+ }
+ $date = ucfirst(
+ phabricator_relative_date($history->getEpoch(), $viewer));
+ $header = id(new PHUIHeaderView())
+ ->setHeader($date);
+ $list = id(new PHUIObjectItemListView())
+ ->setFlush(true)
+ ->addClass('diffusion-history-list');
+ }
+
+ if ($epoch) {
+ $committed = $viewer->formatShortDateTime($epoch);
+ } else {
+ $committed = null;
+ }
+
+ $data = $history->getCommitData();
+ $author_phid = $committer = $committer_phid = null;
+ if ($data) {
+ $author_phid = $data->getCommitDetail('authorPHID');
+ $committer_phid = $data->getCommitDetail('committerPHID');
+ $committer = $data->getCommitDetail('committer');
+ }
+
+ if ($author_phid && isset($handles[$author_phid])) {
+ $author_name = $handles[$author_phid]->renderLink();
+ $author_image = $handles[$author_phid]->getImageURI();
+ } else {
+ $author_name = self::renderName($history->getAuthorName());
+ $author_image =
+ celerity_get_resource_uri('/rsrc/image/people/user0.png');
+ }
+
+ $different_committer = false;
+ if ($committer_phid) {
+ $different_committer = ($committer_phid != $author_phid);
+ } else if ($committer != '') {
+ $different_committer = ($committer != $history->getAuthorName());
+ }
+ if ($different_committer) {
+ if ($committer_phid && isset($handles[$committer_phid])) {
+ $committer = $handles[$committer_phid]->renderLink();
+ } else {
+ $committer = self::renderName($committer);
+ }
+ $author_name = hsprintf('%s / %s', $author_name, $committer);
+ }
+
+ // We can show details once the message and change have been imported.
+ $partial_import = PhabricatorRepositoryCommit::IMPORTED_MESSAGE |
+ PhabricatorRepositoryCommit::IMPORTED_CHANGE;
+
+ $commit = $history->getCommit();
+ if ($commit && $commit->isPartiallyImported($partial_import) && $data) {
+ $commit_desc = $history->getSummary();
+ } else {
+ $commit_desc = phutil_tag('em', array(), pht("Importing\xE2\x80\xA6"));
+ }
+
+ $build_view = null;
+ if ($show_builds) {
+ $buildable = idx($buildables, $commit->getPHID());
+ if ($buildable !== null) {
+ $build_view = $this->renderBuildable($buildable);
+ }
+ }
+
+ $browse = $this->linkBrowse(
+ $history->getPath(),
+ array(
+ 'commit' => $history->getCommitIdentifier(),
+ 'branch' => $drequest->getBranch(),
+ 'type' => $history->getFileType(),
+ ));
+
+ $differential_view = null;
+ if ($show_revisions && $commit) {
+ $d_id = idx($this->getRevisions(), $commit->getPHID());
+ if ($d_id) {
+ $differential_view = id(new PHUIIconCircleView())
+ ->setIcon('fa-gear')
+ ->setColor('green')
+ ->setState(PHUIIconCircleView::STATE_SUCCESS)
+ ->addSigil('has-tooltip')
+ ->setSize(PHUIIconCircleView::SMALL)
+ ->setHref('/D'.$d_id)
+ ->addClass('mmr')
+ ->setMetadata(
+ array(
+ 'tip' => 'Revision D'.$d_id,
+ ));
+ }
+ }
+
+ $status = $commit->getAuditStatus();
+ $icon = PhabricatorAuditCommitStatusConstants::getStatusIcon($status);
+ $color = PhabricatorAuditCommitStatusConstants::getStatusColor($status);
+ $name = PhabricatorAuditCommitStatusConstants::getStatusName($status);
+ $audit_view = id(new PHUIIconCircleView())
+ ->setIcon('fa-code')
+ ->setColor($color)
+ ->setState($icon)
+ ->addSigil('has-tooltip')
+ ->setSize(PHUIIconCircleView::SMALL)
+ ->addClass('mmr')
+ ->setMetadata(
+ array(
+ 'tip' => $name,
+ ));
+
+ if ($show_builds) {
+ $buildable = idx($buildables, $commit->getPHID());
+ if ($buildable !== null) {
+ $status = $buildable->getBuildableStatus();
+ $icon = HarbormasterBuildable::getBuildableStatusIcon($status);
+ $color = HarbormasterBuildable::getBuildableStatusColor($status);
+ $name = HarbormasterBuildable::getBuildableStatusName($status);
+ $build_view = id(new PHUIIconCircleView())
+ ->setIcon('fa-recycle')
+ ->setColor($color)
+ ->setState($icon)
+ ->addSigil('has-tooltip')
+ ->setSize(PHUIIconCircleView::SMALL)
+ ->setHref('/'.$buildable->getMonogram())
+ ->addClass('mmr')
+ ->setMetadata(
+ array(
+ 'tip' => $name,
+ ));
+ }
+ }
+
+ $message = null;
+ $commit_link = $repository->getCommitURI(
+ $history->getCommitIdentifier());
+
+ $commit_name = $repository->formatCommitName(
+ $history->getCommitIdentifier(), $local = true);
+
+ $committed = phabricator_datetime($commit->getEpoch(), $viewer);
+ $author_name = phutil_tag(
+ 'strong',
+ array(
+ 'class' => 'diffusion-history-author-name',
+ ),
+ $author_name);
+ $authored = pht('%s on %s.', $author_name, $committed);
+
+ $commit_tag = id(new PHUITagView())
+ ->setName($commit_name)
+ ->setType(PHUITagView::TYPE_SHADE)
+ ->setColor(PHUITagView::COLOR_INDIGO)
+ ->setSlimShady(true);
+
+ $browse_button = id(new PHUIButtonView())
+ ->setText(pht('Browse'))
+ ->setIcon('fa-code')
+ ->setTag('a')
+ ->setColor(PHUIButtonView::SIMPLE)
+ ->appendChild($audit_view);
+
+ $item = id(new PHUIObjectItemView())
+ ->setHeader($commit_desc)
+ ->setHref($commit_link)
+ ->setDisabled($commit->isUnreachable())
+ ->setDescription($message)
+ ->setImageURI($author_image)
+ ->addAttribute($commit_tag)
+ ->addAttribute($authored)
+ ->setSideColumn(array(
+ $differential_view,
+ $audit_view,
+ $build_view,
+ $browse_button,
+ ));
+
+ $list->addItem($item);
+ $cur_date = $new_date;
+ }
+
+
+ return $view;
+ }
+
+}
diff --git a/src/applications/diffusion/view/DiffusionHistoryTableView.php b/src/applications/diffusion/view/DiffusionHistoryTableView.php
--- a/src/applications/diffusion/view/DiffusionHistoryTableView.php
+++ b/src/applications/diffusion/view/DiffusionHistoryTableView.php
@@ -1,87 +1,14 @@
<?php
-final class DiffusionHistoryTableView extends DiffusionView {
-
- private $history;
- private $revisions = array();
- private $handles = array();
- private $isHead;
- private $isTail;
- private $parents;
- private $filterParents;
-
- public function setHistory(array $history) {
- assert_instances_of($history, 'DiffusionPathChange');
- $this->history = $history;
- return $this;
- }
-
- public function loadRevisions() {
- $commit_phids = array();
- foreach ($this->history as $item) {
- if ($item->getCommit()) {
- $commit_phids[] = $item->getCommit()->getPHID();
- }
- }
-
- // TODO: Get rid of this.
- $this->revisions = id(new DifferentialRevision())
- ->loadIDsByCommitPHIDs($commit_phids);
- return $this;
- }
-
- public function setHandles(array $handles) {
- assert_instances_of($handles, 'PhabricatorObjectHandle');
- $this->handles = $handles;
- return $this;
- }
-
- private function getRequiredHandlePHIDs() {
- $phids = array();
- foreach ($this->history as $item) {
- $data = $item->getCommitData();
- if ($data) {
- if ($data->getCommitDetail('authorPHID')) {
- $phids[$data->getCommitDetail('authorPHID')] = true;
- }
- if ($data->getCommitDetail('committerPHID')) {
- $phids[$data->getCommitDetail('committerPHID')] = true;
- }
- }
- }
- return array_keys($phids);
- }
-
- public function setParents(array $parents) {
- $this->parents = $parents;
- return $this;
- }
-
- public function setIsHead($is_head) {
- $this->isHead = $is_head;
- return $this;
- }
-
- public function setIsTail($is_tail) {
- $this->isTail = $is_tail;
- return $this;
- }
-
- public function setFilterParents($filter_parents) {
- $this->filterParents = $filter_parents;
- return $this;
- }
-
- public function getFilterParents() {
- return $this->filterParents;
- }
+final class DiffusionHistoryTableView extends DiffusionHistoryView {
public function render() {
$drequest = $this->getDiffusionRequest();
$viewer = $this->getUser();
- $buildables = $this->loadBuildables(mpull($this->history, 'getCommit'));
+ $buildables = $this->loadBuildables(
+ mpull($this->getHistory(), 'getCommit'));
$has_any_build = false;
$show_revisions = PhabricatorApplication::isClassInstalledForViewer(
@@ -91,14 +18,14 @@
$handles = $viewer->loadHandles($this->getRequiredHandlePHIDs());
$graph = null;
- if ($this->parents) {
- $parents = $this->parents;
+ if ($this->getParents()) {
+ $parents = $this->getParents();
// If we're filtering parents, remove relationships which point to
// commits that are not part of the visible graph. Otherwise, we get
// a big tree of nonsense when viewing release branches like "stable"
// versus "master".
- if ($this->filterParents) {
+ if ($this->getFilterParents()) {
foreach ($parents as $key => $nodes) {
foreach ($nodes as $nkey => $node) {
if (empty($parents[$node])) {
@@ -109,8 +36,8 @@
}
$graph = id(new PHUIDiffGraphView())
- ->setIsHead($this->isHead)
- ->setIsTail($this->isTail)
+ ->setIsHead($this->getIsHead())
+ ->setIsTail($this->getIsTail())
->renderGraph($parents);
}
@@ -120,7 +47,7 @@
$rows = array();
$ii = 0;
- foreach ($this->history as $history) {
+ foreach ($this->getHistory() as $history) {
$epoch = $history->getEpoch();
if ($epoch) {
@@ -209,7 +136,7 @@
$build,
$audit_view,
($commit ?
- self::linkRevision(idx($this->revisions, $commit->getPHID())) :
+ self::linkRevision(idx($this->getRevisions(), $commit->getPHID())) :
null),
$author,
$summary,
diff --git a/src/applications/diffusion/view/DiffusionHistoryView.php b/src/applications/diffusion/view/DiffusionHistoryView.php
new file mode 100644
--- /dev/null
+++ b/src/applications/diffusion/view/DiffusionHistoryView.php
@@ -0,0 +1,101 @@
+<?php
+
+abstract class DiffusionHistoryView extends DiffusionView {
+
+ private $history;
+ private $revisions = array();
+ private $handles = array();
+ private $isHead;
+ private $isTail;
+ private $parents;
+ private $filterParents;
+
+ public function setHistory(array $history) {
+ assert_instances_of($history, 'DiffusionPathChange');
+ $this->history = $history;
+ return $this;
+ }
+
+ public function getHistory() {
+ return $this->history;
+ }
+
+ public function loadRevisions() {
+ $commit_phids = array();
+ foreach ($this->history as $item) {
+ if ($item->getCommit()) {
+ $commit_phids[] = $item->getCommit()->getPHID();
+ }
+ }
+
+ // TODO: Get rid of this.
+ $this->revisions = id(new DifferentialRevision())
+ ->loadIDsByCommitPHIDs($commit_phids);
+ return $this;
+ }
+
+ public function getRevisions() {
+ return $this->revisions;
+ }
+
+ public function setHandles(array $handles) {
+ assert_instances_of($handles, 'PhabricatorObjectHandle');
+ $this->handles = $handles;
+ return $this;
+ }
+
+ public function getRequiredHandlePHIDs() {
+ $phids = array();
+ foreach ($this->history as $item) {
+ $data = $item->getCommitData();
+ if ($data) {
+ if ($data->getCommitDetail('authorPHID')) {
+ $phids[$data->getCommitDetail('authorPHID')] = true;
+ }
+ if ($data->getCommitDetail('committerPHID')) {
+ $phids[$data->getCommitDetail('committerPHID')] = true;
+ }
+ }
+ }
+ return array_keys($phids);
+ }
+
+ public function setParents(array $parents) {
+ $this->parents = $parents;
+ return $this;
+ }
+
+ public function getParents() {
+ return $this->parents;
+ }
+
+ public function setIsHead($is_head) {
+ $this->isHead = $is_head;
+ return $this;
+ }
+
+ public function getIsHead() {
+ return $this->isHead;
+ }
+
+ public function setIsTail($is_tail) {
+ $this->isTail = $is_tail;
+ return $this;
+ }
+
+ public function getIsTail() {
+ return $this->isTail;
+ }
+
+ public function setFilterParents($filter_parents) {
+ $this->filterParents = $filter_parents;
+ return $this;
+ }
+
+ public function getFilterParents() {
+ return $this->filterParents;
+ }
+
+ public function render() {}
+
+}
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
@@ -168,7 +168,7 @@
'sigil' => 'has-tooltip',
'meta' => array(
'tip' => $email->getAddress(),
- 'align' => 'E',
+ 'align' => 'S',
'size' => 'auto',
),
),
@@ -177,30 +177,24 @@
return hsprintf('%s', $name);
}
- final protected function renderBuildable(HarbormasterBuildable $buildable) {
+ final protected function renderBuildable(
+ HarbormasterBuildable $buildable) {
$status = $buildable->getBuildableStatus();
+ Javelin::initBehavior('phabricator-tooltips');
$icon = HarbormasterBuildable::getBuildableStatusIcon($status);
$color = HarbormasterBuildable::getBuildableStatusColor($status);
$name = HarbormasterBuildable::getBuildableStatusName($status);
- $icon_view = id(new PHUIIconView())
- ->setIcon($icon.' '.$color);
-
- $tooltip_view = javelin_tag(
- 'span',
- array(
- 'sigil' => 'has-tooltip',
- 'meta' => array('tip' => $name),
- ),
- $icon_view);
-
- Javelin::initBehavior('phabricator-tooltips');
+ return id(new PHUIIconView())
+ ->setIcon($icon.' '.$color)
+ ->addSigil('has-tooltip')
+ ->setHref('/'.$buildable->getMonogram())
+ ->setMetadata(
+ array(
+ 'tip' => $name,
+ ));
- return phutil_tag(
- 'a',
- array('href' => '/'.$buildable->getMonogram()),
- $tooltip_view);
}
final protected function loadBuildables(array $commits) {
diff --git a/webroot/rsrc/css/application/diffusion/diffusion-history.css b/webroot/rsrc/css/application/diffusion/diffusion-history.css
--- a/webroot/rsrc/css/application/diffusion/diffusion-history.css
+++ b/webroot/rsrc/css/application/diffusion/diffusion-history.css
@@ -3,7 +3,7 @@
*/
.diffusion-history-list .phui-oi-link {
- color: {$darkbluetext};
+ color: #000;
font-size: {$biggerfontsize};
}
@@ -11,6 +11,10 @@
border-color: transparent;
}
+.diffusion-history-list .phui-oi-attribute .phui-tag-indigo a {
+ color: {$indigo};
+}
+
.diffusion-history-message {
background-color: {$bluebackground};
padding: 16px;
@@ -18,3 +22,12 @@
border-radius: 5px;
color: {$darkbluetext};
}
+
+.diffusion-history-list .phui-oi-attribute {
+ font-size: {$smallerfontsize};
+ letter-spacing: 0.01em;
+}
+
+.diffusion-history-author-name a {
+ color: {$darkbluetext};
+}
diff --git a/webroot/rsrc/css/phui/object-item/phui-oi-list-view.css b/webroot/rsrc/css/phui/object-item/phui-oi-list-view.css
--- a/webroot/rsrc/css/phui/object-item/phui-oi-list-view.css
+++ b/webroot/rsrc/css/phui/object-item/phui-oi-list-view.css
@@ -182,6 +182,10 @@
vertical-align: top;
}
+.phui-oi-col2.phui-oi-side-column {
+ width: 200px;
+}
+
.device-phone .phui-oi-col1,
.device-phone .phui-oi-col2 {
display: block;
diff --git a/webroot/rsrc/css/phui/phui-icon.css b/webroot/rsrc/css/phui/phui-icon.css
--- a/webroot/rsrc/css/phui/phui-icon.css
+++ b/webroot/rsrc/css/phui/phui-icon.css
@@ -144,7 +144,7 @@
color: {$red};
}
-a.phui-icon-circle .phui-icon-view.phui-icon-circle-state-icon {
+.phui-icon-circle .phui-icon-view.phui-icon-circle-state-icon {
position: absolute;
width: 14px;
height: 14px;

File Metadata

Mime Type
text/plain
Expires
Fri, Nov 22, 10:40 PM (18 h, 27 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6776174
Default Alt Text
D18039.diff (28 KB)

Event Timeline