From ce3175cba6e2177829c7f98ab3833a29b19fb9dd Mon Sep 17 00:00:00 2001
From: sandre
Date: Sat, 17 Jan 2026 12:44:37 +0100
Subject: [PATCH] =?UTF-8?q?Id=C3=A9e=20pour=20avoir=20un=20BaseComponent?=
=?UTF-8?q?=20pour=20g=C3=A9rer=20le=20titre=20et=20la=20gestion=20des=20i?=
=?UTF-8?q?cons=20pour=20les=20mat-icons?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Front/skydivelogs-app/angular.json | 3 +-
.../src/app/app.base.component.ts | 33 +++
.../src/app/app.component.html | 24 +-
.../skydivelogs-app/src/app/app.component.ts | 33 +--
.../src/app/default/default.component.html | 15 +-
.../src/app/default/default.component.ts | 22 +-
.../list-of-jumps.component.html | 223 ++++++++++++------
Front/skydivelogs-app/src/index.html | 6 +-
8 files changed, 240 insertions(+), 119 deletions(-)
create mode 100644 Front/skydivelogs-app/src/app/app.base.component.ts
diff --git a/Front/skydivelogs-app/angular.json b/Front/skydivelogs-app/angular.json
index 614928a..e77a689 100644
--- a/Front/skydivelogs-app/angular.json
+++ b/Front/skydivelogs-app/angular.json
@@ -35,7 +35,8 @@
"styles": [
"src/assets/css/styles-app-loading.scss",
"src/assets/css/styles.css",
- "src/assets/css/new-theme.scss"
+ "src/assets/css/new-theme.scss",
+ "@angular/material/prebuilt-themes/pink-bluegrey.css"
],
"scripts": []
},
diff --git a/Front/skydivelogs-app/src/app/app.base.component.ts b/Front/skydivelogs-app/src/app/app.base.component.ts
new file mode 100644
index 0000000..8fb725c
--- /dev/null
+++ b/Front/skydivelogs-app/src/app/app.base.component.ts
@@ -0,0 +1,33 @@
+import { inject, OnInit } from "@angular/core";
+import { IconResolver, MatIconRegistry } from "@angular/material/icon";
+import { DomSanitizer } from "@angular/platform-browser";
+import { TranslateService } from "@ngx-translate/core";
+import { ServiceComm } from "../services/service-comm.service";
+
+@decorator
+export class BaseComponent implements OnInit {
+ protected title = "???";
+ protected serviceComm: ServiceComm;
+ private translateService: TranslateService;
+
+ constructor(title: string) {
+ let iconRegistry = inject(MatIconRegistry);
+ let sanitizer = inject(DomSanitizer);
+ const resolver: IconResolver = (name) =>
+ sanitizer.bypassSecurityTrustResourceUrl(`/assets/icon/${name}.svg`);
+ iconRegistry.addSvgIconResolver(resolver);
+
+ this.serviceComm = inject(ServiceComm);
+ this.translateService = inject(TranslateService);
+ this.title = title;
+ }
+
+ ngOnInit() {
+ this.translateService.get(this.title).subscribe((data) => {
+ // this.serviceComm.updatedComponentTitle(data);
+ this.serviceComm.componentTitle.subscribe((title) => (this.title = data));
+ });
+ }
+}
+
+function decorator(target: typeof BaseComponent): void | typeof BaseComponent {}
diff --git a/Front/skydivelogs-app/src/app/app.component.html b/Front/skydivelogs-app/src/app/app.component.html
index 0fdcc96..5880383 100644
--- a/Front/skydivelogs-app/src/app/app.component.html
+++ b/Front/skydivelogs-app/src/app/app.component.html
@@ -1,6 +1,6 @@
{{ title }}
@@ -30,7 +30,7 @@
{{
"App_Nav_Logout" | translate
diff --git a/Front/skydivelogs-app/src/app/app.component.ts b/Front/skydivelogs-app/src/app/app.component.ts
index adb1043..a1d92b7 100644
--- a/Front/skydivelogs-app/src/app/app.component.ts
+++ b/Front/skydivelogs-app/src/app/app.component.ts
@@ -7,6 +7,11 @@ import { MatSelectModule } from "@angular/material/select";
import { MatOptionModule } from "@angular/material/core";
import { MatSidenavModule } from "@angular/material/sidenav";
import { MatListModule } from "@angular/material/list";
+import {
+ TranslateService,
+ TranslateModule,
+ TranslatePipe,
+} from "@ngx-translate/core";
import { User } from "../models/user";
import { CacheApiKey } from "../models/cache-api-key.enum";
@@ -16,11 +21,7 @@ import { ServiceComm } from "../services/service-comm.service";
import { ConfigurationHelper } from "../services/configuration-helper";
import { ServiceCacheApi } from "../services/service-cache-api.service";
-import {
- TranslateService,
- TranslateModule,
- TranslatePipe,
-} from "@ngx-translate/core";
+import { BaseComponent } from "./app.base.component";
@Component({
selector: "app-root",
@@ -40,8 +41,8 @@ import {
TranslatePipe,
],
})
-export class AppComponent implements OnInit {
- public title = "app";
+export class AppComponent extends BaseComponent {
+ // public title = "app";
public currentUser: User;
public version: string;
public selectedLanguageFlag: string;
@@ -49,15 +50,17 @@ export class AppComponent implements OnInit {
constructor(
private router: Router,
private authenticationService: AuthenticationService,
- private serviceComm: ServiceComm,
+ // private serviceComm: ServiceComm,
private serviceCacheApi: ServiceCacheApi,
- private translateService: TranslateService
+ // private translateService: TranslateService,
) {
+ super("Default_Title");
+
this.authenticationService.currentUser.subscribe((user) => {
if (user) {
this.currentUser = user;
- this.translateService.addLangs(["en", "fr"]);
- this.translateService.use(user.language);
+ // this.translateService.addLangs(["en", "fr"]);
+ // this.translateService.use(user.language);
this.selectedLanguageFlag = user.language;
}
});
@@ -69,9 +72,9 @@ export class AppComponent implements OnInit {
});
}
- ngOnInit() {
- this.serviceComm.componentTitle.subscribe((title) => (this.title = title));
- }
+ // ngOnInit() {
+ // this.serviceComm.componentTitle.subscribe((title) => (this.title = title));
+ // }
public show() {
return this.authenticationService.currentUserValue != undefined;
@@ -84,7 +87,7 @@ export class AppComponent implements OnInit {
}
public switchLang(event: any) {
- this.translateService.use(event.value);
+ // this.translateService.use(event.value);
this.currentUser.language = event.value;
this.authenticationService.currentUserValue = this.currentUser;
this.selectedLanguageFlag = event.value;
diff --git a/Front/skydivelogs-app/src/app/default/default.component.html b/Front/skydivelogs-app/src/app/default/default.component.html
index c303261..fb7fe86 100644
--- a/Front/skydivelogs-app/src/app/default/default.component.html
+++ b/Front/skydivelogs-app/src/app/default/default.component.html
@@ -10,7 +10,7 @@
aria-hidden="false"
aria-label="Summary"
style="width: 128px; height: 128px; font-size: 128px"
- fontIcon="timeline"
+ svgIcon="summary"
>
@@ -25,7 +25,7 @@
aria-hidden="false"
aria-label="Add jumps"
style="width: 128px; height: 128px; font-size: 128px"
- fontIcon="add_circle"
+ svgIcon="add"
>
@@ -40,7 +40,7 @@
aria-hidden="false"
aria-label="List of jumps"
style="width: 128px; height: 128px; font-size: 128px"
- fontIcon="list_alt"
+ svgIcon="list"
>
@@ -51,11 +51,12 @@
routerLinkActive="active"
skipLocationChange
>
-
+ svgIcon="wind"
+ >
diff --git a/Front/skydivelogs-app/src/app/default/default.component.ts b/Front/skydivelogs-app/src/app/default/default.component.ts
index 9979327..d54e619 100644
--- a/Front/skydivelogs-app/src/app/default/default.component.ts
+++ b/Front/skydivelogs-app/src/app/default/default.component.ts
@@ -10,6 +10,7 @@ import { DropzoneService } from "../../services/dropzone.service";
import { GearService } from "../../services/gear.service";
import { JumpTypeService } from "../../services/jump-type.service";
import { ServiceComm } from "../../services/service-comm.service";
+import { BaseComponent } from "../app.base.component";
@Component({
selector: "app-default",
@@ -17,18 +18,21 @@ import { ServiceComm } from "../../services/service-comm.service";
styleUrls: ["./default.component.css"],
imports: [TranslateModule, MatIconModule, RouterLink],
})
-export class DefaultComponent implements OnInit {
+export class DefaultComponent extends BaseComponent {
+ //implements OnInit {
constructor(
- private serviceComm: ServiceComm,
- private translateService: TranslateService,
+ // private serviceComm: ServiceComm,
+ // private translateService: TranslateService,
private authenticationService: AuthenticationService,
private serviceApiAircraft: AircraftService,
private serviceApiJumpType: JumpTypeService,
private serviceApiDropzone: DropzoneService,
- private serviceApiGear: GearService
- ) {}
+ private serviceApiGear: GearService,
+ ) {
+ super("Default_Title");
+ }
- ngOnInit() {
+ override ngOnInit() {
this.authenticationService.alwaysLogin();
this.putToCacheRefDatas().subscribe(() => {
@@ -52,8 +56,8 @@ export class DefaultComponent implements OnInit {
}
private updateTitle() {
- this.translateService.get("Default_Title").subscribe((data) => {
- this.serviceComm.updatedComponentTitle(data);
- });
+ // this.translateService.get("Default_Title").subscribe((data) => {
+ // this.serviceComm.updatedComponentTitle(data);
+ // });
}
}
diff --git a/Front/skydivelogs-app/src/app/list-of-jumps/list-of-jumps.component.html b/Front/skydivelogs-app/src/app/list-of-jumps/list-of-jumps.component.html
index b06a525..9b092e2 100644
--- a/Front/skydivelogs-app/src/app/list-of-jumps/list-of-jumps.component.html
+++ b/Front/skydivelogs-app/src/app/list-of-jumps/list-of-jumps.component.html
@@ -1,82 +1,165 @@
-
-
-
+
+
+
-
+
-
-
-
- |
-
- info
- sticky_note_2
- celebration
- |
-
+
+
+
+ |
+
+ info
+ sticky_note_2
+ celebration
+ |
+
-
- {{ 'List_Jump_Header_Num' | translate }}
- |
-
- {{ paginator.length - ( (paginator.pageIndex * paginator.pageSize ) + i ) }}
- |
-
+
+
+ {{ "List_Jump_Header_Num" | translate }}
+ |
+
+ {{
+ paginator.length - (paginator.pageIndex * paginator.pageSize + i)
+ }}
+ |
+
-
- {{ 'List_Jump_Header_Date' | translate }} |
-
-
- |
-
+
+
+ {{ "List_Jump_Header_Date" | translate }}
+ |
+
+
+ |
+
-
- {{ 'List_Jump_Header_JumpType' |
- translate }} |
-
-
- |
-
+
+
+ {{ "List_Jump_Header_JumpType" | translate }}
+ |
+
+
+ |
+
-
- {{ 'List_Jump_Header_Aircraft' |
- translate }} |
-
-
- |
-
+
+
+ {{ "List_Jump_Header_Aircraft" | translate }}
+ |
+
+
+ |
+
-
- {{ 'List_Jump_Header_Dz' | translate }} |
-
-
- |
-
+
+
+ {{ "List_Jump_Header_Dz" | translate }}
+ |
+
+
+ |
+
-
- {{ 'List_Jump_Header_Id' | translate }} |
- {{element.gear.name}} |
-
+
+
+ {{ "List_Jump_Header_Id" | translate }}
+ |
+ {{ element.gear.name }} |
+
-
- |
-
- delete
- edit
- |
-
+
+ |
+
+ delete
+ edit
+ |
+
-
-
-
-
+
+
+
+
-
-
\ No newline at end of file
+
+
diff --git a/Front/skydivelogs-app/src/index.html b/Front/skydivelogs-app/src/index.html
index 2413ef3..95e31ed 100644
--- a/Front/skydivelogs-app/src/index.html
+++ b/Front/skydivelogs-app/src/index.html
@@ -1,4 +1,4 @@
-
+
@@ -9,10 +9,6 @@
content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"
/>
-
-