diff --git a/src/frontend/app/list/filters/filters-tool.component.html b/src/frontend/app/list/filters/filters-tool.component.html index d18fd7e76c53657e830eac056cb1d900201da493..f51946b4a380dbf635489535ccfd470cbc03e523 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 82eb42f01ab7bde87b5e56311df28606c0a1535d..b9d1504e159bc26f3b0b20c98d0c6826dcde4c0f 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 dfe3c0a08697feb5be152568f9b092293b6165be..4966404650861c672063d06d717fe8d5fb7b61cf 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 75fc602df1c5755b0cc348e8487832c158bebac8..912d7553d13180fe5512b56a7cd15a078abdad45 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 0b9f225f79642599780c3c78f3873428ecdcafa8..01560d5c1dfcb4a038827b4c428a0d4e7ecf6b97 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 c276ac418acae87a3153ec320d7496579ef69b04..4944248ab000e57b8594f4f2e5ad4b3582e84980 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", };