diff --git a/packages/fiori/src/ViewSettingsDialog.ts b/packages/fiori/src/ViewSettingsDialog.ts index 4a1964891890..01212b0228d9 100644 --- a/packages/fiori/src/ViewSettingsDialog.ts +++ b/packages/fiori/src/ViewSettingsDialog.ts @@ -566,9 +566,26 @@ class ViewSettingsDialog extends UI5Element { return filter; }); + this._setSelectedProp(e); + this._currentSettings = JSON.parse(JSON.stringify(this._currentSettings)); } + /** + * Sets the selected property of the clicked item. + * @param e + * @private + */ + _setSelectedProp(e: CustomEvent) { + this.filterItems.forEach(filterItem => { + filterItem.values.forEach(option => { + if (option.text === e.detail.item.innerText) { + option.selected = !option.selected; + } + }); + }); + } + _navigateToFilters() { this._filterStepTwo = false; } @@ -622,13 +639,15 @@ class ViewSettingsDialog extends UI5Element { sortDescending = !this._currentSettings.sortOrder[0].selected, sortBy = _currentSortBySelected && (_currentSortBySelected.text || ""), sortByElementIndex = _currentSortBySelected && _currentSortBySelected.index, - sortByItem = this.sortItems[sortByElementIndex]; + sortByItem = this.sortItems[sortByElementIndex], + selectedFilterItems = this.filterItems.filter(filterItem => filterItem.values.some(item => item.selected)); return { sortOrder, sortDescending, sortBy, sortByItem, filters: this.selectedFilters, + filterItems: selectedFilterItems, }; } diff --git a/packages/fiori/test/pages/ViewSettingsDialog.html b/packages/fiori/test/pages/ViewSettingsDialog.html index a8c22d46df9f..54a3c9aded0c 100644 --- a/packages/fiori/test/pages/ViewSettingsDialog.html +++ b/packages/fiori/test/pages/ViewSettingsDialog.html @@ -93,7 +93,43 @@

ViewSettingsDialog

+

ViewSettingsDialog with dataset properties

+ + Show ViewSettingsDialog + + + + + + + + + + + + + + + + +