@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

+46 -39
+33 -33
resources/celerity/map.php
··· 415 415 'rsrc/js/application/phortune/phortune-credit-card-form.js' => '2290aeef', 416 416 'rsrc/js/application/policy/behavior-policy-control.js' => 'd0c516d5', 417 417 'rsrc/js/application/policy/behavior-policy-rule-editor.js' => '5e9f347c', 418 - 'rsrc/js/application/projects/WorkboardBoard.js' => '069d6dd3', 419 - 'rsrc/js/application/projects/WorkboardCard.js' => '2fcefa17', 420 - 'rsrc/js/application/projects/WorkboardColumn.js' => 'e8f303bb', 418 + 'rsrc/js/application/projects/WorkboardBoard.js' => '52291776', 419 + 'rsrc/js/application/projects/WorkboardCard.js' => 'c587b80f', 420 + 'rsrc/js/application/projects/WorkboardColumn.js' => 'f05d6e5d', 421 421 'rsrc/js/application/projects/WorkboardController.js' => 'fa1378c3', 422 - 'rsrc/js/application/projects/behavior-project-boards.js' => 'e1b56d72', 422 + 'rsrc/js/application/projects/behavior-project-boards.js' => '14a1faae', 423 423 'rsrc/js/application/projects/behavior-project-create.js' => '065227cc', 424 424 'rsrc/js/application/projects/behavior-reorder-columns.js' => 'e1d25dfb', 425 425 'rsrc/js/application/releeph/releeph-preview-branch.js' => 'b2b4fbaf', ··· 659 659 'javelin-behavior-phui-profile-menu' => '12884df9', 660 660 'javelin-behavior-policy-control' => 'd0c516d5', 661 661 'javelin-behavior-policy-rule-editor' => '5e9f347c', 662 - 'javelin-behavior-project-boards' => 'e1b56d72', 662 + 'javelin-behavior-project-boards' => '14a1faae', 663 663 'javelin-behavior-project-create' => '065227cc', 664 664 'javelin-behavior-quicksand-blacklist' => '7927a7d3', 665 665 'javelin-behavior-recurring-edit' => '5f1c4d5f', ··· 726 726 'javelin-view-renderer' => '6c2b09a2', 727 727 'javelin-view-visitor' => 'efe49472', 728 728 'javelin-websocket' => 'e292eaf4', 729 - 'javelin-workboard-board' => '069d6dd3', 730 - 'javelin-workboard-card' => '2fcefa17', 731 - 'javelin-workboard-column' => 'e8f303bb', 729 + 'javelin-workboard-board' => '52291776', 730 + 'javelin-workboard-card' => 'c587b80f', 731 + 'javelin-workboard-column' => 'f05d6e5d', 732 732 'javelin-workboard-controller' => 'fa1378c3', 733 733 'javelin-workflow' => '5b2e3e2b', 734 734 'lightbox-attachment-css' => '7acac05d', ··· 919 919 'javelin-stratcom', 920 920 'javelin-workflow', 921 921 ), 922 - '069d6dd3' => array( 923 - 'javelin-install', 924 - 'javelin-dom', 925 - 'javelin-util', 926 - 'javelin-stratcom', 927 - 'javelin-workflow', 928 - 'phabricator-draggable-list', 929 - 'javelin-workboard-column', 930 - ), 931 922 '06c32383' => array( 932 923 'javelin-behavior', 933 924 'javelin-typeahead-ondemand-source', ··· 975 966 'javelin-dom', 976 967 'javelin-history', 977 968 ), 969 + '14a1faae' => array( 970 + 'javelin-behavior', 971 + 'javelin-dom', 972 + 'javelin-util', 973 + 'javelin-vector', 974 + 'javelin-stratcom', 975 + 'javelin-workflow', 976 + 'javelin-workboard-controller', 977 + ), 978 978 '1ad0a787' => array( 979 979 'javelin-install', 980 980 'javelin-reactor', ··· 1080 1080 'javelin-event', 1081 1081 ), 1082 1082 '2ee659ce' => array( 1083 - 'javelin-install', 1084 - ), 1085 - '2fcefa17' => array( 1086 1083 'javelin-install', 1087 1084 ), 1088 1085 '327a00d1' => array( ··· 1216 1213 'javelin-install', 1217 1214 'javelin-dom', 1218 1215 'javelin-reactor-dom', 1216 + ), 1217 + 52291776 => array( 1218 + 'javelin-install', 1219 + 'javelin-dom', 1220 + 'javelin-util', 1221 + 'javelin-stratcom', 1222 + 'javelin-workflow', 1223 + 'phabricator-draggable-list', 1224 + 'javelin-workboard-column', 1219 1225 ), 1220 1226 '5359e785' => array( 1221 1227 'javelin-install', ··· 1802 1808 'javelin-dom', 1803 1809 'javelin-vector', 1804 1810 ), 1811 + 'c587b80f' => array( 1812 + 'javelin-install', 1813 + ), 1805 1814 'c72aa091' => array( 1806 1815 'javelin-behavior', 1807 1816 'javelin-dom', ··· 1934 1943 'javelin-dom', 1935 1944 'phabricator-prefab', 1936 1945 ), 1937 - 'e1b56d72' => array( 1938 - 'javelin-behavior', 1939 - 'javelin-dom', 1940 - 'javelin-util', 1941 - 'javelin-vector', 1942 - 'javelin-stratcom', 1943 - 'javelin-workflow', 1944 - 'javelin-workboard-controller', 1945 - ), 1946 1946 'e1d25dfb' => array( 1947 1947 'javelin-behavior', 1948 1948 'javelin-stratcom', ··· 2010 2010 'e6e25838' => array( 2011 2011 'javelin-install', 2012 2012 ), 2013 - 'e8f303bb' => array( 2014 - 'javelin-install', 2015 - 'javelin-workboard-card', 2016 - ), 2017 2013 'e9581f08' => array( 2018 2014 'javelin-behavior', 2019 2015 'javelin-stratcom', ··· 2048 2044 'javelin-util', 2049 2045 'javelin-workflow', 2050 2046 'javelin-json', 2047 + ), 2048 + 'f05d6e5d' => array( 2049 + 'javelin-install', 2050 + 'javelin-workboard-card', 2051 2051 ), 2052 2052 'f411b6ae' => array( 2053 2053 'javelin-behavior',
+6 -3
src/applications/project/controller/PhabricatorProjectColumnDetailController.php
··· 120 120 ->setActionList($actions); 121 121 122 122 $limit = $column->getPointLimit(); 123 - $properties->addProperty( 124 - pht('Point Limit'), 125 - $limit ? $limit : pht('No Limit')); 123 + if ($limit === null) { 124 + $limit_text = pht('No Limit'); 125 + } else { 126 + $limit_text = $limit; 127 + } 128 + $properties->addProperty(pht('Point Limit'), $limit_text); 126 129 127 130 return $properties; 128 131 }
+7 -3
src/applications/project/editor/PhabricatorProjectColumnTransactionEditor.php
··· 47 47 case PhabricatorProjectColumnTransaction::TYPE_STATUS: 48 48 return $xaction->getNewValue(); 49 49 case PhabricatorProjectColumnTransaction::TYPE_LIMIT: 50 - if ($xaction->getNewValue()) { 50 + $value = $xaction->getNewValue(); 51 + if (strlen($value)) { 51 52 return (int)$xaction->getNewValue(); 53 + } else { 54 + return null; 52 55 } 53 - return null; 54 56 } 55 57 56 58 return parent::getCustomTransactionNewValue($object, $xaction); ··· 104 106 $errors[] = new PhabricatorApplicationTransactionValidationError( 105 107 $type, 106 108 pht('Invalid'), 107 - pht('Column point limit must be empty, or a positive integer.'), 109 + pht( 110 + 'Column point limit must either be empty or a nonnegative '. 111 + 'integer.'), 108 112 $xaction); 109 113 } 110 114 }