From 0b5abf7bb51af5c3da6a760e5a7c10dedd313340 Mon Sep 17 00:00:00 2001 From: epriestley Date: Wed, 10 Feb 2016 15:06:20 -0800 Subject: [PATCH] Allow "0" to be a valid workboard column point limit Summary: Fixes T6580. Now: - Empty field means "unlimited". - Zero means 0. - Nonzero means that number. (Although you can now have fractional points, I didn't change columns to allow fractional limits, because too bad.) Test Plan: {F1103688} Reviewers: chad Reviewed By: chad Maniphest Tasks: T6580 Differential Revision: https://secure.phabricator.com/D15239 --- resources/celerity/map.php | 66 +++++++++---------- ...abricatorProjectColumnDetailController.php | 9 ++- ...bricatorProjectColumnTransactionEditor.php | 10 ++- 3 files changed, 46 insertions(+), 39 deletions(-) diff --git a/resources/celerity/map.php b/resources/celerity/map.php index 6aeac0d365..f734f7c465 100644 --- a/resources/celerity/map.php +++ b/resources/celerity/map.php @@ -415,11 +415,11 @@ return array( 'rsrc/js/application/phortune/phortune-credit-card-form.js' => '2290aeef', 'rsrc/js/application/policy/behavior-policy-control.js' => 'd0c516d5', 'rsrc/js/application/policy/behavior-policy-rule-editor.js' => '5e9f347c', - 'rsrc/js/application/projects/WorkboardBoard.js' => '069d6dd3', - 'rsrc/js/application/projects/WorkboardCard.js' => '2fcefa17', - 'rsrc/js/application/projects/WorkboardColumn.js' => 'e8f303bb', + 'rsrc/js/application/projects/WorkboardBoard.js' => '52291776', + 'rsrc/js/application/projects/WorkboardCard.js' => 'c587b80f', + 'rsrc/js/application/projects/WorkboardColumn.js' => 'f05d6e5d', 'rsrc/js/application/projects/WorkboardController.js' => 'fa1378c3', - 'rsrc/js/application/projects/behavior-project-boards.js' => 'e1b56d72', + 'rsrc/js/application/projects/behavior-project-boards.js' => '14a1faae', 'rsrc/js/application/projects/behavior-project-create.js' => '065227cc', 'rsrc/js/application/projects/behavior-reorder-columns.js' => 'e1d25dfb', 'rsrc/js/application/releeph/releeph-preview-branch.js' => 'b2b4fbaf', @@ -659,7 +659,7 @@ return array( 'javelin-behavior-phui-profile-menu' => '12884df9', 'javelin-behavior-policy-control' => 'd0c516d5', 'javelin-behavior-policy-rule-editor' => '5e9f347c', - 'javelin-behavior-project-boards' => 'e1b56d72', + 'javelin-behavior-project-boards' => '14a1faae', 'javelin-behavior-project-create' => '065227cc', 'javelin-behavior-quicksand-blacklist' => '7927a7d3', 'javelin-behavior-recurring-edit' => '5f1c4d5f', @@ -726,9 +726,9 @@ return array( 'javelin-view-renderer' => '6c2b09a2', 'javelin-view-visitor' => 'efe49472', 'javelin-websocket' => 'e292eaf4', - 'javelin-workboard-board' => '069d6dd3', - 'javelin-workboard-card' => '2fcefa17', - 'javelin-workboard-column' => 'e8f303bb', + 'javelin-workboard-board' => '52291776', + 'javelin-workboard-card' => 'c587b80f', + 'javelin-workboard-column' => 'f05d6e5d', 'javelin-workboard-controller' => 'fa1378c3', 'javelin-workflow' => '5b2e3e2b', 'lightbox-attachment-css' => '7acac05d', @@ -919,15 +919,6 @@ return array( 'javelin-stratcom', 'javelin-workflow', ), - '069d6dd3' => array( - 'javelin-install', - 'javelin-dom', - 'javelin-util', - 'javelin-stratcom', - 'javelin-workflow', - 'phabricator-draggable-list', - 'javelin-workboard-column', - ), '06c32383' => array( 'javelin-behavior', 'javelin-typeahead-ondemand-source', @@ -975,6 +966,15 @@ return array( 'javelin-dom', 'javelin-history', ), + '14a1faae' => array( + 'javelin-behavior', + 'javelin-dom', + 'javelin-util', + 'javelin-vector', + 'javelin-stratcom', + 'javelin-workflow', + 'javelin-workboard-controller', + ), '1ad0a787' => array( 'javelin-install', 'javelin-reactor', @@ -1082,9 +1082,6 @@ return array( '2ee659ce' => array( 'javelin-install', ), - '2fcefa17' => array( - 'javelin-install', - ), '327a00d1' => array( 'javelin-behavior', 'javelin-stratcom', @@ -1217,6 +1214,15 @@ return array( 'javelin-dom', 'javelin-reactor-dom', ), + 52291776 => array( + 'javelin-install', + 'javelin-dom', + 'javelin-util', + 'javelin-stratcom', + 'javelin-workflow', + 'phabricator-draggable-list', + 'javelin-workboard-column', + ), '5359e785' => array( 'javelin-install', 'javelin-util', @@ -1802,6 +1808,9 @@ return array( 'javelin-dom', 'javelin-vector', ), + 'c587b80f' => array( + 'javelin-install', + ), 'c72aa091' => array( 'javelin-behavior', 'javelin-dom', @@ -1934,15 +1943,6 @@ return array( 'javelin-dom', 'phabricator-prefab', ), - 'e1b56d72' => array( - 'javelin-behavior', - 'javelin-dom', - 'javelin-util', - 'javelin-vector', - 'javelin-stratcom', - 'javelin-workflow', - 'javelin-workboard-controller', - ), 'e1d25dfb' => array( 'javelin-behavior', 'javelin-stratcom', @@ -2010,10 +2010,6 @@ return array( 'e6e25838' => array( 'javelin-install', ), - 'e8f303bb' => array( - 'javelin-install', - 'javelin-workboard-card', - ), 'e9581f08' => array( 'javelin-behavior', 'javelin-stratcom', @@ -2049,6 +2045,10 @@ return array( 'javelin-workflow', 'javelin-json', ), + 'f05d6e5d' => array( + 'javelin-install', + 'javelin-workboard-card', + ), 'f411b6ae' => array( 'javelin-behavior', 'javelin-stratcom', diff --git a/src/applications/project/controller/PhabricatorProjectColumnDetailController.php b/src/applications/project/controller/PhabricatorProjectColumnDetailController.php index e008c832d9..b0cd4ac0b4 100644 --- a/src/applications/project/controller/PhabricatorProjectColumnDetailController.php +++ b/src/applications/project/controller/PhabricatorProjectColumnDetailController.php @@ -120,9 +120,12 @@ final class PhabricatorProjectColumnDetailController ->setActionList($actions); $limit = $column->getPointLimit(); - $properties->addProperty( - pht('Point Limit'), - $limit ? $limit : pht('No Limit')); + if ($limit === null) { + $limit_text = pht('No Limit'); + } else { + $limit_text = $limit; + } + $properties->addProperty(pht('Point Limit'), $limit_text); return $properties; } diff --git a/src/applications/project/editor/PhabricatorProjectColumnTransactionEditor.php b/src/applications/project/editor/PhabricatorProjectColumnTransactionEditor.php index 08b0355ce5..19f059b8b5 100644 --- a/src/applications/project/editor/PhabricatorProjectColumnTransactionEditor.php +++ b/src/applications/project/editor/PhabricatorProjectColumnTransactionEditor.php @@ -47,10 +47,12 @@ final class PhabricatorProjectColumnTransactionEditor case PhabricatorProjectColumnTransaction::TYPE_STATUS: return $xaction->getNewValue(); case PhabricatorProjectColumnTransaction::TYPE_LIMIT: - if ($xaction->getNewValue()) { + $value = $xaction->getNewValue(); + if (strlen($value)) { return (int)$xaction->getNewValue(); + } else { + return null; } - return null; } return parent::getCustomTransactionNewValue($object, $xaction); @@ -104,7 +106,9 @@ final class PhabricatorProjectColumnTransactionEditor $errors[] = new PhabricatorApplicationTransactionValidationError( $type, pht('Invalid'), - pht('Column point limit must be empty, or a positive integer.'), + pht( + 'Column point limit must either be empty or a nonnegative '. + 'integer.'), $xaction); } }