diff --git a/src/frontend/app/administration/administration.service.ts b/src/frontend/app/administration/administration.service.ts index 25c616e4f4e17e56485536bafefb14067658bafb..e48b566cbf2c17044bfbaea487b5c324da3e1b6a 100644 --- a/src/frontend/app/administration/administration.service.ts +++ b/src/frontend/app/administration/administration.service.ts @@ -89,6 +89,12 @@ export class AdministrationService { page: 0, field: '' }, + admin_tag: { + sort: 'label', + sortDirection: 'asc', + page: 0, + field: '' + }, }; dataSource: MatTableDataSource<any>; filterColumns: string[]; diff --git a/src/frontend/app/administration/tag/tags-administration.component.html b/src/frontend/app/administration/tag/tags-administration.component.html index 90cda710b895f8754d02d8f761ec2bd09efe5c64..e3cc53702a8c4d28f1df4876a6c712aee570a60b 100644 --- a/src/frontend/app/administration/tag/tags-administration.component.html +++ b/src/frontend/app/administration/tag/tags-administration.component.html @@ -28,7 +28,7 @@ <div class="table-head"> <div class="table-head-result"> <mat-form-field style="font-size: 13px;"> - <input matInput (keyup)="applyFilter($event.target.value)" placeholder="{{lang.filterBy}}"> + <input matInput [formControl]="adminService.getFilterField()" placeholder="{{lang.filterBy}}"> </mat-form-field> </div> <div class="table-head-tool"> @@ -37,8 +37,7 @@ </div> </div> <div style="height:90%;overflow:auto;position:absolute;width:100%;"> - <mat-table id="contact-list" #tableContactListSort="matSort" [dataSource]="dataSource" matSort - matSortActive="label" matSortDirection="asc" style="width:100%;"> + <mat-table id="contact-list" #tableContactListSort="matSort" [dataSource]="adminService.getDataSource()" matSort matSortDisableClear style="width:100%;"> <ng-container matColumnDef="label"> <mat-header-cell *matHeaderCellDef mat-sort-header>{{lang.label}}</mat-header-cell> <mat-cell mat-cell *matCellDef="let element"> diff --git a/src/frontend/app/administration/tag/tags-administration.component.ts b/src/frontend/app/administration/tag/tags-administration.component.ts index e87f6d8e6448adc9acf3d63531fd8a4f3133bf38..f2de6b18ab4da3b400635729569c63b34d69fe6c 100644 --- a/src/frontend/app/administration/tag/tags-administration.component.ts +++ b/src/frontend/app/administration/tag/tags-administration.component.ts @@ -4,7 +4,6 @@ import { LANG } from '../../translate.component'; import { NotificationService } from '../../../service/notification/notification.service'; import { MatPaginator } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; -import { MatTableDataSource } from '@angular/material/table'; import { HeaderService } from '../../../service/header.service'; import { AppService } from '../../../service/app.service'; import { tap, finalize, filter, exhaustMap, catchError } from 'rxjs/operators'; @@ -12,6 +11,7 @@ import { ConfirmComponent } from '../../../plugins/modal/confirm.component'; import { MatDialog } from '@angular/material/dialog'; import {FunctionsService} from '../../../service/functions.service'; import { of } from 'rxjs/internal/observable/of'; +import { AdministrationService } from '../administration.service'; declare var tinymce: any; @@ -25,21 +25,13 @@ export class TagsAdministrationComponent implements OnInit { lang: any = LANG; loading: boolean = true; - dataSource: any; resultsLength: number = 0; displayedColumns = ['label', 'description', 'actions']; + filterColumns = ['label', 'description']; @ViewChild(MatPaginator, { static: false }) paginator: MatPaginator; @ViewChild(MatSort, { static: false }) sort: MatSort; - applyFilter(filterValue: string) { - filterValue = filterValue.trim(); // Remove whitespace - filterValue = filterValue.toLowerCase(); // MatTableDataSource defaults to lowercase matches - this.dataSource.filter = filterValue; - this.dataSource.filterPredicate = (template: any, filter: string) => { - return this.functions.filterUnSensitive(template, filter, ['label', 'description']); - }; - } constructor( public http: HttpClient, @@ -48,6 +40,7 @@ export class TagsAdministrationComponent implements OnInit { public appService: AppService, public dialog: MatDialog, public functions: FunctionsService, + public adminService: AdministrationService, private viewContainerRef: ViewContainerRef ) { } @@ -63,16 +56,10 @@ export class TagsAdministrationComponent implements OnInit { this.loading = true; this.http.get('../rest/tags').pipe( tap((data: any) => { + this.resultsLength = data.tags.length; setTimeout(() => { - this.dataSource = new MatTableDataSource(data.tags); - this.resultsLength = data.tags.length; - this.dataSource.paginator = this.paginator; - this.dataSource.sortingDataAccessor = this.functions.listSortingDataAccessor; - this.sort.active = 'label'; - this.sort.direction = 'asc'; - this.dataSource.sort = this.sort; + this.adminService.setDataSource('admin_tag', data.tags, this.sort, this.paginator, this.filterColumns); }, 0); - }), finalize(() => this.loading = false) ).subscribe();