1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-18 21:02:41 +01:00

Link proxy column headers on workboards to proxied projects

Summary: Ref T10010. Allows you to click "Milestone 99" to jump directly to that project.

Test Plan:
  - Clicked milestone header, went to milestone.
  - Clicked normal column header, nothing happened. Wow!

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T10010

Differential Revision: https://secure.phabricator.com/D15204
This commit is contained in:
epriestley 2016-02-06 16:25:18 -08:00
parent 4974e8487b
commit a45fe337a1
3 changed files with 46 additions and 1 deletions

View file

@ -281,6 +281,13 @@ final class PhabricatorProjectBoardViewController
->setSubHeader($column->getDisplayType())
->addSigil('workpanel');
$proxy = $column->getProxy();
if ($proxy) {
$proxy_id = $proxy->getID();
$href = $this->getApplicationURI("view/{$proxy_id}/");
$panel->setHref($href);
}
$header_icon = $column->getHeaderIcon();
if ($header_icon) {
$panel->setHeaderIcon($header_icon);

View file

@ -22,6 +22,7 @@ final class PHUIHeaderView extends AphrontTagView {
private $epoch;
private $actionIcons = array();
private $badges = array();
private $href;
public function setHeader($header) {
$this->header = $header;
@ -147,6 +148,15 @@ final class PHUIHeaderView extends AphrontTagView {
return $this;
}
public function setHref($href) {
$this->href = $href;
return $this;
}
public function getHref() {
return $this->href;
}
protected function getTagName() {
return 'div';
}
@ -290,12 +300,25 @@ final class PHUIHeaderView extends AphrontTagView {
->setIcon($this->headerIcon);
$left[] = $icon;
}
$header_content = $this->header;
$href = $this->getHref();
if ($href !== null) {
$header_content = phutil_tag(
'a',
array(
'href' => $href,
),
$header_content);
}
$left[] = phutil_tag(
'span',
array(
'class' => 'phui-header-header',
),
$this->header);
$header_content);
if ($this->subheader || $this->badges) {
$badges = null;

View file

@ -9,6 +9,7 @@ final class PHUIWorkpanelView extends AphrontTagView {
private $headerActions = array();
private $headerTag;
private $headerIcon;
private $href;
public function setHeaderIcon($icon) {
$this->headerIcon = $icon;
@ -49,6 +50,15 @@ final class PHUIWorkpanelView extends AphrontTagView {
return $this;
}
public function setHref($href) {
$this->href = $href;
return $this;
}
public function getHref() {
return $this->href;
}
protected function getTagAttributes() {
return array(
'class' => 'phui-workpanel-view',
@ -85,6 +95,11 @@ final class PHUIWorkpanelView extends AphrontTagView {
$header->addActionIcon($action);
}
$href = $this->getHref();
if ($href !== null) {
$header->setHref($href);
}
$body = phutil_tag(
'div',
array(