Page MenuHomePhabricator

D18115.id43577.diff
No OneTemporary

D18115.id43577.diff

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
@@ -889,6 +889,7 @@
'DiffusionSymbolQuery' => 'applications/diffusion/query/DiffusionSymbolQuery.php',
'DiffusionTagListController' => 'applications/diffusion/controller/DiffusionTagListController.php',
'DiffusionTagListView' => 'applications/diffusion/view/DiffusionTagListView.php',
+ 'DiffusionTagTableView' => 'applications/diffusion/view/DiffusionTagTableView.php',
'DiffusionTaggedRepositoriesFunctionDatasource' => 'applications/diffusion/typeahead/DiffusionTaggedRepositoriesFunctionDatasource.php',
'DiffusionTagsQueryConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionTagsQueryConduitAPIMethod.php',
'DiffusionURIEditConduitAPIMethod' => 'applications/diffusion/conduit/DiffusionURIEditConduitAPIMethod.php',
@@ -5859,6 +5860,7 @@
'DiffusionSymbolQuery' => 'PhabricatorOffsetPagedQuery',
'DiffusionTagListController' => 'DiffusionController',
'DiffusionTagListView' => 'DiffusionView',
+ 'DiffusionTagTableView' => 'DiffusionView',
'DiffusionTaggedRepositoriesFunctionDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
'DiffusionTagsQueryConduitAPIMethod' => 'DiffusionQueryConduitAPIMethod',
'DiffusionURIEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod',
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
@@ -490,7 +490,7 @@
->needCommitData(true)
->execute();
- $view = id(new DiffusionTagListView())
+ $view = id(new DiffusionTagTableView())
->setUser($viewer)
->setDiffusionRequest($drequest)
->setTags($tags)
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
@@ -64,17 +64,21 @@
->needCommitData(true)
->execute();
- $view = id(new DiffusionTagListView())
+ $tag_list = id(new DiffusionTagListView())
->setTags($tags)
->setUser($viewer)
->setCommits($commits)
->setDiffusionRequest($drequest);
- $phids = $view->getRequiredHandlePHIDs();
+ $phids = $tag_list->getRequiredHandlePHIDs();
$handles = $this->loadViewerHandles($phids);
- $view->setHandles($handles);
+ $tag_list->setHandles($handles);
- $content = $view;
+ $content = id(new PHUIObjectBoxView())
+ ->setHeaderText($repository->getDisplayName())
+ ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
+ ->setTable($tag_list)
+ ->setPager($pager);
}
$crumbs = $this->buildCrumbs(
@@ -84,17 +88,9 @@
));
$crumbs->setBorder(true);
- $box = id(new PHUIObjectBoxView())
- ->setHeaderText($repository->getDisplayName())
- ->setBackground(PHUIObjectBoxView::BLUE_PROPERTY)
- ->setTable($view)
- ->setPager($pager);
-
$view = id(new PHUITwoColumnView())
->setHeader($header)
- ->setFooter(array(
- $box,
- ));
+ ->setFooter($content);
return $this->newPage()
->setTitle(
@@ -103,7 +99,8 @@
$repository->getDisplayName(),
))
->setCrumbs($crumbs)
- ->appendChild($view);
+ ->appendChild($view)
+ ->addClass('diffusion-history-view');
}
}
diff --git a/src/applications/diffusion/view/DiffusionHistoryListView.php b/src/applications/diffusion/view/DiffusionHistoryListView.php
--- a/src/applications/diffusion/view/DiffusionHistoryListView.php
+++ b/src/applications/diffusion/view/DiffusionHistoryListView.php
@@ -119,19 +119,7 @@
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 PHUIButtonView())
- ->setTag('a')
- ->setText($name)
- ->setIcon($icon)
- ->setColor($color)
- ->setHref('/'.$buildable->getMonogram())
- ->addClass('mmr')
- ->setButtonType(PHUIButtonView::BUTTONTYPE_SIMPLE)
- ->addClass('diffusion-list-build-status');
+ $build_view = $this->renderBuildable($buildable, 'button');
}
}
diff --git a/src/applications/diffusion/view/DiffusionTagListView.php b/src/applications/diffusion/view/DiffusionTagListView.php
--- a/src/applications/diffusion/view/DiffusionTagListView.php
+++ b/src/applications/diffusion/view/DiffusionTagListView.php
@@ -29,36 +29,27 @@
$drequest = $this->getDiffusionRequest();
$repository = $drequest->getRepository();
$viewer = $this->getViewer();
+ require_celerity_resource('diffusion-history-css');
$buildables = $this->loadBuildables($this->commits);
- $has_builds = false;
- $rows = array();
+ $list = id(new PHUIObjectItemListView())
+ ->setFlush(true)
+ ->addClass('diffusion-history-list');
foreach ($this->tags as $tag) {
$commit = idx($this->commits, $tag->getCommitIdentifier());
- $tag_link = phutil_tag(
- 'a',
+ $tag_href = $drequest->generateURI(
array(
- 'href' => $drequest->generateURI(
- array(
- 'action' => 'browse',
- 'commit' => $tag->getName(),
- )),
- ),
- $tag->getName());
+ 'action' => 'browse',
+ 'commit' => $tag->getName(),
+ ));
- $commit_link = phutil_tag(
- 'a',
+ $commit_href = $drequest->generateURI(
array(
- 'href' => $drequest->generateURI(
- array(
- 'action' => 'commit',
- 'commit' => $tag->getCommitIdentifier(),
- )),
- ),
- $repository->formatCommitName(
- $tag->getCommitIdentifier()));
+ 'action' => 'commit',
+ 'commit' => $tag->getCommitIdentifier(),
+ ));
$author = null;
if ($commit && $commit->getAuthorPHID()) {
@@ -69,6 +60,15 @@
$author = self::renderName($tag->getAuthor());
}
+ $committed = phabricator_datetime($commit->getEpoch(), $viewer);
+ $author_name = phutil_tag(
+ 'strong',
+ array(
+ 'class' => 'diffusion-history-author-name',
+ ),
+ $author);
+ $authored = pht('%s on %s.', $author_name, $committed);
+
$description = null;
if ($tag->getType() == 'git/tag') {
// In Git, a tag may be a "real" tag, or just a reference to a commit.
@@ -83,58 +83,53 @@
}
}
- $build = null;
+ $build_view = null;
if ($commit) {
$buildable = idx($buildables, $commit->getPHID());
if ($buildable) {
- $build = $this->renderBuildable($buildable);
- $has_builds = true;
+ $build_view = $this->renderBuildable($buildable, 'button');
}
}
- $history = $this->linkTagHistory($tag->getName());
-
- $rows[] = array(
- $history,
- $tag_link,
- $commit_link,
- $build,
- $author,
- $description,
- $viewer->formatShortDateTime($tag->getEpoch()),
- );
- }
+ $commit_name = $repository->formatCommitName(
+ $tag->getCommitIdentifier(), $local = true);
- $table = id(new AphrontTableView($rows))
- ->setHeaders(
- array(
- null,
- pht('Tag'),
- pht('Commit'),
- null,
- pht('Author'),
- pht('Description'),
- pht('Created'),
- ))
- ->setColumnClasses(
+ $history_href = $drequest->generateURI(
array(
- 'nudgeright',
- 'pri',
- '',
- '',
- '',
- 'wide',
- 'right',
- ))
- ->setColumnVisibility(
- array(
- true,
- true,
- true,
- $has_builds,
+ 'action' => 'history',
+ 'commit' => $tag->getName(),
));
- return $table->render();
+ $history_button = id(new PHUIButtonView())
+ ->setText(pht('History'))
+ ->setIcon('fa-history')
+ ->setHref($history_href)
+ ->setTag('a')
+ ->setButtonType(PHUIButtonView::BUTTONTYPE_SIMPLE);
+
+ $commit_tag = id(new PHUITagView())
+ ->setName($commit_name)
+ ->setHref($commit_href)
+ ->setType(PHUITagView::TYPE_SHADE)
+ ->setColor(PHUITagView::COLOR_INDIGO)
+ ->setBorder(PHUITagView::BORDER_NONE)
+ ->setSlimShady(true);
+
+ $item = id(new PHUIObjectItemView())
+ ->setHeader($tag->getName())
+ ->setHref($tag_href)
+ ->addAttribute(array($commit_tag))
+ ->addAttribute($description)
+ ->addAttribute($authored)
+ ->setSideColumn(array(
+ $build_view,
+ $history_button,
+ ));
+
+ $list->addItem($item);
+ }
+
+ return $list;
}
}
diff --git a/src/applications/diffusion/view/DiffusionTagListView.php b/src/applications/diffusion/view/DiffusionTagTableView.php
copy from src/applications/diffusion/view/DiffusionTagListView.php
copy to src/applications/diffusion/view/DiffusionTagTableView.php
--- a/src/applications/diffusion/view/DiffusionTagListView.php
+++ b/src/applications/diffusion/view/DiffusionTagTableView.php
@@ -1,6 +1,6 @@
<?php
-final class DiffusionTagListView extends DiffusionView {
+final class DiffusionTagTableView extends DiffusionView {
private $tags;
private $commits = array();
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
@@ -190,7 +190,8 @@
}
final protected function renderBuildable(
- HarbormasterBuildable $buildable) {
+ HarbormasterBuildable $buildable,
+ $type = null) {
$status = $buildable->getBuildableStatus();
Javelin::initBehavior('phabricator-tooltips');
@@ -198,6 +199,18 @@
$color = HarbormasterBuildable::getBuildableStatusColor($status);
$name = HarbormasterBuildable::getBuildableStatusName($status);
+ if ($type == 'button') {
+ return id(new PHUIButtonView())
+ ->setTag('a')
+ ->setText($name)
+ ->setIcon($icon)
+ ->setColor($color)
+ ->setHref('/'.$buildable->getMonogram())
+ ->addClass('mmr')
+ ->setButtonType(PHUIButtonView::BUTTONTYPE_SIMPLE)
+ ->addClass('diffusion-list-build-status');
+ }
+
return id(new PHUIIconView())
->setIcon($icon.' '.$color)
->addSigil('has-tooltip')

File Metadata

Mime Type
text/plain
Expires
Sun, Mar 23, 10:18 PM (4 d, 9 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7719130
Default Alt Text
D18115.id43577.diff (11 KB)

Event Timeline