@@ -7363,7 +7363,7 @@ angular.module('patternfly.charts').component('pfUtilizationTrendChart', {
73637363 * <li>.id - (String) Optional unique Id for the filter field, useful for comparisons
73647364 * <li>.title - (String) The title to display for the filter field
73657365 * <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`
73677367 * <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)
73687368 * <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)
73697369 * <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', {
74637463 } else if (filter.id === 'address') {
74647464 match = item.address.match(re) !== null;
74657465 } else if (filter.id === 'birthMonth') {
7466- match = item.birthMonth === filter.value;
7466+ match = item.birthMonth === filter.value.id || item.birthMonth === filter.value ;
74677467 } 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));
74697470 }
74707471 return match;
74717472 };
@@ -7499,7 +7500,16 @@ angular.module('patternfly.charts').component('pfUtilizationTrendChart', {
74997500 var filterChange = function (filters) {
75007501 $scope.filtersText = "";
75017502 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";
75037513 });
75047514 applyFilters(filters);
75057515 };
@@ -7670,14 +7680,8 @@ angular.module('patternfly.filters').component('pfFilterPanelResults', {
76707680 return angular.isDefined(_.find(ctrl.config.appliedFilters, {title: filter.title, value: filter.value}));
76717681 }
76727682
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;
76817685 }
76827686
76837687 function enforceSingleSelect (filter) {
@@ -7698,8 +7702,8 @@ angular.module('patternfly.filters').component('pfFilterPanelResults', {
76987702 enforceSingleSelect(newFilter);
76997703 }
77007704
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 );
77037707 }
77047708
77057709 ctrl.config.appliedFilters.push(newFilter);
@@ -7727,7 +7731,7 @@ angular.module('patternfly.filters').component('pfFilterPanelResults', {
77277731 * <li>.id - (String) Optional unique Id for the filter field, useful for comparisons
77287732 * <li>.title - (String) The title to display for the filter field
77297733 * <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`
77317735 * <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)
77327736 * <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)
77337737 * <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', {
77887792 break;
77897793 }
77907794 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+ });
77927800 }
77937801 } else {
77947802 ctrl.addFilterFn(ctrl.currentField, filterValue);
@@ -17898,12 +17906,12 @@ angular.module('patternfly.wizard').component('pfWizard', {
1789817906
1789917907
1790017908 $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>"
1790217910 );
1790317911
1790417912
1790517913 $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>"
1790717915 );
1790817916
1790917917
0 commit comments