Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15428914
D20331.id48527.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
11 KB
Referenced Files
None
Subscribers
None
D20331.id48527.diff
View Options
diff --git a/src/applications/maniphest/editor/ManiphestTransactionEditor.php b/src/applications/maniphest/editor/ManiphestTransactionEditor.php
--- a/src/applications/maniphest/editor/ManiphestTransactionEditor.php
+++ b/src/applications/maniphest/editor/ManiphestTransactionEditor.php
@@ -243,8 +243,7 @@
foreach ($projects as $project) {
$body->addLinkSection(
pht('WORKBOARD'),
- PhabricatorEnv::getProductionURI(
- '/project/board/'.$project->getID().'/'));
+ PhabricatorEnv::getProductionURI($project->getWorkboardURI()));
}
}
diff --git a/src/applications/project/controller/PhabricatorProjectBoardBackgroundController.php b/src/applications/project/controller/PhabricatorProjectBoardBackgroundController.php
--- a/src/applications/project/controller/PhabricatorProjectBoardBackgroundController.php
+++ b/src/applications/project/controller/PhabricatorProjectBoardBackgroundController.php
@@ -55,7 +55,7 @@
$nav = $this->getProfileMenu();
$crumbs = id($this->buildApplicationCrumbs())
- ->addTextCrumb(pht('Workboard'), "/project/board/{$board_id}/")
+ ->addTextCrumb(pht('Workboard'), $board->getWorkboardURI())
->addTextCrumb(pht('Manage'), $manage_uri)
->addTextCrumb(pht('Background Color'));
diff --git a/src/applications/project/controller/PhabricatorProjectBoardManageController.php b/src/applications/project/controller/PhabricatorProjectBoardManageController.php
--- a/src/applications/project/controller/PhabricatorProjectBoardManageController.php
+++ b/src/applications/project/controller/PhabricatorProjectBoardManageController.php
@@ -34,7 +34,7 @@
$curtain = $this->buildCurtainView($board);
$crumbs = $this->buildApplicationCrumbs();
- $crumbs->addTextCrumb(pht('Workboard'), "/project/board/{$board_id}/");
+ $crumbs->addTextCrumb(pht('Workboard'), $board->getWorkboardURI());
$crumbs->addTextCrumb(pht('Manage'));
$crumbs->setBorder(true);
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
@@ -726,7 +726,7 @@
->setType(PHUIListItemView::TYPE_DIVIDER);
$fullscreen = $this->buildFullscreenMenu();
- $crumbs = $this->buildApplicationCrumbs();
+ $crumbs = $this->newWorkboardCrumbs();
$crumbs->addTextCrumb(pht('Workboard'));
$crumbs->setBorder(true);
diff --git a/src/applications/project/controller/PhabricatorProjectColumnDetailController.php b/src/applications/project/controller/PhabricatorProjectColumnDetailController.php
--- a/src/applications/project/controller/PhabricatorProjectColumnDetailController.php
+++ b/src/applications/project/controller/PhabricatorProjectColumnDetailController.php
@@ -47,7 +47,7 @@
$properties = $this->buildPropertyView($column);
$crumbs = $this->buildApplicationCrumbs();
- $crumbs->addTextCrumb(pht('Workboard'), "/project/board/{$project_id}/");
+ $crumbs->addTextCrumb(pht('Workboard'), $project->getWorkboardURI());
$crumbs->addTextCrumb(pht('Column: %s', $title));
$crumbs->setBorder(true);
diff --git a/src/applications/project/controller/PhabricatorProjectColumnEditController.php b/src/applications/project/controller/PhabricatorProjectColumnEditController.php
--- a/src/applications/project/controller/PhabricatorProjectColumnEditController.php
+++ b/src/applications/project/controller/PhabricatorProjectColumnEditController.php
@@ -50,8 +50,7 @@
$v_name = $column->getName();
$validation_exception = null;
- $base_uri = '/board/'.$project_id.'/';
- $view_uri = $this->getApplicationURI($base_uri);
+ $view_uri = $project->getWorkboardURI();
if ($request->isFormPost()) {
$v_name = $request->getStr('name');
diff --git a/src/applications/project/controller/PhabricatorProjectColumnHideController.php b/src/applications/project/controller/PhabricatorProjectColumnHideController.php
--- a/src/applications/project/controller/PhabricatorProjectColumnHideController.php
+++ b/src/applications/project/controller/PhabricatorProjectColumnHideController.php
@@ -38,7 +38,7 @@
$column_phid = $column->getPHID();
- $view_uri = $this->getApplicationURI('/board/'.$project_id.'/');
+ $view_uri = $project->getWorkboardURI();
$view_uri = new PhutilURI($view_uri);
foreach ($request->getPassthroughRequestData() as $key => $value) {
$view_uri->replaceQueryParam($key, $value);
diff --git a/src/applications/project/controller/PhabricatorProjectColumnRemoveTriggerController.php b/src/applications/project/controller/PhabricatorProjectColumnRemoveTriggerController.php
--- a/src/applications/project/controller/PhabricatorProjectColumnRemoveTriggerController.php
+++ b/src/applications/project/controller/PhabricatorProjectColumnRemoveTriggerController.php
@@ -20,7 +20,7 @@
return new Aphront404Response();
}
- $done_uri = $column->getBoardURI();
+ $done_uri = $column->getWorkboardURI();
if (!$column->getTriggerPHID()) {
return $this->newDialog()
diff --git a/src/applications/project/controller/PhabricatorProjectController.php b/src/applications/project/controller/PhabricatorProjectController.php
--- a/src/applications/project/controller/PhabricatorProjectController.php
+++ b/src/applications/project/controller/PhabricatorProjectController.php
@@ -109,6 +109,14 @@
}
protected function buildApplicationCrumbs() {
+ return $this->newApplicationCrumbs('profile');
+ }
+
+ protected function newWorkboardCrumbs() {
+ return $this->newApplicationCrumbs('workboard');
+ }
+
+ private function newApplicationCrumbs($mode) {
$crumbs = parent::buildApplicationCrumbs();
$project = $this->getProject();
@@ -117,10 +125,24 @@
$ancestors = array_reverse($ancestors);
$ancestors[] = $project;
foreach ($ancestors as $ancestor) {
- $crumbs->addTextCrumb(
- $ancestor->getName(),
- $ancestor->getProfileURI()
- );
+ if ($ancestor->getPHID() === $project->getPHID()) {
+ // Link the current project's crumb to its profile no matter what,
+ // since we're already on the right context page for it and linking
+ // to the current page isn't helpful.
+ $crumb_uri = $ancestor->getProfileURI();
+ } else {
+ switch ($mode) {
+ case 'workboard':
+ $crumb_uri = $ancestor->getWorkboardURI();
+ break;
+ case 'profile':
+ default:
+ $crumb_uri = $ancestor->getProfileURI();
+ break;
+ }
+ }
+
+ $crumbs->addTextCrumb($ancestor->getName(), $crumb_uri);
}
}
diff --git a/src/applications/project/controller/trigger/PhabricatorProjectTriggerEditController.php b/src/applications/project/controller/trigger/PhabricatorProjectTriggerEditController.php
--- a/src/applications/project/controller/trigger/PhabricatorProjectTriggerEditController.php
+++ b/src/applications/project/controller/trigger/PhabricatorProjectTriggerEditController.php
@@ -39,7 +39,7 @@
if (!$column) {
return new Aphront404Response();
}
- $board_uri = $column->getBoardURI();
+ $board_uri = $column->getWorkboardURI();
} else {
$column = null;
$board_uri = null;
@@ -122,7 +122,7 @@
$column_editor->applyTransactions($column, $column_xactions);
- $next_uri = $column->getBoardURI();
+ $next_uri = $column->getWorkboardURI();
}
return id(new AphrontRedirectResponse())->setURI($next_uri);
diff --git a/src/applications/project/controller/trigger/PhabricatorProjectTriggerViewController.php b/src/applications/project/controller/trigger/PhabricatorProjectTriggerViewController.php
--- a/src/applications/project/controller/trigger/PhabricatorProjectTriggerViewController.php
+++ b/src/applications/project/controller/trigger/PhabricatorProjectTriggerViewController.php
@@ -111,7 +111,7 @@
$column_name = phutil_tag(
'a',
array(
- 'href' => $column->getBoardURI(),
+ 'href' => $column->getWorkboardURI(),
),
$column->getDisplayName());
} else {
diff --git a/src/applications/project/engineextension/PhabricatorProjectsCurtainExtension.php b/src/applications/project/engineextension/PhabricatorProjectsCurtainExtension.php
--- a/src/applications/project/engineextension/PhabricatorProjectsCurtainExtension.php
+++ b/src/applications/project/engineextension/PhabricatorProjectsCurtainExtension.php
@@ -55,7 +55,7 @@
$column_link = phutil_tag(
'a',
array(
- 'href' => "/project/board/{$project_id}/",
+ 'href' => $column->getWorkboardURI(),
'class' => 'maniphest-board-link',
),
$column_name);
diff --git a/src/applications/project/events/PhabricatorProjectUIEventListener.php b/src/applications/project/events/PhabricatorProjectUIEventListener.php
--- a/src/applications/project/events/PhabricatorProjectUIEventListener.php
+++ b/src/applications/project/events/PhabricatorProjectUIEventListener.php
@@ -81,7 +81,7 @@
$column_link = phutil_tag(
'a',
array(
- 'href' => "/project/board/{$project_id}/",
+ 'href' => $column->getWorkboardURI(),
'class' => 'maniphest-board-link',
),
$column_name);
diff --git a/src/applications/project/menuitem/PhabricatorProjectWorkboardProfileMenuItem.php b/src/applications/project/menuitem/PhabricatorProjectWorkboardProfileMenuItem.php
--- a/src/applications/project/menuitem/PhabricatorProjectWorkboardProfileMenuItem.php
+++ b/src/applications/project/menuitem/PhabricatorProjectWorkboardProfileMenuItem.php
@@ -57,7 +57,7 @@
$project = $config->getProfileObject();
$id = $project->getID();
- $href = "/project/board/{$id}/";
+ $href = $project->getWorkboardURI();
$name = $this->getDisplayName($config);
$item = $this->newItem()
diff --git a/src/applications/project/phid/PhabricatorProjectColumnPHIDType.php b/src/applications/project/phid/PhabricatorProjectColumnPHIDType.php
--- a/src/applications/project/phid/PhabricatorProjectColumnPHIDType.php
+++ b/src/applications/project/phid/PhabricatorProjectColumnPHIDType.php
@@ -37,7 +37,7 @@
$column = $objects[$phid];
$handle->setName($column->getDisplayName());
- $handle->setURI('/project/board/'.$column->getProject()->getID().'/');
+ $handle->setURI($column->getWorkboardURI());
if ($column->isHidden()) {
$handle->setStatus(PhabricatorObjectHandle::STATUS_CLOSED);
diff --git a/src/applications/project/storage/PhabricatorProject.php b/src/applications/project/storage/PhabricatorProject.php
--- a/src/applications/project/storage/PhabricatorProject.php
+++ b/src/applications/project/storage/PhabricatorProject.php
@@ -392,6 +392,10 @@
return "/project/profile/{$id}/";
}
+ public function getWorkboardURI() {
+ return urisprintf('/project/board/%d/', $this->getID());
+ }
+
public function save() {
if (!$this->getMailKey()) {
$this->setMailKey(Filesystem::readRandomCharacters(20));
diff --git a/src/applications/project/storage/PhabricatorProjectColumn.php b/src/applications/project/storage/PhabricatorProjectColumn.php
--- a/src/applications/project/storage/PhabricatorProjectColumn.php
+++ b/src/applications/project/storage/PhabricatorProjectColumn.php
@@ -212,10 +212,8 @@
return true;
}
- public function getBoardURI() {
- return urisprintf(
- '/project/board/%d/',
- $this->getProject()->getID());
+ public function getWorkboardURI() {
+ return $this->getProject()->getWorkboardURI();
}
public function getDropEffects() {
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Mar 24, 11:18 PM (4 d, 17 m ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7593896
Default Alt Text
D20331.id48527.diff (11 KB)
Attached To
Mode
D20331: On workboards, link ancestor project breadcrumbs to their workboards
Attached
Detach File
Event Timeline
Log In to Comment