@@ -7363,7 +7363,7 @@ angular.module('patternfly.charts').component('pfUtilizationTrendChart', {
7363
7363
* <li>.id - (String) Optional unique Id for the filter field, useful for comparisons
7364
7364
* <li>.title - (String) The title to display for the filter field
7365
7365
* <li>.placeholder - (String) Text to display when no filter value has been entered
7366
- * <li>.filterMultiselect - (Boolean) In `complex-select`, allow selection of multiple values per category . Optional, default is `false`
7366
+ * <li>.filterMultiselect - (Boolean) In `complex-select`, allow selection of multiple categories and values . Optional, default is `false`
7367
7367
* <li>.filterType - (String) The filter input field type (any html input type, or 'select' for a single select box or 'complex-select' for a category select box)
7368
7368
* <li>.filterValues - (Array) List of valid select values used when filterType is 'select' or 'complex-select' (in where these values serve as case insensitve keys for .filterCategories objects)
7369
7369
* <li>.filterCategories - (Array of (Objects)) For 'complex-select' only, array of objects whoes keys (case insensitive) match the .filterValues, these objects include each of the filter fields above (sans .placeholder)
@@ -7463,9 +7463,10 @@ angular.module('patternfly.charts').component('pfUtilizationTrendChart', {
7463
7463
} else if (filter.id === 'address') {
7464
7464
match = item.address.match(re) !== null;
7465
7465
} else if (filter.id === 'birthMonth') {
7466
- match = item.birthMonth === filter.value;
7466
+ match = item.birthMonth === filter.value.id || item.birthMonth === filter.value ;
7467
7467
} else if (filter.id === 'car') {
7468
- match = item.car === filter.value;
7468
+ match = item.car === ((filter.value.filterCategory.id || filter.value.filterCategory)
7469
+ + filter.value.filterDelimiter + (filter.value.filterValue.id || filter.value.filterValue));
7469
7470
}
7470
7471
return match;
7471
7472
};
@@ -7499,7 +7500,16 @@ angular.module('patternfly.charts').component('pfUtilizationTrendChart', {
7499
7500
var filterChange = function (filters) {
7500
7501
$scope.filtersText = "";
7501
7502
filters.forEach(function (filter) {
7502
- $scope.filtersText += filter.title + " : " + filter.value + "\n";
7503
+ $scope.filtersText += filter.title + " : ";
7504
+ if (filter.value.filterCategory) {
7505
+ $scope.filtersText += ((filter.value.filterCategory.title || filter.value.filterCategory)
7506
+ + filter.value.filterDelimiter + (filter.value.filterValue.title || filter.value.filterValue));
7507
+ } else if (filter.value.title){
7508
+ $scope.filtersText += filter.value.title;
7509
+ } else {
7510
+ $scope.filtersText += filter.value;
7511
+ }
7512
+ $scope.filtersText += "\n";
7503
7513
});
7504
7514
applyFilters(filters);
7505
7515
};
@@ -7670,14 +7680,8 @@ angular.module('patternfly.filters').component('pfFilterPanelResults', {
7670
7680
return angular.isDefined(_.find(ctrl.config.appliedFilters, {title: filter.title, value: filter.value}));
7671
7681
}
7672
7682
7673
- function findDuplicateCategory (field, value) {
7674
- var duplicateValue;
7675
-
7676
- function searchAppliedFilters (item) {
7677
- return _.includes(item.value, _.split(value, field.filterDelimiter, 1)) ? duplicateValue = item : null;
7678
- }
7679
-
7680
- return _.some(ctrl.config.appliedFilters, searchAppliedFilters) ? duplicateValue : null;
7683
+ function findDuplicateComplexSelect (item) {
7684
+ return item.value.filterCategory;
7681
7685
}
7682
7686
7683
7687
function enforceSingleSelect (filter) {
@@ -7698,8 +7702,8 @@ angular.module('patternfly.filters').component('pfFilterPanelResults', {
7698
7702
enforceSingleSelect(newFilter);
7699
7703
}
7700
7704
7701
- if (field.filterType === 'complex-select' && !field.filterMultiselect && findDuplicateCategory(field, value) ) {
7702
- _.remove(ctrl.config.appliedFilters, findDuplicateCategory(field, value) );
7705
+ if (field.filterType === 'complex-select' && !field.filterMultiselect) {
7706
+ _.remove(ctrl.config.appliedFilters, findDuplicateComplexSelect );
7703
7707
}
7704
7708
7705
7709
ctrl.config.appliedFilters.push(newFilter);
@@ -7727,7 +7731,7 @@ angular.module('patternfly.filters').component('pfFilterPanelResults', {
7727
7731
* <li>.id - (String) Optional unique Id for the filter field, useful for comparisons
7728
7732
* <li>.title - (String) The title to display for the filter field
7729
7733
* <li>.placeholder - (String) Text to display when no filter value has been entered
7730
- * <li>.filterMultiselect - (Boolean) In `complex-select`, allow selection of multiple values per category . Optional, default is `false`
7734
+ * <li>.filterMultiselect - (Boolean) In `complex-select`, allow selection of multiple categories and values . Optional, default is `false`
7731
7735
* <li>.filterType - (String) The filter input field type (any html input type, or 'select' for a single select box or 'complex-select' for a category select box)
7732
7736
* <li>.filterValues - (Array) List of valid select values used when filterType is 'select' or 'complex-select' (in where these values serve as case insensitve keys for .filterCategories objects)
7733
7737
* <li>.filterCategories - (Array of (Objects)) For 'complex-select' only, array of objects whoes keys (case insensitive) match the .filterValues, these objects include each of the filter fields above (sans .placeholder)
@@ -7788,7 +7792,11 @@ angular.module('patternfly.filters').component('pfFilterFields', {
7788
7792
break;
7789
7793
}
7790
7794
if (ctrl.filterCategory && ctrl.filterValue) {
7791
- ctrl.addFilterFn(ctrl.currentField, ctrl.filterCategory + ctrl.currentField.filterDelimiter + ctrl.filterValue);
7795
+ ctrl.addFilterFn(ctrl.currentField, {
7796
+ filterCategory: ctrl.filterCategory,
7797
+ filterDelimiter: ctrl.currentField.filterDelimiter,
7798
+ filterValue: ctrl.filterValue
7799
+ });
7792
7800
}
7793
7801
} else {
7794
7802
ctrl.addFilterFn(ctrl.currentField, filterValue);
@@ -17898,12 +17906,12 @@ angular.module('patternfly.wizard').component('pfWizard', {
17898
17906
17899
17907
17900
17908
$templateCache.put('filters/simple-filter/filter-fields.html',
17901
- "<div class=\"filter-pf filter-fields\"><div class=\"input-group form-group\"><div uib-dropdown class=input-group-btn><button uib-dropdown-toggle type=button class=\"btn btn-default filter-fields\" uib-tooltip=\"Filter by\" tooltip-placement=top tooltip-append-to-body=true>{{$ctrl.currentField.title}} <span class=caret></span></button><ul uib-dropdown-menu><li ng-repeat=\"item in $ctrl.config.fields\"><a class=filter-field role=menuitem tabindex=-1 ng-click=$ctrl.selectField(item)>{{item.title}}</a></li></ul></div><div ng-if=\"$ctrl.currentField.filterType !== 'select' && $ctrl.currentField.filterType !== 'complex-select'\"><input class=form-control type={{$ctrl.currentField.filterType}} ng-model=$ctrl.currentValue placeholder={{$ctrl.currentField.placeholder}} ng-keypress=\"$ctrl.onValueKeyPress($event)\"></div><div ng-if=\"$ctrl.currentField.filterType === 'select'\"><div class=\"btn-group bootstrap-select form-control filter-select\" uib-dropdown><button type=button uib-dropdown-toggle class=\"btn btn-default dropdown-toggle\"><span class=\"filter-option pull-left\">{{$ctrl.currentValue || $ctrl.currentField.placeholder}}</span> <span class=caret></span></button><ul uib-dropdown-menu class=dropdown-menu-right role=menu><li ng-if=$ctrl.currentField.placeholder><a role=menuitem tabindex=-1 ng-click=$ctrl.selectValue()>{{$ctrl.currentField.placeholder}}</a></li><li ng-repeat=\"filterValue in $ctrl.currentField.filterValues\" ng-class=\"{'selected': (filterValue === $ctrl.currentValue || filterValue.id === $ctrl.currentValue)}\"><a role=menuitem tabindex=-1 ng-click=\"$ctrl.selectValue(filterValue.id || filterValue)\">{{filterValue.title || filterValue}}</a></li></ul></div></div><div ng-if=\"$ctrl.currentField.filterType === 'complex-select'\" class=category-select><div class=\"btn-group bootstrap-select form-control filter-select\" uib-dropdown><button type=button uib-dropdown-toggle class=\"btn btn-default dropdown-toggle\"><span class=\"filter-option pull-left\">{{$ctrl.filterCategory || $ctrl.currentField.placeholder}}</span> <span class=caret></span></button><ul uib-dropdown-menu class=dropdown-menu-right role=menu><li ng-if=$ctrl.currentField.placeholder><a role=menuitem tabindex=-1 ng-click=$ctrl.selectValue()>{{$ctrl.currentField.placeholder}}</a></li><li ng-repeat=\"filterCategory in $ctrl.currentField.filterValues\" ng-class=\"{'selected': (filterCategory === $ctrl.filterCategory || filterCategory.id === $ctrl.filterCategory)}\"><a role=menuitem tabindex=-1 ng-click=\"$ctrl.selectValue(filterCategory.id ||filterCategory, 'filter-category')\">{{filterCategory.title ||filterCategory}}</a></li></ul></div><div class=\"btn-group bootstrap-select form-control filter-select\" uib-dropdown><button type=button uib-dropdown-toggle class=\"btn btn-default dropdown-toggle category-select-value\"><span class=\"filter-option pull-left\">{{$ctrl.filterValue || $ctrl.currentField.filterCategoriesPlaceholder}}</span> <span class=caret></span></button><ul uib-dropdown-menu class=dropdown-menu-right role=menu><li ng-if=$ctrl.currentField.placeholder><a role=menuitem tabindex=-1 ng-click=$ctrl.selectValue()>{{$ctrl.currentField.filterCategoriesPlaceholder}}</a></li><li ng-repeat=\"filterValue in $ctrl.currentField.filterCategories[$ctrl.filterCategory.toLowerCase()].filterValues\" ng-class=\"{'selected': (filterValue === $ctrl.filterValue || filterValue.id === $ctrl.filterValue)}\"><a role=menuitem tabindex=-1 ng-click=\"$ctrl.selectValue(filterValue.id || filterValue, 'filter-value')\">{{filterValue.title || filterValue}}</a></li></ul></div></div></div></div>"
17909
+ "<div class=\"filter-pf filter-fields\"><div class=\"input-group form-group\"><div uib-dropdown class=input-group-btn><button uib-dropdown-toggle type=button class=\"btn btn-default filter-fields\" uib-tooltip=\"Filter by\" tooltip-placement=top tooltip-append-to-body=true>{{$ctrl.currentField.title}} <span class=caret></span></button><ul uib-dropdown-menu><li ng-repeat=\"item in $ctrl.config.fields\" ng-class=\"{'selected': item === $ctrl.currentField}\"><a class=filter-field role=menuitem tabindex=-1 ng-click=$ctrl.selectField(item)>{{item.title}}</a></li></ul></div><div ng-if=\"$ctrl.currentField.filterType !== 'select' && $ctrl.currentField.filterType !== 'complex-select'\"><input class=form-control type={{$ctrl.currentField.filterType}} ng-model=$ctrl.currentValue placeholder={{$ctrl.currentField.placeholder}} ng-keypress=\"$ctrl.onValueKeyPress($event)\"></div><div ng-if=\"$ctrl.currentField.filterType === 'select'\"><div class=\"btn-group bootstrap-select form-control filter-select\" uib-dropdown><button type=button uib-dropdown-toggle class=\"btn btn-default dropdown-toggle\"><span class=\"filter-option pull-left\">{{$ctrl.currentValue.title || $ctrl.currentValue || $ctrl.currentField.placeholder}}</span> <span class=caret></span></button><ul uib-dropdown-menu class=dropdown-menu-right role=menu><li ng-if=$ctrl.currentField.placeholder><a role=menuitem tabindex=-1 ng-click=$ctrl.selectValue()>{{$ctrl.currentField.placeholder}}</a></li><li ng-repeat=\"filterValue in $ctrl.currentField.filterValues\" ng-class=\"{'selected': (filterValue === $ctrl.currentValue)}\"><a role=menuitem tabindex=-1 ng-click=$ctrl.selectValue(filterValue)>{{filterValue.title || filterValue}}</a></li></ul></div></div><div ng-if=\"$ctrl.currentField.filterType === 'complex-select'\" class=category-select><div class=\"btn-group bootstrap-select form-control filter-select\" uib-dropdown><button type=button uib-dropdown-toggle class=\"btn btn-default dropdown-toggle\"><span class=\"filter-option pull-left\">{{$ctrl.filterCategory.title || $ctrl.filterCategory || $ctrl.currentField.placeholder}}</span> <span class=caret></span></button><ul uib-dropdown-menu class=dropdown-menu-right role=menu><li ng-if=$ctrl.currentField.placeholder><a role=menuitem tabindex=-1 ng-click=$ctrl.selectValue()>{{$ctrl.currentField.placeholder}}</a></li><li ng-repeat=\"filterCategory in $ctrl.currentField.filterValues\" ng-class=\"{'selected': (filterCategory == $ctrl.filterCategory)}\"><a role=menuitem tabindex=-1 ng-click=\"$ctrl.selectValue(filterCategory, 'filter-category')\">{{filterCategory.title ||filterCategory}}</a></li></ul></div><div class=\"btn-group bootstrap-select form-control filter-select\" uib-dropdown><button type=button uib-dropdown-toggle class=\"btn btn-default dropdown-toggle category-select-value\"><span class=\"filter-option pull-left\">{{$ctrl.filterValue.title || $ctrl.filterValue || $ctrl.currentField.filterCategoriesPlaceholder}}</span> <span class=caret></span></button><ul uib-dropdown-menu class=dropdown-menu-right role=menu><li ng-if=$ctrl.currentField.placeholder><a role=menuitem tabindex=-1 ng-click=$ctrl.selectValue()>{{$ctrl.currentField.filterCategoriesPlaceholder}}</a></li><li ng-repeat=\"filterValue in $ctrl.currentField.filterCategories[$ctrl.filterCategory.id.toLowerCase() || $ctrl.filterCategory.toLowerCase() ].filterValues\" ng-class=\"{'selected': filterValue === $ctrl.filterValue}\"><a role=menuitem tabindex=-1 ng-click=\"$ctrl.selectValue(filterValue, 'filter-value')\">{{filterValue.title || filterValue}}</a></li></ul></div></div></div></div>"
17902
17910
);
17903
17911
17904
17912
17905
17913
$templateCache.put('filters/simple-filter/filter-results.html',
17906
- "<div class=filter-pf><div class=\"row toolbar-pf-results\"><div class=col-sm-12><h5>{{$ctrl.config.resultsCount}} Results</h5><p ng-if=\"$ctrl.config.appliedFilters.length > 0\">Active filters:</p><ul class=list-inline><li ng-repeat=\"filter in $ctrl.config.appliedFilters\"><span class=\"active-filter label label-info\">{{filter.title}}: {{filter.value}} <a><span class=\"pficon pficon-close\" ng-click=$ctrl.clearFilter(filter)></span></a></span></li></ul><p><a class=clear-filters ng-click=$ctrl.clearAllFilters() ng-if=\"$ctrl.config.appliedFilters.length > 0\">Clear All Filters</a></p><div ng-if=\"$ctrl.config.selectedCount !== undefined && $ctrl.config.totalCount !== undefined\" class=pf-table-view-selected-label><strong>{{$ctrl.config.selectedCount}}</strong> of <strong>{{$ctrl.config.totalCount}}</strong> selected</div></div><!-- /col --></div><!-- /row --></div>"
17914
+ "<div class=filter-pf><div class=\"row toolbar-pf-results\"><div class=col-sm-12><h5>{{$ctrl.config.resultsCount}} Results</h5><p ng-if=\"$ctrl.config.appliedFilters.length > 0\">Active filters:</p><ul class=list-inline><li ng-repeat=\"filter in $ctrl.config.appliedFilters\"><span class=\"active-filter label label-info\">{{filter.title}}: {{((filter.value.filterCategory.title || filter.value.filterCategory) + filter.value.filterDelimiter + (filter.value.filterValue.title || filter.value.filterValue)) || filter.value.title || filter.value}} <a><span class=\"pficon pficon-close\" ng-click=$ctrl.clearFilter(filter)></span></a></span></li></ul><p><a class=clear-filters ng-click=$ctrl.clearAllFilters() ng-if=\"$ctrl.config.appliedFilters.length > 0\">Clear All Filters</a></p><div ng-if=\"$ctrl.config.selectedCount !== undefined && $ctrl.config.totalCount !== undefined\" class=pf-table-view-selected-label><strong>{{$ctrl.config.selectedCount}}</strong> of <strong>{{$ctrl.config.totalCount}}</strong> selected</div></div><!-- /col --></div><!-- /row --></div>"
17907
17915
);
17908
17916
17909
17917
0 commit comments