Number range filter improvements (#4789)
- Allow minimum or maximum to be unspecified, meaning you want everything up to maximum, or everything above minimum. - Allow for zero values to work - Tweak display of infinite values Fixes #3982.
This commit is contained in:
parent
566f138eab
commit
9b72c2d181
|
|
@ -145,18 +145,19 @@ class Filter extends WidgetBase
|
|||
break;
|
||||
|
||||
case 'numberrange':
|
||||
if ($scope->value && is_array($scope->value) && count($scope->value) === 2 &&
|
||||
$scope->value[0] &&
|
||||
$scope->value[1]
|
||||
if (
|
||||
$scope->value
|
||||
&& (is_array($scope->value) && count($scope->value) === 2)
|
||||
&& (isset($scope->value[0]) || isset($scope->value[1]))
|
||||
) {
|
||||
$min = $scope->value[0];
|
||||
$max = $scope->value[1];
|
||||
|
||||
$params['minStr'] = $min ?: '';
|
||||
$params['min'] = $min ?: null;
|
||||
$params['minStr'] = $min ?? '∞';
|
||||
$params['min'] = $min ?? null;
|
||||
|
||||
$params['maxStr'] = $max ?: '∞';
|
||||
$params['max'] = $max ?: null;
|
||||
$params['maxStr'] = $max ?? '∞';
|
||||
$params['max'] = $max ?? null;
|
||||
}
|
||||
|
||||
break;
|
||||
|
|
@ -790,7 +791,7 @@ class Filter extends WidgetBase
|
|||
if (is_array($scope->value) && count($scope->value) > 1) {
|
||||
list($min, $max) = array_values($scope->value);
|
||||
|
||||
if ($min && $max) {
|
||||
if (isset($min) || isset($max)) {
|
||||
/*
|
||||
* Condition
|
||||
*
|
||||
|
|
@ -1049,8 +1050,7 @@ class Filter extends WidgetBase
|
|||
if (preg_match($numberRegex, $number)) {
|
||||
$numbers[] = $number;
|
||||
} else {
|
||||
$numbers = [];
|
||||
break;
|
||||
$numbers[] = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -257,7 +257,7 @@
|
|||
numbers[1] = numbers[1] && numbers[1].match(numberRegex) ? numbers[1] : null
|
||||
|
||||
if(numbers[0] || numbers[1]) {
|
||||
var min = numbers[0] ? numbers[0] : '',
|
||||
var min = numbers[0] ? numbers[0] : '∞',
|
||||
max = numbers[1] ? numbers[1] : '∞'
|
||||
|
||||
$setting.text(min + ' → ' + max)
|
||||
|
|
|
|||
|
|
@ -3485,7 +3485,7 @@ numberinput.value=''!==defaultValue?defaultValue:'';})}
|
|||
FilterWidget.prototype.updateScopeNumberSetting=function($scope,numbers){var $setting=$scope.find('.filter-setting'),numberRegex=/\d*/,reset=false
|
||||
if(numbers&&numbers.length){numbers[0]=numbers[0]&&numbers[0].match(numberRegex)?numbers[0]:null
|
||||
if(numbers.length>1){numbers[1]=numbers[1]&&numbers[1].match(numberRegex)?numbers[1]:null
|
||||
if(numbers[0]||numbers[1]){var min=numbers[0]?numbers[0]:'',max=numbers[1]?numbers[1]:'∞'
|
||||
if(numbers[0]||numbers[1]){var min=numbers[0]?numbers[0]:'∞',max=numbers[1]?numbers[1]:'∞'
|
||||
$setting.text(min+' → '+max)}else{reset=true}}
|
||||
else if(numbers[0]){$setting.text(numbers[0])}else{reset=true}}
|
||||
else{reset=true}
|
||||
|
|
|
|||
Loading…
Reference in New Issue