From 6f412a79bad20f623b095bc2262ac556f05d5f8d Mon Sep 17 00:00:00 2001 From: Alex ORLUC <alex.orluc@maarch.org> Date: Fri, 4 Jan 2019 20:00:11 +0100 Subject: [PATCH] FEAT #8956 add erase all filters button --- .../list/filters/filters-tool.component.html | 2 ++ .../list/filters/filters-tool.component.scss | 12 ++++++++++ .../list/filters/filters-tool.component.ts | 22 ++++++++++++++++++- src/frontend/lang/lang-en.ts | 1 + src/frontend/lang/lang-fr.ts | 3 +++ src/frontend/lang/lang-nl.ts | 1 + 6 files changed, 40 insertions(+), 1 deletion(-) diff --git a/src/frontend/app/list/filters/filters-tool.component.html b/src/frontend/app/list/filters/filters-tool.component.html index d18fd7e76c5..f51946b4a38 100644 --- a/src/frontend/app/list/filters/filters-tool.component.html +++ b/src/frontend/app/list/filters/filters-tool.component.html @@ -60,6 +60,8 @@ </mat-menu> </mat-button-toggle-group> <div class="filterBadges"> + <span *ngIf="haveFilters()" class="label badge-eraser" title="{{lang.eraseAllFilters}}" (click)="this.listProperties.search='';removeFilters();"><i class="fas fa-eraser"></i></span> + <span class="label badge-search" *ngIf="this.listProperties.search !== ''" title="{{lang.subject}} / {{lang.chronoNumber}}" (click)="this.listProperties.search='';updateFilters();">{{this.listProperties.search}} <i class="fa fa-times-circle"></i></span> <span class="label badge-categories" title="{{lang.categories}}" *ngFor="let category of this.listProperties.categories; let i=index" (click)="removeFilter('categories', i)">{{category.label}} diff --git a/src/frontend/app/list/filters/filters-tool.component.scss b/src/frontend/app/list/filters/filters-tool.component.scss index 82eb42f01ab..b9d1504e159 100644 --- a/src/frontend/app/list/filters/filters-tool.component.scss +++ b/src/frontend/app/list/filters/filters-tool.component.scss @@ -18,6 +18,18 @@ font-size: 11px; } +.filterBadges>.badge-eraser { + margin: 5px; + background: none; + cursor: pointer; + color: red; + font-size: 20px; +} + +.filterBadges>.label { + white-space: inherit; +} + .filterBadges>.badge-search { margin: 5px; background: #666; diff --git a/src/frontend/app/list/filters/filters-tool.component.ts b/src/frontend/app/list/filters/filters-tool.component.ts index dfe3c0a0869..49664046508 100644 --- a/src/frontend/app/list/filters/filters-tool.component.ts +++ b/src/frontend/app/list/filters/filters-tool.component.ts @@ -134,6 +134,27 @@ export class FiltersToolComponent implements OnInit { this.updateFilters(); } + removeFilters() { + Object.keys(this.listProperties).forEach((key) => { + if (Array.isArray(this.listProperties[key])) { + this.listProperties[key] = []; + } else if (key == 'search') { + this.listProperties[key] = ''; + } + }); + this.updateFilters(); + } + + haveFilters() { + let state = false; + Object.keys(this.listProperties).forEach((key) => { + if ((Array.isArray(this.listProperties[key]) && this.listProperties[key].length > 0) || (key == 'search' && this.listProperties[key] != '')) { + state = true; + } + }); + return state; + } + setInputSearch(value: string) { $j('.metaSearch').focus(); this.metaSearchInput = value; @@ -168,7 +189,6 @@ export class FiltersToolComponent implements OnInit { this.http.get('../../rest/resourcesList/users/' + this.currentBasketInfo.ownerId + '/groups/' + this.currentBasketInfo.groupId + '/baskets/' + this.currentBasketInfo.basketId + '/filters?init' + this.filtersListService.getUrlFilters()) .subscribe((data: any) => { - console.log(data); data.categories.forEach((element: any) => { if (this.listProperties.categories.map((category: any) => (category.id)).indexOf(element.id) === -1) { this.stateGroups[0].names.push( diff --git a/src/frontend/lang/lang-en.ts b/src/frontend/lang/lang-en.ts index 75fc602df1c..912d7553d13 100755 --- a/src/frontend/lang/lang-en.ts +++ b/src/frontend/lang/lang-en.ts @@ -731,4 +731,5 @@ export const LANG_EN = { "configurationUpdated" : "Configuration updated", "port" : "Port", "mailFrom" : "Mail address used", + "eraseAllFilters" : "Erase all filters", }; diff --git a/src/frontend/lang/lang-fr.ts b/src/frontend/lang/lang-fr.ts index 0b9f225f796..01560d5c1df 100755 --- a/src/frontend/lang/lang-fr.ts +++ b/src/frontend/lang/lang-fr.ts @@ -757,4 +757,7 @@ export const LANG_FR = { "configurationUpdated" : "Configuration mise à jour", "port" : "Port", "mailFrom" : "Adresse e-mail utilisée", + "eraseAllFilters" : "Effacer tous les filtres", }; + + diff --git a/src/frontend/lang/lang-nl.ts b/src/frontend/lang/lang-nl.ts index c276ac418ac..4944248ab00 100755 --- a/src/frontend/lang/lang-nl.ts +++ b/src/frontend/lang/lang-nl.ts @@ -760,4 +760,5 @@ export const LANG_NL = { "configurationUpdated" : "_TO_TRANSLATE", "port" : "_TO_TRANSLATE", "mailFrom" : "_TO_TRANSLATE", + "eraseAllFilters" : "_TO_TRANSLATE", }; -- GitLab