From 45517bda70e5d0d8235ddcdefa7a737ce783220f Mon Sep 17 00:00:00 2001
From: ZAYTOUN abdellatif <zaytoun.abdellatif@gmail.com>
Date: Thu, 15 May 2025 15:32:19 +0200
Subject: [PATCH] feat: improve stats

---
 .../statistics/statistics.component.html      | 36 ---------------
 .../common/statistics/statistics.component.ts | 46 ++++---------------
 src/app/rest/api.rest.service.ts              |  5 +-
 src/app/service/api.service.ts                |  6 +--
 4 files changed, 12 insertions(+), 81 deletions(-)

diff --git a/src/app/component/common/statistics/statistics.component.html b/src/app/component/common/statistics/statistics.component.html
index 0742a5fb..65c22a8d 100644
--- a/src/app/component/common/statistics/statistics.component.html
+++ b/src/app/component/common/statistics/statistics.component.html
@@ -12,42 +12,6 @@
     class="admin-static"></iframe>
 
   <h3>Statistiques admin dynamiques</h3>
-  <div class="fr-container--fluid">
-    <div class="fr-grid-row">
-      <div class="fr-col-12 fr-col-md-5">
-        <div class="fr-fieldset__element">
-          <app-appeal-court-or-jurisdiction-select
-            (selectChanged)="
-              onAcOrJuIdChanged($event)
-            "></app-appeal-court-or-jurisdiction-select>
-        </div>
-      </div>
-      <div class="fr-col-12 fr-col-md-5">
-        <div class="fr-fieldset__element fr-pt-2v">
-          <div class="box-left">
-            <input
-              class="fr-input"
-              [(ngModel)]="interval"
-              type="number"
-              style="width: 80px" />
-            <div class="fr-mx-1v"></div>
-            <select class="fr-select" [(ngModel)]="periodUnit">
-              <option value="month">derniers mois</option>
-              <option value="week">dernières semaines</option>
-              <option value="day">derniers jours</option>
-            </select>
-          </div>
-        </div>
-      </div>
-      <div class="fr-col-12 fr-col-md-2">
-        <div class="fr-fieldset__element fr-pt-2v">
-          <button class="fr-btn" (click)="updateStatsUrlAdminDynamic()">
-            Voir
-          </button>
-        </div>
-      </div>
-    </div>
-  </div>
   <iframe
     *ngIf="statsUrlAdminDynamic$ | async as statsUrlAdminDynamic"
     [src]="sanitize(statsUrlAdminDynamic)"
diff --git a/src/app/component/common/statistics/statistics.component.ts b/src/app/component/common/statistics/statistics.component.ts
index bd1706e4..5c1d2141 100644
--- a/src/app/component/common/statistics/statistics.component.ts
+++ b/src/app/component/common/statistics/statistics.component.ts
@@ -1,8 +1,7 @@
 import { Component, OnInit } from '@angular/core';
-import { ApiService } from '../../../service/api.service';
-import { Observable } from 'rxjs';
 import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser';
-import { Role } from '../../../model/role';
+import { Observable } from 'rxjs';
+import { ApiService } from '../../../service/api.service';
 import { UserService } from '../../../service/user.service';
 
 @Component({
@@ -13,53 +12,26 @@ import { UserService } from '../../../service/user.service';
 export class StatisticsComponent implements OnInit {
   statsUrlPublic$: Observable<string>;
   statsUrlAdminStatic$: Observable<string>;
-  statsUrlAdminDynamic$: Observable<string> | null;
+  statsUrlAdminDynamic$: Observable<string>;
 
-  // dynamic stats filters
-  appealCourtId: number;
-  jurisdictionId: number;
-  periodUnit: 'month' | 'week' | 'day' = 'month';
-  interval: number = 12;
+  isAdmin: boolean;
 
   constructor(
-    private apiService: ApiService,
-    public domSanitizer: DomSanitizer,
-    private userService: UserService
+    private readonly apiService: ApiService,
+    private readonly domSanitizer: DomSanitizer,
+    private readonly userService: UserService
   ) {}
 
   ngOnInit(): void {
+    this.isAdmin = this.userService.isAdmin;
     this.statsUrlPublic$ = this.apiService.getStatsUrlPublic();
     if (this.isAdmin) {
       this.statsUrlAdminStatic$ = this.apiService.getStatsUrlAdminStatic();
-      this.updateStatsUrlAdminDynamic();
+      this.statsUrlAdminDynamic$ = this.apiService.getStatsUrlAdminDynamic();
     }
   }
 
   sanitize(url: string): SafeResourceUrl {
     return this.domSanitizer.bypassSecurityTrustResourceUrl(url);
   }
-
-  get isAdmin(): boolean {
-    return this.userService.getRole() === Role.ADMIN;
-  }
-
-  onAcOrJuIdChanged(acOrJuId: any) {
-    ({
-      appealCourtId: this.appealCourtId,
-      jurisdictionId: this.jurisdictionId
-    } = acOrJuId);
-  }
-
-  updateStatsUrlAdminDynamic() {
-    this.statsUrlAdminDynamic$ = null;
-    this.interval = this.interval > 0 ? this.interval : 1;
-    const filters = {
-      period_unit: this.periodUnit,
-      [`interval_${this.periodUnit}`]: this.interval,
-      ...(this.appealCourtId && { a_id: this.appealCourtId }),
-      ...(this.jurisdictionId && { j_id: this.jurisdictionId })
-    };
-    this.statsUrlAdminDynamic$ =
-      this.apiService.getStatsUrlAdminDynamic(filters);
-  }
 }
diff --git a/src/app/rest/api.rest.service.ts b/src/app/rest/api.rest.service.ts
index eac819fe..2081a796 100644
--- a/src/app/rest/api.rest.service.ts
+++ b/src/app/rest/api.rest.service.ts
@@ -273,11 +273,8 @@ export class ApiRestService {
     });
   }
 
-  getStatsUrlAdminDynamic(filters: {
-    [p: string]: string | number;
-  }): Observable<string> {
+  getStatsUrlAdminDynamic(): Observable<string> {
     return this.http.get(`${this.BASE_PATH}/common/stats/admin-dynamic`, {
-      params: new HttpParams({ fromObject: filters }),
       responseType: 'text'
     });
   }
diff --git a/src/app/service/api.service.ts b/src/app/service/api.service.ts
index 6a4d741e..8a9085f8 100644
--- a/src/app/service/api.service.ts
+++ b/src/app/service/api.service.ts
@@ -187,10 +187,8 @@ export class ApiService {
     return this.apiRestService.getStatsUrlAdminStatic();
   }
 
-  getStatsUrlAdminDynamic(filters: {
-    [p: string]: string | number;
-  }): Observable<string> {
-    return this.apiRestService.getStatsUrlAdminDynamic(filters);
+  getStatsUrlAdminDynamic(): Observable<string> {
+    return this.apiRestService.getStatsUrlAdminDynamic();
   }
 
   getStatsUrlCourt(filters: {
-- 
GitLab