From 0ea96d8c9f18055ec2848ef82c60bbb659917a7f Mon Sep 17 00:00:00 2001
From: Alex ORLUC <alex.orluc@maarch.org>
Date: Thu, 6 Aug 2020 18:13:07 +0200
Subject: [PATCH] FEAT #14454 TIME 1:30 fix default sorting display

---
 .../actions-administration.component.html     |  2 +-
 .../administration/administration.service.ts  | 21 +++++++++++++++----
 ...lfresco-list-administration.component.html |  2 +-
 .../baskets-administration.component.html     |  2 +-
 ...tacts-groups-administration.component.html |  2 +-
 ...fusionModels-administration.component.html |  2 +-
 .../groups-administration.component.html      |  2 +-
 .../user/users-administration.component.html  |  2 +-
 .../user/users-administration.component.ts    |  8 +++----
 9 files changed, 28 insertions(+), 15 deletions(-)

diff --git a/src/frontend/app/administration/action/actions-administration.component.html b/src/frontend/app/administration/action/actions-administration.component.html
index b5faa1bdd6a..6c8835a01bb 100755
--- a/src/frontend/app/administration/action/actions-administration.component.html
+++ b/src/frontend/app/administration/action/actions-administration.component.html
@@ -40,7 +40,7 @@
                             </mat-paginator>
                         </div>
                     </div>
-                    <mat-table #table [dataSource]="adminService.getDataSource()" [matSortActive]="adminService.getFilter('sort')" [matSortDirection]="adminService.getFilter('sortDirection')" matSort>
+                    <mat-table #table [dataSource]="adminService.getDataSource()" matSort matSortDisableClear>
                         <ng-container matColumnDef="id">
                             <mat-header-cell *matHeaderCellDef mat-sort-header
                                 [class.hide-for-mobile]="appService.getViewMode()">{{lang.id}}</mat-header-cell>
diff --git a/src/frontend/app/administration/administration.service.ts b/src/frontend/app/administration/administration.service.ts
index e1f5db2f4e8..3639062fdbf 100644
--- a/src/frontend/app/administration/administration.service.ts
+++ b/src/frontend/app/administration/administration.service.ts
@@ -1,10 +1,10 @@
-import { Injectable } from '@angular/core';
+import { Injectable, ChangeDetectorRef, OnInit, OnDestroy } from '@angular/core';
 import { LocalStorageService } from '../../service/local-storage.service';
 import { HeaderService } from '../../service/header.service';
 import { FunctionsService } from '../../service/functions.service';
 import { MatTableDataSource } from '@angular/material/table';
 import { MatPaginator } from '@angular/material/paginator';
-import { MatSort } from '@angular/material/sort';
+import { MatSort, Sort, MatSortable } from '@angular/material/sort';
 import { merge } from 'rxjs/internal/observable/merge';
 import { startWith } from 'rxjs/internal/operators/startWith';
 import { tap } from 'rxjs/internal/operators/tap';
@@ -53,6 +53,12 @@ export class AdministrationService {
             page: 0,
             field: ''
         },
+        admin_indexing_models: {
+            sort: 'label',
+            sortDirection: 'asc',
+            page: 0,
+            field: ''
+        },
     };
     dataSource: MatTableDataSource<any>;
     filterColumns: string[];
@@ -104,12 +110,19 @@ export class AdministrationService {
             );
         }
 
-        sort.active = this.getFilter('sort');
-        sort.direction = this.getFilter('sortDirection');
+        // sort.active = this.getFilter('sort');
+        // sort.direction = this.getFilter('sortDirection');
         paginator.pageIndex = this.getFilter('page');
 
         this.dataSource.sort = sort;
 
+        // WORKAROUND TO SHOW ARROW DEFAULT FILTER
+        const element: HTMLElement = document.getElementsByClassName('mat-column-' + this.getFilter('sort'))[0] as HTMLElement;
+        element.click();
+        if (this.getFilter('sortDirection') === 'desc') {
+            element.click();
+        }
+
         this.searchTerm.setValue(this.getFilter('field'));
 
         merge(sort.sortChange, paginator.page)
diff --git a/src/frontend/app/administration/alfresco/alfresco-list-administration.component.html b/src/frontend/app/administration/alfresco/alfresco-list-administration.component.html
index e0c89a80e50..94147ffdaf3 100644
--- a/src/frontend/app/administration/alfresco/alfresco-list-administration.component.html
+++ b/src/frontend/app/administration/alfresco/alfresco-list-administration.component.html
@@ -48,7 +48,7 @@
                             </mat-paginator>
                         </div>
                     </div>
-                    <mat-table #table [dataSource]="adminService.getDataSource()" [matSortActive]="adminService.getFilter('sort')" [matSortDirection]="adminService.getFilter('sortDirection')" matSort>
+                    <mat-table #table [dataSource]="adminService.getDataSource()" matSortDisableClear matSort>
                         <ng-container matColumnDef="label">
                             <mat-header-cell *matHeaderCellDef mat-sort-header
                                 [class.hide-for-mobile]="appService.getViewMode()">{{lang.label}}</mat-header-cell>
diff --git a/src/frontend/app/administration/basket/baskets-administration.component.html b/src/frontend/app/administration/basket/baskets-administration.component.html
index f07b15cf52f..e02cbac652c 100755
--- a/src/frontend/app/administration/basket/baskets-administration.component.html
+++ b/src/frontend/app/administration/basket/baskets-administration.component.html
@@ -46,7 +46,7 @@
                             </mat-paginator>
                         </div>
                     </div>
-                    <mat-table #table [dataSource]="adminService.getDataSource()" [matSortActive]="adminService.getFilter('sort')" [matSortDirection]="adminService.getFilter('sortDirection')" matSort>
+                    <mat-table #table [dataSource]="adminService.getDataSource()" matSortDisableClear matSort>
                         <ng-container matColumnDef="basket_id">
                             <mat-header-cell *matHeaderCellDef mat-sort-header
                                 [class.hide-for-mobile]="appService.getViewMode()">{{lang.id}}</mat-header-cell>
diff --git a/src/frontend/app/administration/contact/group/contacts-groups-administration.component.html b/src/frontend/app/administration/contact/group/contacts-groups-administration.component.html
index e8bbf085279..4aaeb56d2f1 100644
--- a/src/frontend/app/administration/contact/group/contacts-groups-administration.component.html
+++ b/src/frontend/app/administration/contact/group/contacts-groups-administration.component.html
@@ -49,7 +49,7 @@
                             </mat-paginator>
                         </div>
                     </div>
-                    <mat-table #table [dataSource]="adminService.getDataSource()" [matSortActive]="adminService.getFilter('sort')" [matSortDirection]="adminService.getFilter('sortDirection')" matSort>
+                    <mat-table #table [dataSource]="adminService.getDataSource()" matSortDisableClear matSort>
                         <ng-container matColumnDef="label">
                             <mat-header-cell *matHeaderCellDef mat-sort-header
                                 [class.hide-for-mobile]="appService.getViewMode()" style="flex:2;">{{lang.label}}
diff --git a/src/frontend/app/administration/diffusionModel/diffusionModels-administration.component.html b/src/frontend/app/administration/diffusionModel/diffusionModels-administration.component.html
index 2291204b738..ca56e2e9e72 100755
--- a/src/frontend/app/administration/diffusionModel/diffusionModels-administration.component.html
+++ b/src/frontend/app/administration/diffusionModel/diffusionModels-administration.component.html
@@ -40,7 +40,7 @@
                             </mat-paginator>
                         </div>
                     </div>
-                    <mat-table #table [dataSource]="adminService.getDataSource()" [matSortActive]="adminService.getFilter('sort')" [matSortDirection]="adminService.getFilter('sortDirection')" matSort>
+                    <mat-table #table [dataSource]="adminService.getDataSource()" matSortDisableClear matSort>
                         <ng-container matColumnDef="title">
                             <mat-header-cell *matHeaderCellDef mat-sort-header style="flex:2;">{{lang.label}}</mat-header-cell>
                             <mat-cell *matCellDef="let element" style="flex:2;">
diff --git a/src/frontend/app/administration/group/groups-administration.component.html b/src/frontend/app/administration/group/groups-administration.component.html
index 432bd8a3c0c..01c989a7879 100755
--- a/src/frontend/app/administration/group/groups-administration.component.html
+++ b/src/frontend/app/administration/group/groups-administration.component.html
@@ -40,7 +40,7 @@
                             </mat-paginator>
                         </div>
                     </div>
-                    <mat-table #table [dataSource]="adminService.getDataSource()" [matSortActive]="adminService.getFilter('sort')" [matSortDirection]="adminService.getFilter('sortDirection')" matSort>
+                    <mat-table #table [dataSource]="adminService.getDataSource()" matSortDisableClear matSort>
                         <ng-container matColumnDef="group_id">
                             <mat-header-cell *matHeaderCellDef mat-sort-header
                                 [class.hide-for-mobile]="appService.getViewMode()">{{lang.id}}</mat-header-cell>
diff --git a/src/frontend/app/administration/user/users-administration.component.html b/src/frontend/app/administration/user/users-administration.component.html
index 66000a17d19..316280c45b8 100755
--- a/src/frontend/app/administration/user/users-administration.component.html
+++ b/src/frontend/app/administration/user/users-administration.component.html
@@ -66,7 +66,7 @@
                             </mat-paginator>
                         </div>
                     </div>
-                    <mat-table #table [dataSource]="adminService.getDataSource()" [matSortActive]="adminService.getFilter('sort')" [matSortDirection]="adminService.getFilter('sortDirection')" matSort>
+                    <mat-table #table [dataSource]="adminService.getDataSource()" matSort matSortDisableClear>
                         <ng-container matColumnDef="id">
                             <mat-header-cell *matHeaderCellDef mat-sort-header
                                 [class.hide-for-mobile]="appService.getViewMode()">{{lang.technicalId}}
diff --git a/src/frontend/app/administration/user/users-administration.component.ts b/src/frontend/app/administration/user/users-administration.component.ts
index 995e73c8741..610c3f71377 100755
--- a/src/frontend/app/administration/user/users-administration.component.ts
+++ b/src/frontend/app/administration/user/users-administration.component.ts
@@ -1,4 +1,4 @@
-import { Component, OnInit, ViewChild, Inject, TemplateRef, ViewContainerRef, ElementRef } from '@angular/core';
+import { Component, OnInit, ViewChild, Inject, TemplateRef, ViewContainerRef, ElementRef, ChangeDetectorRef } from '@angular/core';
 import { HttpClient } from '@angular/common/http';
 import { LANG } from '../../translate.component';
 import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
@@ -27,7 +27,7 @@ export class UsersAdministrationComponent implements OnInit {
     dialogRef: MatDialogRef<any>;
 
     lang: any = LANG;
-    loading: boolean = false;
+    loading: boolean = true;
     updateListModel: boolean = true;
     updateListInstance: boolean = true;
 
@@ -56,7 +56,7 @@ export class UsersAdministrationComponent implements OnInit {
         public appService: AppService,
         public functions: FunctionsService,
         public adminService: AdministrationService,
-        private viewContainerRef: ViewContainerRef
+        private viewContainerRef: ViewContainerRef,
     ) { }
 
     ngOnInit(): void {
@@ -65,7 +65,7 @@ export class UsersAdministrationComponent implements OnInit {
         this.headerService.injectInSideBarLeft(this.adminMenuTemplate, this.viewContainerRef, 'adminMenu');
 
         this.user = this.headerService.user;
-        this.loading = true;
+
         this.getData();
     }
 
-- 
GitLab