Page MenuHomePhabricator

D9721.id23356.diff
No OneTemporary

D9721.id23356.diff

diff --git a/src/applications/project/controller/PhabricatorProjectBoardDeleteController.php b/src/applications/project/controller/PhabricatorProjectBoardDeleteController.php
--- a/src/applications/project/controller/PhabricatorProjectBoardDeleteController.php
+++ b/src/applications/project/controller/PhabricatorProjectBoardDeleteController.php
@@ -42,10 +42,17 @@
}
$column_phid = $column->getPHID();
-
$view_uri = $this->getApplicationURI(
'/board/'.$this->projectID.'/column/'.$this->id.'/');
+ if ($column->isDefaultColumn()) {
+ return $this->newDialog()
+ ->setTitle(pht('Can Not Hide Default Column'))
+ ->appendParagraph(
+ pht('You can not hide the default/backlog column on a board.'))
+ ->addCancelButton($view_uri, pht('Okay'));
+ }
+
if ($request->isFormPost()) {
if ($column->isHidden()) {
$new_status = PhabricatorProjectColumn::STATUS_ACTIVE;
diff --git a/src/applications/project/controller/PhabricatorProjectBoardEditController.php b/src/applications/project/controller/PhabricatorProjectBoardEditController.php
--- a/src/applications/project/controller/PhabricatorProjectBoardEditController.php
+++ b/src/applications/project/controller/PhabricatorProjectBoardEditController.php
@@ -111,9 +111,11 @@
if ($is_new) {
$title = pht('Create Column');
$submit = pht('Create Column');
+ $crumb_text = pht('Create Column');
} else {
- $title = pht('Edit %s', $column->getName());
+ $title = pht('Edit %s', $column->getDisplayName());
$submit = pht('Save Column');
+ $crumb_text = pht('Edit');
}
$form->appendChild(
@@ -125,7 +127,14 @@
$crumbs->addTextCrumb(
pht('Board'),
$this->getApplicationURI('board/'.$project->getID().'/'));
- $crumbs->addTextCrumb($title);
+
+ if (!$is_new) {
+ $crumbs->addTextCrumb(
+ $column->getDisplayName(),
+ $view_uri);
+ }
+
+ $crumbs->addTextCrumb($crumb_text);
$form_box = id(new PHUIObjectBoxView())
->setHeaderText($title)
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
@@ -175,9 +175,7 @@
->setHeader($column->getDisplayName())
->setHeaderColor($column->getHeaderColor());
- if (!$column->isDefaultColumn()) {
- $panel->setEditURI($board_uri.'column/'.$column->getID().'/');
- }
+ $panel->setEditURI($board_uri.'column/'.$column->getID().'/');
$panel->setHeaderAction(id(new PHUIIconView())
->setIconFont('fa-plus')
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
@@ -54,7 +54,7 @@
->setObjectPHID($column->getPHID())
->setTransactions($xactions);
- $title = pht('%s', $column->getName());
+ $title = pht('%s', $column->getDisplayName());
$crumbs = $this->buildApplicationCrumbs();
$crumbs->addTextCrumb(
pht('Board'),
@@ -85,7 +85,7 @@
$header = id(new PHUIHeaderView())
->setUser($viewer)
- ->setHeader($column->getName())
+ ->setHeader($column->getDisplayName())
->setPolicyObject($column);
if ($column->isHidden()) {
@@ -119,13 +119,15 @@
->setDisabled(!$can_edit)
->setWorkflow(!$can_edit));
+ $can_hide = ($can_edit && !$column->isDefaultColumn());
+
if (!$column->isHidden()) {
$actions->addAction(
id(new PhabricatorActionView())
->setName(pht('Hide Column'))
->setIcon('fa-eye-slash')
->setHref($this->getApplicationURI($base_uri.'delete/'.$id.'/'))
- ->setDisabled(!$can_edit)
+ ->setDisabled(!$can_hide)
->setWorkflow(true));
} else {
$actions->addAction(
@@ -133,7 +135,7 @@
->setName(pht('Show Column'))
->setIcon('fa-eye')
->setHref($this->getApplicationURI($base_uri.'delete/'.$id.'/'))
- ->setDisabled(!$can_edit)
+ ->setDisabled(!$can_hide)
->setWorkflow(true));
}
diff --git a/src/applications/project/editor/PhabricatorProjectColumnTransactionEditor.php b/src/applications/project/editor/PhabricatorProjectColumnTransactionEditor.php
--- a/src/applications/project/editor/PhabricatorProjectColumnTransactionEditor.php
+++ b/src/applications/project/editor/PhabricatorProjectColumnTransactionEditor.php
@@ -81,7 +81,10 @@
$object->getName(),
$xactions);
- if ($missing) {
+ // The default "Backlog" column is allowed to be unnamed, which
+ // means we use the default name.
+
+ if ($missing && !$object->isDefaultColumn()) {
$error = new PhabricatorApplicationTransactionValidationError(
$type,
pht('Required'),
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
@@ -50,10 +50,16 @@
}
public function getDisplayName() {
+ $name = $this->getName();
+ if (strlen($name)) {
+ return $name;
+ }
+
if ($this->isDefaultColumn()) {
return pht('Backlog');
}
- return $this->getName();
+
+ return pht('Unnamed Column');
}
public function getHeaderColor() {
diff --git a/src/applications/project/storage/PhabricatorProjectColumnTransaction.php b/src/applications/project/storage/PhabricatorProjectColumnTransaction.php
--- a/src/applications/project/storage/PhabricatorProjectColumnTransaction.php
+++ b/src/applications/project/storage/PhabricatorProjectColumnTransaction.php
@@ -21,16 +21,27 @@
switch ($this->getTransactionType()) {
case PhabricatorProjectColumnTransaction::TYPE_NAME:
- if (!strlen($old)) {
+ if ($old === null) {
return pht(
'%s created this column.',
$author_handle);
} else {
- return pht(
- '%s renamed this column from "%s" to "%s".',
- $author_handle,
- $old,
- $new);
+ if (!strlen($old)) {
+ return pht(
+ '%s named this column "%s".',
+ $author_handle,
+ $new);
+ } else if (strlen($new)) {
+ return pht(
+ '%s renamed this column from "%s" to "%s".',
+ $author_handle,
+ $old,
+ $new);
+ } else {
+ return pht(
+ '%s removed the custom name of this column.',
+ $author_handle);
+ }
}
case PhabricatorProjectColumnTransaction::TYPE_STATUS:
switch ($new) {

File Metadata

Mime Type
text/plain
Expires
Mar 16 2025, 5:01 AM (4 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7223709
Default Alt Text
D9721.id23356.diff (7 KB)

Event Timeline