Page MenuHomePhabricator

D20331.diff
No OneTemporary

D20331.diff

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

Mime Type
text/plain
Expires
Sun, May 12, 6:36 AM (1 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6290810
Default Alt Text
D20331.diff (11 KB)

Event Timeline