1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-24 06:20:56 +01:00

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
This commit is contained in:
epriestley 2016-02-10 15:06:20 -08:00
parent 1fb76655df
commit 0b5abf7bb5
3 changed files with 46 additions and 39 deletions

View file

@ -415,11 +415,11 @@ return array(
'rsrc/js/application/phortune/phortune-credit-card-form.js' => '2290aeef', '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-control.js' => 'd0c516d5',
'rsrc/js/application/policy/behavior-policy-rule-editor.js' => '5e9f347c', 'rsrc/js/application/policy/behavior-policy-rule-editor.js' => '5e9f347c',
'rsrc/js/application/projects/WorkboardBoard.js' => '069d6dd3', 'rsrc/js/application/projects/WorkboardBoard.js' => '52291776',
'rsrc/js/application/projects/WorkboardCard.js' => '2fcefa17', 'rsrc/js/application/projects/WorkboardCard.js' => 'c587b80f',
'rsrc/js/application/projects/WorkboardColumn.js' => 'e8f303bb', 'rsrc/js/application/projects/WorkboardColumn.js' => 'f05d6e5d',
'rsrc/js/application/projects/WorkboardController.js' => 'fa1378c3', '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-project-create.js' => '065227cc',
'rsrc/js/application/projects/behavior-reorder-columns.js' => 'e1d25dfb', 'rsrc/js/application/projects/behavior-reorder-columns.js' => 'e1d25dfb',
'rsrc/js/application/releeph/releeph-preview-branch.js' => 'b2b4fbaf', 'rsrc/js/application/releeph/releeph-preview-branch.js' => 'b2b4fbaf',
@ -659,7 +659,7 @@ return array(
'javelin-behavior-phui-profile-menu' => '12884df9', 'javelin-behavior-phui-profile-menu' => '12884df9',
'javelin-behavior-policy-control' => 'd0c516d5', 'javelin-behavior-policy-control' => 'd0c516d5',
'javelin-behavior-policy-rule-editor' => '5e9f347c', 'javelin-behavior-policy-rule-editor' => '5e9f347c',
'javelin-behavior-project-boards' => 'e1b56d72', 'javelin-behavior-project-boards' => '14a1faae',
'javelin-behavior-project-create' => '065227cc', 'javelin-behavior-project-create' => '065227cc',
'javelin-behavior-quicksand-blacklist' => '7927a7d3', 'javelin-behavior-quicksand-blacklist' => '7927a7d3',
'javelin-behavior-recurring-edit' => '5f1c4d5f', 'javelin-behavior-recurring-edit' => '5f1c4d5f',
@ -726,9 +726,9 @@ return array(
'javelin-view-renderer' => '6c2b09a2', 'javelin-view-renderer' => '6c2b09a2',
'javelin-view-visitor' => 'efe49472', 'javelin-view-visitor' => 'efe49472',
'javelin-websocket' => 'e292eaf4', 'javelin-websocket' => 'e292eaf4',
'javelin-workboard-board' => '069d6dd3', 'javelin-workboard-board' => '52291776',
'javelin-workboard-card' => '2fcefa17', 'javelin-workboard-card' => 'c587b80f',
'javelin-workboard-column' => 'e8f303bb', 'javelin-workboard-column' => 'f05d6e5d',
'javelin-workboard-controller' => 'fa1378c3', 'javelin-workboard-controller' => 'fa1378c3',
'javelin-workflow' => '5b2e3e2b', 'javelin-workflow' => '5b2e3e2b',
'lightbox-attachment-css' => '7acac05d', 'lightbox-attachment-css' => '7acac05d',
@ -919,15 +919,6 @@ return array(
'javelin-stratcom', 'javelin-stratcom',
'javelin-workflow', 'javelin-workflow',
), ),
'069d6dd3' => array(
'javelin-install',
'javelin-dom',
'javelin-util',
'javelin-stratcom',
'javelin-workflow',
'phabricator-draggable-list',
'javelin-workboard-column',
),
'06c32383' => array( '06c32383' => array(
'javelin-behavior', 'javelin-behavior',
'javelin-typeahead-ondemand-source', 'javelin-typeahead-ondemand-source',
@ -975,6 +966,15 @@ return array(
'javelin-dom', 'javelin-dom',
'javelin-history', 'javelin-history',
), ),
'14a1faae' => array(
'javelin-behavior',
'javelin-dom',
'javelin-util',
'javelin-vector',
'javelin-stratcom',
'javelin-workflow',
'javelin-workboard-controller',
),
'1ad0a787' => array( '1ad0a787' => array(
'javelin-install', 'javelin-install',
'javelin-reactor', 'javelin-reactor',
@ -1082,9 +1082,6 @@ return array(
'2ee659ce' => array( '2ee659ce' => array(
'javelin-install', 'javelin-install',
), ),
'2fcefa17' => array(
'javelin-install',
),
'327a00d1' => array( '327a00d1' => array(
'javelin-behavior', 'javelin-behavior',
'javelin-stratcom', 'javelin-stratcom',
@ -1217,6 +1214,15 @@ return array(
'javelin-dom', 'javelin-dom',
'javelin-reactor-dom', 'javelin-reactor-dom',
), ),
52291776 => array(
'javelin-install',
'javelin-dom',
'javelin-util',
'javelin-stratcom',
'javelin-workflow',
'phabricator-draggable-list',
'javelin-workboard-column',
),
'5359e785' => array( '5359e785' => array(
'javelin-install', 'javelin-install',
'javelin-util', 'javelin-util',
@ -1802,6 +1808,9 @@ return array(
'javelin-dom', 'javelin-dom',
'javelin-vector', 'javelin-vector',
), ),
'c587b80f' => array(
'javelin-install',
),
'c72aa091' => array( 'c72aa091' => array(
'javelin-behavior', 'javelin-behavior',
'javelin-dom', 'javelin-dom',
@ -1934,15 +1943,6 @@ return array(
'javelin-dom', 'javelin-dom',
'phabricator-prefab', 'phabricator-prefab',
), ),
'e1b56d72' => array(
'javelin-behavior',
'javelin-dom',
'javelin-util',
'javelin-vector',
'javelin-stratcom',
'javelin-workflow',
'javelin-workboard-controller',
),
'e1d25dfb' => array( 'e1d25dfb' => array(
'javelin-behavior', 'javelin-behavior',
'javelin-stratcom', 'javelin-stratcom',
@ -2010,10 +2010,6 @@ return array(
'e6e25838' => array( 'e6e25838' => array(
'javelin-install', 'javelin-install',
), ),
'e8f303bb' => array(
'javelin-install',
'javelin-workboard-card',
),
'e9581f08' => array( 'e9581f08' => array(
'javelin-behavior', 'javelin-behavior',
'javelin-stratcom', 'javelin-stratcom',
@ -2049,6 +2045,10 @@ return array(
'javelin-workflow', 'javelin-workflow',
'javelin-json', 'javelin-json',
), ),
'f05d6e5d' => array(
'javelin-install',
'javelin-workboard-card',
),
'f411b6ae' => array( 'f411b6ae' => array(
'javelin-behavior', 'javelin-behavior',
'javelin-stratcom', 'javelin-stratcom',

View file

@ -120,9 +120,12 @@ final class PhabricatorProjectColumnDetailController
->setActionList($actions); ->setActionList($actions);
$limit = $column->getPointLimit(); $limit = $column->getPointLimit();
$properties->addProperty( if ($limit === null) {
pht('Point Limit'), $limit_text = pht('No Limit');
$limit ? $limit : pht('No Limit')); } else {
$limit_text = $limit;
}
$properties->addProperty(pht('Point Limit'), $limit_text);
return $properties; return $properties;
} }

View file

@ -47,11 +47,13 @@ final class PhabricatorProjectColumnTransactionEditor
case PhabricatorProjectColumnTransaction::TYPE_STATUS: case PhabricatorProjectColumnTransaction::TYPE_STATUS:
return $xaction->getNewValue(); return $xaction->getNewValue();
case PhabricatorProjectColumnTransaction::TYPE_LIMIT: case PhabricatorProjectColumnTransaction::TYPE_LIMIT:
if ($xaction->getNewValue()) { $value = $xaction->getNewValue();
if (strlen($value)) {
return (int)$xaction->getNewValue(); return (int)$xaction->getNewValue();
} } else {
return null; return null;
} }
}
return parent::getCustomTransactionNewValue($object, $xaction); return parent::getCustomTransactionNewValue($object, $xaction);
} }
@ -104,7 +106,9 @@ final class PhabricatorProjectColumnTransactionEditor
$errors[] = new PhabricatorApplicationTransactionValidationError( $errors[] = new PhabricatorApplicationTransactionValidationError(
$type, $type,
pht('Invalid'), 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); $xaction);
} }
} }