diff --git a/src/applications/project/controller/PhabricatorProjectBoardViewController.php b/src/applications/project/controller/PhabricatorProjectBoardViewController.php --- a/src/applications/project/controller/PhabricatorProjectBoardViewController.php +++ b/src/applications/project/controller/PhabricatorProjectBoardViewController.php @@ -281,6 +281,13 @@ ->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); diff --git a/src/view/phui/PHUIHeaderView.php b/src/view/phui/PHUIHeaderView.php --- a/src/view/phui/PHUIHeaderView.php +++ b/src/view/phui/PHUIHeaderView.php @@ -22,6 +22,7 @@ private $epoch; private $actionIcons = array(); private $badges = array(); + private $href; public function setHeader($header) { $this->header = $header; @@ -147,6 +148,15 @@ 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 @@ ->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; diff --git a/src/view/phui/PHUIWorkpanelView.php b/src/view/phui/PHUIWorkpanelView.php --- a/src/view/phui/PHUIWorkpanelView.php +++ b/src/view/phui/PHUIWorkpanelView.php @@ -9,6 +9,7 @@ private $headerActions = array(); private $headerTag; private $headerIcon; + private $href; public function setHeaderIcon($icon) { $this->headerIcon = $icon; @@ -49,6 +50,15 @@ 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 @@ $header->addActionIcon($action); } + $href = $this->getHref(); + if ($href !== null) { + $header->setHref($href); + } + $body = phutil_tag( 'div', array(