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 > - Tunnel flights + 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" /> - -