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