Update angular/core et angular/cli
This commit is contained in:
@@ -15,7 +15,7 @@
|
|||||||
"prefix": "app",
|
"prefix": "app",
|
||||||
"architect": {
|
"architect": {
|
||||||
"build": {
|
"build": {
|
||||||
"builder": "@angular-devkit/build-angular:application",
|
"builder": "@angular/build:application",
|
||||||
"options": {
|
"options": {
|
||||||
"outputPath": "dist",
|
"outputPath": "dist",
|
||||||
"index": "src/index.html",
|
"index": "src/index.html",
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
"defaultConfiguration": "production"
|
"defaultConfiguration": "production"
|
||||||
},
|
},
|
||||||
"serve": {
|
"serve": {
|
||||||
"builder": "@angular-devkit/build-angular:dev-server",
|
"builder": "@angular/build:dev-server",
|
||||||
"configurations": {
|
"configurations": {
|
||||||
"production": {
|
"production": {
|
||||||
"buildTarget": "skydivelogs-app:build:production"
|
"buildTarget": "skydivelogs-app:build:production"
|
||||||
@@ -99,10 +99,10 @@
|
|||||||
"defaultConfiguration": "development"
|
"defaultConfiguration": "development"
|
||||||
},
|
},
|
||||||
"extract-i18n": {
|
"extract-i18n": {
|
||||||
"builder": "@angular-devkit/build-angular:extract-i18n"
|
"builder": "@angular/build:extract-i18n"
|
||||||
},
|
},
|
||||||
"test": {
|
"test": {
|
||||||
"builder": "@angular-devkit/build-angular:karma",
|
"builder": "@angular/build:karma",
|
||||||
"options": {
|
"options": {
|
||||||
"polyfills": ["zone.js", "zone.js/testing"],
|
"polyfills": ["zone.js", "zone.js/testing"],
|
||||||
"tsConfig": "tsconfig.spec.json",
|
"tsConfig": "tsconfig.spec.json",
|
||||||
@@ -119,5 +119,31 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"schematics": {
|
||||||
|
"@schematics/angular:component": {
|
||||||
|
"type": "component"
|
||||||
|
},
|
||||||
|
"@schematics/angular:directive": {
|
||||||
|
"type": "directive"
|
||||||
|
},
|
||||||
|
"@schematics/angular:service": {
|
||||||
|
"type": "service"
|
||||||
|
},
|
||||||
|
"@schematics/angular:guard": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
},
|
||||||
|
"@schematics/angular:interceptor": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
},
|
||||||
|
"@schematics/angular:module": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
},
|
||||||
|
"@schematics/angular:pipe": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
},
|
||||||
|
"@schematics/angular:resolver": {
|
||||||
|
"typeSeparator": "."
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
8035
Front/skydivelogs-app/package-lock.json
generated
8035
Front/skydivelogs-app/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -12,16 +12,16 @@
|
|||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "^19.2.6",
|
"@angular/animations": "^20.3.16",
|
||||||
"@angular/cdk": "^19.2.9",
|
"@angular/cdk": "^19.2.9",
|
||||||
"@angular/common": "^19.2.6",
|
"@angular/common": "^20.3.16",
|
||||||
"@angular/compiler": "^19.2.6",
|
"@angular/compiler": "^20.3.16",
|
||||||
"@angular/core": "^19.2.6",
|
"@angular/core": "^20.3.16",
|
||||||
"@angular/forms": "^19.2.6",
|
"@angular/forms": "^20.3.16",
|
||||||
"@angular/material": "^19.2.9",
|
"@angular/material": "^19.2.9",
|
||||||
"@angular/platform-browser": "^19.2.6",
|
"@angular/platform-browser": "^20.3.16",
|
||||||
"@angular/platform-browser-dynamic": "^19.2.6",
|
"@angular/platform-browser-dynamic": "^20.3.16",
|
||||||
"@angular/router": "^19.2.6",
|
"@angular/router": "^20.3.16",
|
||||||
"@ngx-translate/core": "^17.0.0",
|
"@ngx-translate/core": "^17.0.0",
|
||||||
"@ngx-translate/http-loader": "^17.0.0",
|
"@ngx-translate/http-loader": "^17.0.0",
|
||||||
"chart.js": "^4.3.0",
|
"chart.js": "^4.3.0",
|
||||||
@@ -31,9 +31,9 @@
|
|||||||
"zone.js": "~0.15.0"
|
"zone.js": "~0.15.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-devkit/build-angular": "^19.2.7",
|
"@angular/build": "^20.3.14",
|
||||||
"@angular/cli": "~19.2.7",
|
"@angular/cli": "~20.3.14",
|
||||||
"@angular/compiler-cli": "^19.2.6",
|
"@angular/compiler-cli": "^20.3.16",
|
||||||
"@types/jasmine": "~4.3.0",
|
"@types/jasmine": "~4.3.0",
|
||||||
"jasmine-core": "~5.1.0",
|
"jasmine-core": "~5.1.0",
|
||||||
"karma": "~6.4.0",
|
"karma": "~6.4.0",
|
||||||
@@ -41,6 +41,6 @@
|
|||||||
"karma-coverage": "~2.2.0",
|
"karma-coverage": "~2.2.0",
|
||||||
"karma-jasmine": "~5.1.0",
|
"karma-jasmine": "~5.1.0",
|
||||||
"karma-jasmine-html-reporter": "~2.1.0",
|
"karma-jasmine-html-reporter": "~2.1.0",
|
||||||
"typescript": "~5.5.4"
|
"typescript": "~5.9.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
<mat-toolbar *ngIf="this.show()">
|
@if (this.show()) {
|
||||||
|
<mat-toolbar>
|
||||||
<mat-icon svgIcon="menu" (click)="snav.toggle()"></mat-icon>
|
<mat-icon svgIcon="menu" (click)="snav.toggle()"></mat-icon>
|
||||||
<h2>{{ translatedTitle }}</h2>
|
<h2>{{ translatedTitle }}</h2>
|
||||||
|
|
||||||
<mat-select
|
<mat-select
|
||||||
[(value)]="selectedLanguageFlag"
|
[(value)]="selectedLanguageFlag"
|
||||||
(selectionChange)="switchLang($event)"
|
(selectionChange)="switchLang($event)"
|
||||||
@@ -20,7 +20,8 @@
|
|||||||
<img src="assets/img/en.svg" style="width: 30px" />
|
<img src="assets/img/en.svg" style="width: 30px" />
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-toolbar>
|
</mat-toolbar>
|
||||||
|
}
|
||||||
|
|
||||||
<mat-sidenav-container>
|
<mat-sidenav-container>
|
||||||
<mat-sidenav #snav mode="over" style="padding: 0 20px 0 10px">
|
<mat-sidenav #snav mode="over" style="padding: 0 20px 0 10px">
|
||||||
@@ -153,7 +154,8 @@
|
|||||||
>{{ "App_Nav_Gears" | translate }}</a
|
>{{ "App_Nav_Gears" | translate }}</a
|
||||||
>
|
>
|
||||||
</mat-nav-list>
|
</mat-nav-list>
|
||||||
<mat-nav-list *ngIf="currentUser">
|
@if (currentUser) {
|
||||||
|
<mat-nav-list>
|
||||||
<hr class="splitter" />
|
<hr class="splitter" />
|
||||||
<mat-icon
|
<mat-icon
|
||||||
aria-hidden="false"
|
aria-hidden="false"
|
||||||
@@ -169,7 +171,9 @@
|
|||||||
{{ this.currentUser.firstName }} {{ this.currentUser.lastName }}
|
{{ this.currentUser.firstName }} {{ this.currentUser.lastName }}
|
||||||
</a>
|
</a>
|
||||||
</mat-nav-list>
|
</mat-nav-list>
|
||||||
<mat-nav-list *ngIf="currentUser">
|
}
|
||||||
|
@if (currentUser) {
|
||||||
|
<mat-nav-list>
|
||||||
<mat-icon
|
<mat-icon
|
||||||
aria-hidden="false"
|
aria-hidden="false"
|
||||||
aria-label="To logout"
|
aria-label="To logout"
|
||||||
@@ -179,6 +183,7 @@
|
|||||||
"App_Nav_Logout" | translate
|
"App_Nav_Logout" | translate
|
||||||
}}</span>
|
}}</span>
|
||||||
</mat-nav-list>
|
</mat-nav-list>
|
||||||
|
}
|
||||||
</mat-sidenav>
|
</mat-sidenav>
|
||||||
|
|
||||||
<mat-sidenav-content>
|
<mat-sidenav-content>
|
||||||
@@ -187,4 +192,4 @@
|
|||||||
{{ "App_Footer" | translate }}{{ version }} - @Séb
|
{{ "App_Footer" | translate }}{{ version }} - @Séb
|
||||||
</footer>
|
</footer>
|
||||||
</mat-sidenav-content>
|
</mat-sidenav-content>
|
||||||
</mat-sidenav-container>
|
</mat-sidenav-container>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { Component, inject, OnInit } from "@angular/core";
|
import { Component, inject, OnInit } from "@angular/core";
|
||||||
import { Router, RouterLink, RouterOutlet } from "@angular/router";
|
import { Router, RouterLink, RouterOutlet } from "@angular/router";
|
||||||
import { CommonModule } from "@angular/common";
|
|
||||||
import { DomSanitizer } from "@angular/platform-browser";
|
import { DomSanitizer } from "@angular/platform-browser";
|
||||||
import { MatToolbarModule } from "@angular/material/toolbar";
|
import { MatToolbarModule } from "@angular/material/toolbar";
|
||||||
import {
|
import {
|
||||||
@@ -31,7 +31,6 @@ import { ServiceCacheApi } from "../services/service-cache-api.service";
|
|||||||
templateUrl: "./app.component.html",
|
templateUrl: "./app.component.html",
|
||||||
styleUrls: ["./app.component.css"],
|
styleUrls: ["./app.component.css"],
|
||||||
imports: [
|
imports: [
|
||||||
CommonModule,
|
|
||||||
MatToolbarModule,
|
MatToolbarModule,
|
||||||
MatIconModule,
|
MatIconModule,
|
||||||
MatSelectModule,
|
MatSelectModule,
|
||||||
@@ -41,8 +40,8 @@ import { ServiceCacheApi } from "../services/service-cache-api.service";
|
|||||||
RouterOutlet,
|
RouterOutlet,
|
||||||
RouterLink,
|
RouterLink,
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
TranslatePipe,
|
TranslatePipe
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class AppComponent implements OnInit {
|
export class AppComponent implements OnInit {
|
||||||
public translatedTitle = "???";
|
public translatedTitle = "???";
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
style="padding: 10px"
|
style="padding: 10px"
|
||||||
(ngSubmit)="onCreateSubmit()"
|
(ngSubmit)="onCreateSubmit()"
|
||||||
[formGroup]="createForm"
|
[formGroup]="createForm"
|
||||||
>
|
>
|
||||||
<p>
|
<p>
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ "LoginCreateUser_Firstname" | translate }}</mat-label>
|
<mat-label>{{ "LoginCreateUser_Firstname" | translate }}</mat-label>
|
||||||
@@ -16,12 +16,16 @@
|
|||||||
[ngClass]="{ 'is-invalid': submitted && formCtrls['firstname'].errors }"
|
[ngClass]="{ 'is-invalid': submitted && formCtrls['firstname'].errors }"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
/>
|
/>
|
||||||
<mat-error *ngIf="formCtrls['firstname'].hasError('required')">
|
@if (formCtrls['firstname'].hasError('required')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginCreateUser_FirstnameRequired" | translate }}
|
{{ "LoginCreateUser_FirstnameRequired" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
<mat-error *ngIf="formCtrls['firstname'].hasError('minlength')">
|
}
|
||||||
|
@if (formCtrls['firstname'].hasError('minlength')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginCreateUser_FirstnamePattern" | translate }}
|
{{ "LoginCreateUser_FirstnamePattern" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@@ -34,12 +38,16 @@
|
|||||||
[ngClass]="{ 'is-invalid': submitted && formCtrls['lastname'].errors }"
|
[ngClass]="{ 'is-invalid': submitted && formCtrls['lastname'].errors }"
|
||||||
tabindex="1"
|
tabindex="1"
|
||||||
/>
|
/>
|
||||||
<mat-error *ngIf="formCtrls['lastname'].hasError('required')">
|
@if (formCtrls['lastname'].hasError('required')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginCreateUser_LastnameRequired" | translate }}
|
{{ "LoginCreateUser_LastnameRequired" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
<mat-error *ngIf="formCtrls['lastname'].hasError('minlength')">
|
}
|
||||||
|
@if (formCtrls['lastname'].hasError('minlength')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginCreateUser_LastnamePattern" | translate }}
|
{{ "LoginCreateUser_LastnamePattern" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@@ -52,12 +60,16 @@
|
|||||||
[ngClass]="{ 'is-invalid': submitted && formCtrls['email'].errors }"
|
[ngClass]="{ 'is-invalid': submitted && formCtrls['email'].errors }"
|
||||||
tabindex="3"
|
tabindex="3"
|
||||||
/>
|
/>
|
||||||
<mat-error *ngIf="formCtrls['email'].hasError('required')">
|
@if (formCtrls['email'].hasError('required')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginCreateUser_EmailRequired" | translate }}
|
{{ "LoginCreateUser_EmailRequired" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
<mat-error *ngIf="formCtrls['email'].hasError('email')">
|
}
|
||||||
|
@if (formCtrls['email'].hasError('email')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginCreateUser_EmailPattern" | translate }}
|
{{ "LoginCreateUser_EmailPattern" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@@ -70,12 +82,16 @@
|
|||||||
[ngClass]="{ 'is-invalid': submitted && formCtrls['username'].errors }"
|
[ngClass]="{ 'is-invalid': submitted && formCtrls['username'].errors }"
|
||||||
tabindex="4"
|
tabindex="4"
|
||||||
/>
|
/>
|
||||||
<mat-error *ngIf="formCtrls['username'].hasError('required')">
|
@if (formCtrls['username'].hasError('required')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginCreateUser_UsernameRequired" | translate }}
|
{{ "LoginCreateUser_UsernameRequired" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
<mat-error *ngIf="formCtrls['username'].hasError('minlength')">
|
}
|
||||||
|
@if (formCtrls['username'].hasError('minlength')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginCreateUser_UsernamePattern" | translate }}
|
{{ "LoginCreateUser_UsernamePattern" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@@ -88,17 +104,23 @@
|
|||||||
[ngClass]="{ 'is-invalid': submitted && formCtrls['password'].errors }"
|
[ngClass]="{ 'is-invalid': submitted && formCtrls['password'].errors }"
|
||||||
tabindex="5"
|
tabindex="5"
|
||||||
/>
|
/>
|
||||||
<mat-error *ngIf="formCtrls['password'].hasError('required')">
|
@if (formCtrls['password'].hasError('required')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginCreateUser_PasswordRequired" | translate }}
|
{{ "LoginCreateUser_PasswordRequired" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
<mat-error *ngIf="formCtrls['password'].hasError('pattern')">
|
}
|
||||||
|
@if (formCtrls['password'].hasError('pattern')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginCreateUser_PasswordPattern" | translate }}
|
{{ "LoginCreateUser_PasswordPattern" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<button [disabled]="!createForm.valid" mat-raised-button color="accent">
|
<button [disabled]="!createForm.valid" mat-raised-button color="accent">
|
||||||
{{ "LoginCreateUser_BtnLogin" | translate }}
|
{{ "LoginCreateUser_BtnLogin" | translate }}
|
||||||
</button>
|
</button>
|
||||||
<div *ngIf="error" class="alert alert-danger mt-3 mb-0">{{ error }}</div>
|
@if (error) {
|
||||||
|
<div class="alert alert-danger mt-3 mb-0">{{ error }}</div>
|
||||||
|
}
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -30,5 +30,7 @@
|
|||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<button mat-raised-button color="accent" *ngIf="editMode">Update</button>
|
@if (editMode) {
|
||||||
</form>
|
<button mat-raised-button color="accent">Update</button>
|
||||||
|
}
|
||||||
|
</form>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { Component, Inject, OnInit } from "@angular/core";
|
import { Component, Inject, OnInit } from "@angular/core";
|
||||||
import { CommonModule } from "@angular/common";
|
|
||||||
import { MAT_DIALOG_DATA } from "@angular/material/dialog";
|
import { MAT_DIALOG_DATA } from "@angular/material/dialog";
|
||||||
import { TranslateModule } from "@ngx-translate/core";
|
import { TranslateModule } from "@ngx-translate/core";
|
||||||
import { MatCheckboxModule } from "@angular/material/checkbox";
|
import { MatCheckboxModule } from "@angular/material/checkbox";
|
||||||
@@ -20,14 +20,13 @@ import { ServiceComm } from "../../services/service-comm.service";
|
|||||||
styleUrls: ["./jump-infos.component.css"],
|
styleUrls: ["./jump-infos.component.css"],
|
||||||
imports: [
|
imports: [
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
CommonModule,
|
|
||||||
FormsModule,
|
FormsModule,
|
||||||
MatCheckboxModule,
|
MatCheckboxModule,
|
||||||
MatFormFieldModule,
|
MatFormFieldModule,
|
||||||
ReactiveFormsModule,
|
ReactiveFormsModule,
|
||||||
MatInputModule,
|
MatInputModule,
|
||||||
MatButtonModule,
|
MatButtonModule
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class JumpInfosComponent implements OnInit {
|
export class JumpInfosComponent implements OnInit {
|
||||||
public editMode: boolean;
|
public editMode: boolean;
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
<div *ngIf="dataSourceTable != null; else loading">
|
@if (dataSourceTable != null) {
|
||||||
|
<div>
|
||||||
|
@if (isUserAdmin == true) {
|
||||||
<button
|
<button
|
||||||
mat-raised-button
|
mat-raised-button
|
||||||
color="accent"
|
color="accent"
|
||||||
(click)="openDialogToAdd()"
|
(click)="openDialogToAdd()"
|
||||||
*ngIf="isUserAdmin == true"
|
|
||||||
>
|
>
|
||||||
{{ "ListAircrafts_Add" | translate }}
|
{{ "ListAircrafts_Add" | translate }}
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
<table mat-table [dataSource]="dataSourceTable">
|
<table mat-table [dataSource]="dataSourceTable">
|
||||||
<ng-container matColumnDef="id">
|
<ng-container matColumnDef="id">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
@@ -16,14 +17,12 @@
|
|||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">{{ element.id }}</td>
|
<td mat-cell *matCellDef="let element">{{ element.id }}</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="name">
|
<ng-container matColumnDef="name">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
{{ "ListAircrafts_Header_Name" | translate }}
|
{{ "ListAircrafts_Header_Name" | translate }}
|
||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">{{ element.name }}</td>
|
<td mat-cell *matCellDef="let element">{{ element.name }}</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="imageData">
|
<ng-container matColumnDef="imageData">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
{{ "ListAircrafts_Header_Image" | translate }}
|
{{ "ListAircrafts_Header_Image" | translate }}
|
||||||
@@ -36,14 +35,13 @@
|
|||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
|
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
|
||||||
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
} @else {
|
||||||
|
<mat-progress-spinner [mode]="'indeterminate'"></mat-progress-spinner>
|
||||||
|
}
|
||||||
<mat-paginator [length]="resultsLength" [pageSize]="10"></mat-paginator>
|
<mat-paginator [length]="resultsLength" [pageSize]="10"></mat-paginator>
|
||||||
|
|
||||||
<ng-template #loading>
|
|
||||||
<mat-progress-spinner [mode]="'indeterminate'"></mat-progress-spinner>
|
|
||||||
</ng-template>
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { MatPaginator, MatPaginatorModule } from "@angular/material/paginator";
|
|||||||
import { MatTableDataSource, MatTableModule } from "@angular/material/table";
|
import { MatTableDataSource, MatTableModule } from "@angular/material/table";
|
||||||
import { MatDialog } from "@angular/material/dialog";
|
import { MatDialog } from "@angular/material/dialog";
|
||||||
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
||||||
import { CommonModule } from "@angular/common";
|
|
||||||
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
||||||
import { MatButtonModule } from "@angular/material/button";
|
import { MatButtonModule } from "@angular/material/button";
|
||||||
|
|
||||||
@@ -20,12 +20,11 @@ import { AircraftResp } from "../../models/aircraft";
|
|||||||
styleUrls: ["./list-of-aircrafts.component.css"],
|
styleUrls: ["./list-of-aircrafts.component.css"],
|
||||||
imports: [
|
imports: [
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
CommonModule,
|
|
||||||
MatPaginatorModule,
|
MatPaginatorModule,
|
||||||
MatProgressSpinnerModule,
|
MatProgressSpinnerModule,
|
||||||
MatTableModule,
|
MatTableModule,
|
||||||
MatButtonModule,
|
MatButtonModule
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class ListOfAircraftsComponent implements OnInit {
|
export class ListOfAircraftsComponent implements OnInit {
|
||||||
public displayedColumns: Array<string> = ["name", "imageData"];
|
public displayedColumns: Array<string> = ["name", "imageData"];
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
<div *ngIf="dataSourceTable != null; else loading">
|
@if (dataSourceTable != null) {
|
||||||
|
<div>
|
||||||
|
@if (isUserAdmin == true) {
|
||||||
<button
|
<button
|
||||||
mat-raised-button
|
mat-raised-button
|
||||||
color="accent"
|
color="accent"
|
||||||
(click)="openDialogToAdd()"
|
(click)="openDialogToAdd()"
|
||||||
*ngIf="isUserAdmin == true"
|
|
||||||
>
|
>
|
||||||
{{ "ListDz_Add" | translate }}
|
{{ "ListDz_Add" | translate }}
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ "ListDz_Filter" | translate }}</mat-label>
|
<mat-label>{{ "ListDz_Filter" | translate }}</mat-label>
|
||||||
<input
|
<input
|
||||||
@@ -18,28 +19,29 @@
|
|||||||
#input
|
#input
|
||||||
/>
|
/>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<table mat-table [dataSource]="dataSourceTable">
|
<table mat-table [dataSource]="dataSourceTable">
|
||||||
<ng-container matColumnDef="isfavorite">
|
<ng-container matColumnDef="isfavorite">
|
||||||
<th mat-header-cell *matHeaderCellDef style="min-width: 144px"></th>
|
<th mat-header-cell *matHeaderCellDef style="min-width: 144px"></th>
|
||||||
<td mat-cell *matCellDef="let element" style="text-align: left">
|
<td mat-cell *matCellDef="let element" style="text-align: left">
|
||||||
|
@if (element.isFavorite === true) {
|
||||||
<mat-icon
|
<mat-icon
|
||||||
aria-hidden="false"
|
aria-hidden="false"
|
||||||
aria-label="Favorite"
|
aria-label="Favorite"
|
||||||
*ngIf="element.isFavorite === true"
|
|
||||||
(click)="removeToFavorite(element)"
|
(click)="removeToFavorite(element)"
|
||||||
color="primary"
|
color="primary"
|
||||||
style="cursor: pointer"
|
style="cursor: pointer"
|
||||||
svgIcon="favorite"
|
svgIcon="favorite"
|
||||||
></mat-icon>
|
></mat-icon>
|
||||||
|
}
|
||||||
|
@if (element.isFavorite === false) {
|
||||||
<mat-icon
|
<mat-icon
|
||||||
aria-hidden="false"
|
aria-hidden="false"
|
||||||
aria-label="Not favorite"
|
aria-label="Not favorite"
|
||||||
*ngIf="element.isFavorite === false"
|
|
||||||
(click)="setToFavorite(element)"
|
(click)="setToFavorite(element)"
|
||||||
style="cursor: pointer"
|
style="cursor: pointer"
|
||||||
svgIcon="not_favorite"
|
svgIcon="not_favorite"
|
||||||
></mat-icon>
|
></mat-icon>
|
||||||
|
}
|
||||||
<a href="http://{{ element.website }}" target="_blank">
|
<a href="http://{{ element.website }}" target="_blank">
|
||||||
<mat-icon
|
<mat-icon
|
||||||
aria-hidden="false"
|
aria-hidden="false"
|
||||||
@@ -63,7 +65,8 @@
|
|||||||
svgIcon="map"
|
svgIcon="map"
|
||||||
></mat-icon>
|
></mat-icon>
|
||||||
</a>
|
</a>
|
||||||
<a href="mailto:{{ element.email }}" *ngIf="element.email">
|
@if (element.email) {
|
||||||
|
<a href="mailto:{{ element.email }}">
|
||||||
<mat-icon
|
<mat-icon
|
||||||
aria-hidden="false"
|
aria-hidden="false"
|
||||||
aria-label="Contact mail of the DZ"
|
aria-label="Contact mail of the DZ"
|
||||||
@@ -71,16 +74,15 @@
|
|||||||
svgIcon="mail"
|
svgIcon="mail"
|
||||||
></mat-icon>
|
></mat-icon>
|
||||||
</a>
|
</a>
|
||||||
|
}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="id">
|
<ng-container matColumnDef="id">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
{{ "ListDz_Header_ID" | translate }}
|
{{ "ListDz_Header_ID" | translate }}
|
||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">{{ element.id }}</td>
|
<td mat-cell *matCellDef="let element">{{ element.id }}</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="name">
|
<ng-container matColumnDef="name">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
{{ "ListDz_Header_Name" | translate }}
|
{{ "ListDz_Header_Name" | translate }}
|
||||||
@@ -89,7 +91,6 @@
|
|||||||
<span class="spanWithBreakWord" [innerHTML]="element.name"></span>
|
<span class="spanWithBreakWord" [innerHTML]="element.name"></span>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="address">
|
<ng-container matColumnDef="address">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
{{ "ListDz_Header_Address" | translate }}
|
{{ "ListDz_Header_Address" | translate }}
|
||||||
@@ -98,21 +99,19 @@
|
|||||||
<span class="spanWithBreakWord" [innerHTML]="element.address"></span>
|
<span class="spanWithBreakWord" [innerHTML]="element.address"></span>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="type">
|
<ng-container matColumnDef="type">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
{{ "ListDz_Header_Type" | translate }}
|
{{ "ListDz_Header_Type" | translate }}
|
||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">{{ element.type }}</td>
|
<td mat-cell *matCellDef="let element">{{ element.type }}</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
|
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
|
||||||
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
} @else {
|
||||||
|
<mat-progress-spinner [mode]="'indeterminate'"></mat-progress-spinner>
|
||||||
|
}
|
||||||
<mat-paginator [length]="resultsLength" [pageSize]="20"></mat-paginator>
|
<mat-paginator [length]="resultsLength" [pageSize]="20"></mat-paginator>
|
||||||
|
|
||||||
<ng-template #loading>
|
|
||||||
<mat-progress-spinner [mode]="'indeterminate'"></mat-progress-spinner>
|
|
||||||
</ng-template>
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { MatPaginator, MatPaginatorModule } from "@angular/material/paginator";
|
|||||||
import { MatTableDataSource, MatTableModule } from "@angular/material/table";
|
import { MatTableDataSource, MatTableModule } from "@angular/material/table";
|
||||||
import { MatDialog } from "@angular/material/dialog";
|
import { MatDialog } from "@angular/material/dialog";
|
||||||
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
||||||
import { CommonModule } from "@angular/common";
|
|
||||||
import { MatIconModule } from "@angular/material/icon";
|
import { MatIconModule } from "@angular/material/icon";
|
||||||
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
||||||
import { MatFormFieldModule } from "@angular/material/form-field";
|
import { MatFormFieldModule } from "@angular/material/form-field";
|
||||||
@@ -24,7 +24,6 @@ import { NewDropZoneComponent } from "../new-drop-zone/new-drop-zone.component";
|
|||||||
styleUrls: ["./list-of-dzs.component.css"],
|
styleUrls: ["./list-of-dzs.component.css"],
|
||||||
imports: [
|
imports: [
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
CommonModule,
|
|
||||||
MatIconModule,
|
MatIconModule,
|
||||||
MatPaginatorModule,
|
MatPaginatorModule,
|
||||||
MatProgressSpinnerModule,
|
MatProgressSpinnerModule,
|
||||||
@@ -32,8 +31,8 @@ import { NewDropZoneComponent } from "../new-drop-zone/new-drop-zone.component";
|
|||||||
MatFormFieldModule,
|
MatFormFieldModule,
|
||||||
ReactiveFormsModule,
|
ReactiveFormsModule,
|
||||||
MatInputModule,
|
MatInputModule,
|
||||||
MatButtonModule,
|
MatButtonModule
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class ListOfDzsComponent implements OnInit {
|
export class ListOfDzsComponent implements OnInit {
|
||||||
public displayedColumns: Array<string> = [
|
public displayedColumns: Array<string> = [
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
<div *ngIf="dataSourceTable != null; else loading">
|
@if (dataSourceTable != null) {
|
||||||
|
<div>
|
||||||
<button mat-raised-button color="accent" (click)="openDialogToAdd()">
|
<button mat-raised-button color="accent" (click)="openDialogToAdd()">
|
||||||
{{ "ListGears_Add" | translate }}
|
{{ "ListGears_Add" | translate }}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<table mat-table [dataSource]="dataSourceTable">
|
<table mat-table [dataSource]="dataSourceTable">
|
||||||
<ng-container matColumnDef="id">
|
<ng-container matColumnDef="id">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
@@ -11,21 +11,18 @@
|
|||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">{{ element.id }}</td>
|
<td mat-cell *matCellDef="let element">{{ element.id }}</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="name">
|
<ng-container matColumnDef="name">
|
||||||
<th mat-header-cell *matHeaderCellDef style="min-width: 130px">
|
<th mat-header-cell *matHeaderCellDef style="min-width: 130px">
|
||||||
{{ "ListGears_Header_Name" | translate }}
|
{{ "ListGears_Header_Name" | translate }}
|
||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">{{ element.name }}</td>
|
<td mat-cell *matCellDef="let element">{{ element.name }}</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="manufacturer">
|
<ng-container matColumnDef="manufacturer">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
{{ "ListGears_Header_Manufacturer" | translate }}
|
{{ "ListGears_Header_Manufacturer" | translate }}
|
||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">{{ element.manufacturer }}</td>
|
<td mat-cell *matCellDef="let element">{{ element.manufacturer }}</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="maxSize">
|
<ng-container matColumnDef="maxSize">
|
||||||
<th mat-header-cell *matHeaderCellDef style="min-width: 90px">
|
<th mat-header-cell *matHeaderCellDef style="min-width: 90px">
|
||||||
{{ "ListGears_Header_CanopySize" | translate }}
|
{{ "ListGears_Header_CanopySize" | translate }}
|
||||||
@@ -34,35 +31,31 @@
|
|||||||
{{ element.minSize }} - {{ element.maxSize }}
|
{{ element.minSize }} - {{ element.maxSize }}
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="aad">
|
<ng-container matColumnDef="aad">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
{{ "ListGears_Header_Aad" | translate }}
|
{{ "ListGears_Header_Aad" | translate }}
|
||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">{{ element.aad }}</td>
|
<td mat-cell *matCellDef="let element">{{ element.aad }}</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="mainCanopy">
|
<ng-container matColumnDef="mainCanopy">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
{{ "ListGears_Header_Main" | translate }}
|
{{ "ListGears_Header_Main" | translate }}
|
||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">{{ element.mainCanopy }}</td>
|
<td mat-cell *matCellDef="let element">{{ element.mainCanopy }}</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="reserveCanopy">
|
<ng-container matColumnDef="reserveCanopy">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
{{ "ListGears_Header_Reserve" | translate }}
|
{{ "ListGears_Header_Reserve" | translate }}
|
||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">{{ element.reserveCanopy }}</td>
|
<td mat-cell *matCellDef="let element">{{ element.reserveCanopy }}</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
|
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
|
||||||
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
} @else {
|
||||||
|
<mat-progress-spinner [mode]="'indeterminate'"></mat-progress-spinner>
|
||||||
|
}
|
||||||
<mat-paginator [length]="resultsLength" [pageSize]="10"></mat-paginator>
|
<mat-paginator [length]="resultsLength" [pageSize]="10"></mat-paginator>
|
||||||
|
|
||||||
<ng-template #loading>
|
|
||||||
<mat-progress-spinner [mode]="'indeterminate'"></mat-progress-spinner>
|
|
||||||
</ng-template>
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { MatPaginator, MatPaginatorModule } from "@angular/material/paginator";
|
|||||||
import { MatTableDataSource, MatTableModule } from "@angular/material/table";
|
import { MatTableDataSource, MatTableModule } from "@angular/material/table";
|
||||||
import { MatDialog } from "@angular/material/dialog";
|
import { MatDialog } from "@angular/material/dialog";
|
||||||
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
||||||
import { CommonModule } from "@angular/common";
|
|
||||||
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
||||||
import { MatButtonModule } from "@angular/material/button";
|
import { MatButtonModule } from "@angular/material/button";
|
||||||
|
|
||||||
@@ -19,12 +19,11 @@ import { NewGearComponent } from "../new-gear/new-gear.component";
|
|||||||
styleUrls: ["./list-of-gears.component.css"],
|
styleUrls: ["./list-of-gears.component.css"],
|
||||||
imports: [
|
imports: [
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
CommonModule,
|
|
||||||
MatPaginatorModule,
|
MatPaginatorModule,
|
||||||
MatProgressSpinnerModule,
|
MatProgressSpinnerModule,
|
||||||
MatTableModule,
|
MatTableModule,
|
||||||
MatButtonModule,
|
MatButtonModule
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class ListOfGearsComponent implements OnInit {
|
export class ListOfGearsComponent implements OnInit {
|
||||||
public displayedColumns: Array<string> = [
|
public displayedColumns: Array<string> = [
|
||||||
|
|||||||
@@ -31,7 +31,8 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div *ngIf="resultsLength > 0">
|
@if (resultsLength > 0) {
|
||||||
|
<div>
|
||||||
<table mat-table [dataSource]="dataSourceTable">
|
<table mat-table [dataSource]="dataSourceTable">
|
||||||
<ng-container matColumnDef="comment">
|
<ng-container matColumnDef="comment">
|
||||||
<th mat-header-cell *matHeaderCellDef style="text-align: center">
|
<th mat-header-cell *matHeaderCellDef style="text-align: center">
|
||||||
@@ -41,7 +42,6 @@
|
|||||||
<span style="white-space: nowrap">{{ element.comment }}</span>
|
<span style="white-space: nowrap">{{ element.comment }}</span>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="data">
|
<ng-container matColumnDef="data">
|
||||||
<th mat-header-cell *matHeaderCellDef style="text-align: center">
|
<th mat-header-cell *matHeaderCellDef style="text-align: center">
|
||||||
Image
|
Image
|
||||||
@@ -56,18 +56,17 @@
|
|||||||
/>
|
/>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
|
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
|
||||||
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<mat-paginator [length]="resultsLength" [pageSize]="10"></mat-paginator>
|
<mat-paginator [length]="resultsLength" [pageSize]="10"></mat-paginator>
|
||||||
</div>
|
</div>
|
||||||
|
}
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class="imgmodal"
|
class="imgmodal"
|
||||||
[ngStyle]="{ display: showPopin === true ? 'block' : 'none' }"
|
[ngStyle]="{ display: showPopin === true ? 'block' : 'none' }"
|
||||||
>
|
>
|
||||||
<span class="close cursor" (click)="closeModal()">×</span>
|
<span class="close cursor" (click)="closeModal()">×</span>
|
||||||
<mat-icon
|
<mat-icon
|
||||||
aria-hidden="false"
|
aria-hidden="false"
|
||||||
|
|||||||
@@ -1,14 +1,15 @@
|
|||||||
<div class="content">
|
<div class="content">
|
||||||
<div *ngIf="dataSourceTable != null; else loading">
|
@if (dataSourceTable != null) {
|
||||||
|
<div>
|
||||||
|
@if (isUserAdmin == true) {
|
||||||
<button
|
<button
|
||||||
mat-raised-button
|
mat-raised-button
|
||||||
color="accent"
|
color="accent"
|
||||||
(click)="openDialogToAdd()"
|
(click)="openDialogToAdd()"
|
||||||
*ngIf="isUserAdmin == true"
|
|
||||||
>
|
>
|
||||||
{{ "ListJumpType_Add" | translate }}
|
{{ "ListJumpType_Add" | translate }}
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
<table mat-table [dataSource]="dataSourceTable">
|
<table mat-table [dataSource]="dataSourceTable">
|
||||||
<ng-container matColumnDef="id">
|
<ng-container matColumnDef="id">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
@@ -16,21 +17,19 @@
|
|||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">{{ element.id }}</td>
|
<td mat-cell *matCellDef="let element">{{ element.id }}</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="name">
|
<ng-container matColumnDef="name">
|
||||||
<th mat-header-cell *matHeaderCellDef>
|
<th mat-header-cell *matHeaderCellDef>
|
||||||
{{ "ListJumpType_Header_Name" | translate }}
|
{{ "ListJumpType_Header_Name" | translate }}
|
||||||
</th>
|
</th>
|
||||||
<td mat-cell *matCellDef="let element">{{ element.name }}</td>
|
<td mat-cell *matCellDef="let element">{{ element.name }}</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
|
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
|
||||||
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
} @else {
|
||||||
|
<mat-progress-spinner [mode]="'indeterminate'"></mat-progress-spinner>
|
||||||
|
}
|
||||||
<mat-paginator [length]="resultsLength" [pageSize]="20"></mat-paginator>
|
<mat-paginator [length]="resultsLength" [pageSize]="20"></mat-paginator>
|
||||||
|
|
||||||
<ng-template #loading>
|
|
||||||
<mat-progress-spinner [mode]="'indeterminate'"></mat-progress-spinner>
|
|
||||||
</ng-template>
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { MatPaginator, MatPaginatorModule } from "@angular/material/paginator";
|
|||||||
import { MatTableDataSource, MatTableModule } from "@angular/material/table";
|
import { MatTableDataSource, MatTableModule } from "@angular/material/table";
|
||||||
import { MatDialog } from "@angular/material/dialog";
|
import { MatDialog } from "@angular/material/dialog";
|
||||||
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
||||||
import { CommonModule } from "@angular/common";
|
|
||||||
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
import { MatProgressSpinnerModule } from "@angular/material/progress-spinner";
|
||||||
import { MatButtonModule } from "@angular/material/button";
|
import { MatButtonModule } from "@angular/material/button";
|
||||||
|
|
||||||
@@ -20,12 +20,11 @@ import { NewJumpTypeComponent } from "../new-jump-type/new-jump-type.component";
|
|||||||
styleUrls: ["./list-of-jump-types.component.css"],
|
styleUrls: ["./list-of-jump-types.component.css"],
|
||||||
imports: [
|
imports: [
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
CommonModule,
|
|
||||||
MatPaginatorModule,
|
MatPaginatorModule,
|
||||||
MatProgressSpinnerModule,
|
MatProgressSpinnerModule,
|
||||||
MatTableModule,
|
MatTableModule,
|
||||||
MatButtonModule,
|
MatButtonModule
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class ListOfJumpTypesComponent implements OnInit {
|
export class ListOfJumpTypesComponent implements OnInit {
|
||||||
public displayedColumns: Array<string> = ["name"];
|
public displayedColumns: Array<string> = ["name"];
|
||||||
|
|||||||
@@ -11,10 +11,11 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@if (isLoading) {
|
||||||
<mat-progress-bar
|
<mat-progress-bar
|
||||||
[mode]="'indeterminate'"
|
[mode]="'indeterminate'"
|
||||||
*ngIf="isLoading"
|
|
||||||
></mat-progress-bar>
|
></mat-progress-bar>
|
||||||
|
}
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<table mat-table [dataSource]="dataSourceTable">
|
<table mat-table [dataSource]="dataSourceTable">
|
||||||
|
|||||||
@@ -11,10 +11,11 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@if (isLoading) {
|
||||||
<mat-progress-bar
|
<mat-progress-bar
|
||||||
[mode]="'indeterminate'"
|
[mode]="'indeterminate'"
|
||||||
*ngIf="isLoading"
|
|
||||||
></mat-progress-bar>
|
></mat-progress-bar>
|
||||||
|
}
|
||||||
|
|
||||||
<mat-radio-group
|
<mat-radio-group
|
||||||
[(ngModel)]="selectedPeriod"
|
[(ngModel)]="selectedPeriod"
|
||||||
@@ -32,9 +33,11 @@
|
|||||||
</mat-radio-group>
|
</mat-radio-group>
|
||||||
|
|
||||||
<mat-nav-list>
|
<mat-nav-list>
|
||||||
<mat-list-item matListItemLine *ngFor="let stat of stats">
|
@for (stat of stats; track stat) {
|
||||||
|
<mat-list-item matListItemLine>
|
||||||
<label>{{ stat.id }} : {{ stat.values }}</label>
|
<label>{{ stat.id }} : {{ stat.values }}</label>
|
||||||
</mat-list-item>
|
</mat-list-item>
|
||||||
|
}
|
||||||
</mat-nav-list>
|
</mat-nav-list>
|
||||||
|
|
||||||
<div class="chart-container">
|
<div class="chart-container">
|
||||||
@@ -54,10 +57,10 @@
|
|||||||
{{ "ListTunnelFlight_LoadTable" | translate }}
|
{{ "ListTunnelFlight_LoadTable" | translate }}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
|
@if (dataSourceTable?.data.length) {
|
||||||
<table
|
<table
|
||||||
mat-table
|
mat-table
|
||||||
[dataSource]="dataSourceTable"
|
[dataSource]="dataSourceTable"
|
||||||
*ngIf="dataSourceTable?.data.length"
|
|
||||||
>
|
>
|
||||||
<ng-container matColumnDef="id">
|
<ng-container matColumnDef="id">
|
||||||
<th mat-header-cell *matHeaderCellDef>ID</th>
|
<th mat-header-cell *matHeaderCellDef>ID</th>
|
||||||
@@ -65,7 +68,6 @@
|
|||||||
<span class="smallSpanWithBreakWord" [innerHTML]="element.id"></span>
|
<span class="smallSpanWithBreakWord" [innerHTML]="element.id"></span>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="tunnel">
|
<ng-container matColumnDef="tunnel">
|
||||||
<th mat-header-cell *matHeaderCellDef>Tunnel</th>
|
<th mat-header-cell *matHeaderCellDef>Tunnel</th>
|
||||||
<td mat-cell *matCellDef="let element">
|
<td mat-cell *matCellDef="let element">
|
||||||
@@ -75,7 +77,6 @@
|
|||||||
></span>
|
></span>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="jumpType">
|
<ng-container matColumnDef="jumpType">
|
||||||
<th mat-header-cell *matHeaderCellDef>Jump Type</th>
|
<th mat-header-cell *matHeaderCellDef>Jump Type</th>
|
||||||
<td mat-cell *matCellDef="let element">
|
<td mat-cell *matCellDef="let element">
|
||||||
@@ -85,7 +86,6 @@
|
|||||||
></span>
|
></span>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="nbMinutes">
|
<ng-container matColumnDef="nbMinutes">
|
||||||
<th mat-header-cell *matHeaderCellDef>Minutes</th>
|
<th mat-header-cell *matHeaderCellDef>Minutes</th>
|
||||||
<td mat-cell *matCellDef="let element">
|
<td mat-cell *matCellDef="let element">
|
||||||
@@ -95,7 +95,6 @@
|
|||||||
></span>
|
></span>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="notes">
|
<ng-container matColumnDef="notes">
|
||||||
<th mat-header-cell *matHeaderCellDef>Notes</th>
|
<th mat-header-cell *matHeaderCellDef>Notes</th>
|
||||||
<td mat-cell *matCellDef="let element">
|
<td mat-cell *matCellDef="let element">
|
||||||
@@ -105,7 +104,6 @@
|
|||||||
></span>
|
></span>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="flightDate">
|
<ng-container matColumnDef="flightDate">
|
||||||
<th mat-header-cell *matHeaderCellDef>Date</th>
|
<th mat-header-cell *matHeaderCellDef>Date</th>
|
||||||
<td mat-cell *matCellDef="let element">
|
<td mat-cell *matCellDef="let element">
|
||||||
@@ -115,7 +113,6 @@
|
|||||||
></span>
|
></span>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
<ng-container matColumnDef="actions">
|
||||||
<th mat-header-cell *matHeaderCellDef style="min-width: 80px"></th>
|
<th mat-header-cell *matHeaderCellDef style="min-width: 80px"></th>
|
||||||
<td mat-cell *matCellDef="let element" style="text-align: left">
|
<td mat-cell *matCellDef="let element" style="text-align: left">
|
||||||
@@ -128,9 +125,9 @@
|
|||||||
></mat-icon>
|
></mat-icon>
|
||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
|
<tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr>
|
||||||
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
|
||||||
</table>
|
</table>
|
||||||
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
style="padding: 10px"
|
style="padding: 10px"
|
||||||
[formGroup]="loginForm"
|
[formGroup]="loginForm"
|
||||||
(ngSubmit)="onLoginSubmit()"
|
(ngSubmit)="onLoginSubmit()"
|
||||||
>
|
>
|
||||||
<p>
|
<p>
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ "LoginUser_Username" | translate }}</mat-label>
|
<mat-label>{{ "LoginUser_Username" | translate }}</mat-label>
|
||||||
@@ -15,12 +15,16 @@
|
|||||||
formControlName="username"
|
formControlName="username"
|
||||||
[ngClass]="{ 'is-invalid': submitted && formCtrls['username'].errors }"
|
[ngClass]="{ 'is-invalid': submitted && formCtrls['username'].errors }"
|
||||||
/>
|
/>
|
||||||
<mat-error *ngIf="formCtrls['username'].hasError('required')">
|
@if (formCtrls['username'].hasError('required')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginUser_UsernameRequired" | translate }}
|
{{ "LoginUser_UsernameRequired" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
<mat-error *ngIf="formCtrls['username'].hasError('minlength')">
|
}
|
||||||
|
@if (formCtrls['username'].hasError('minlength')) {
|
||||||
|
<mat-error>
|
||||||
{{ 'LoginUser_UsernamePattern | translate }}
|
{{ 'LoginUser_UsernamePattern | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
@@ -32,19 +36,27 @@
|
|||||||
formControlName="password"
|
formControlName="password"
|
||||||
[ngClass]="{ 'is-invalid': submitted && formCtrls['password'].errors }"
|
[ngClass]="{ 'is-invalid': submitted && formCtrls['password'].errors }"
|
||||||
/>
|
/>
|
||||||
<mat-error *ngIf="formCtrls['password'].hasError('required')">
|
@if (formCtrls['password'].hasError('required')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginUser_PasswordRequired" | translate }}
|
{{ "LoginUser_PasswordRequired" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
<mat-error *ngIf="formCtrls['password'].hasError('pattern')">
|
}
|
||||||
|
@if (formCtrls['password'].hasError('pattern')) {
|
||||||
|
<mat-error>
|
||||||
{{ "LoginUser_PasswordPattern" | translate }}
|
{{ "LoginUser_PasswordPattern" | translate }}
|
||||||
</mat-error>
|
</mat-error>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<button [disabled]="loading" mat-raised-button color="accent">
|
<button [disabled]="loading" mat-raised-button color="accent">
|
||||||
<span *ngIf="loading" class="spinner-border spinner-border-sm mr-1"></span>
|
@if (loading) {
|
||||||
|
<span class="spinner-border spinner-border-sm mr-1"></span>
|
||||||
|
}
|
||||||
{{ "LoginUser_BtnLogin" | translate }}
|
{{ "LoginUser_BtnLogin" | translate }}
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
<div *ngIf="error" class="alert alert-danger mt-3 mb-0">{{ error }}</div>
|
@if (error) {
|
||||||
|
<div class="alert alert-danger mt-3 mb-0">{{ error }}</div>
|
||||||
|
}
|
||||||
</form>
|
</form>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ import {
|
|||||||
TranslatePipe,
|
TranslatePipe,
|
||||||
TranslateService,
|
TranslateService,
|
||||||
} from "@ngx-translate/core";
|
} from "@ngx-translate/core";
|
||||||
import { CommonModule } from "@angular/common";
|
|
||||||
import { MatSelectModule } from "@angular/material/select";
|
import { MatSelectModule } from "@angular/material/select";
|
||||||
import { MatOptionModule } from "@angular/material/core";
|
import { MatOptionModule } from "@angular/material/core";
|
||||||
import { MatCardModule } from "@angular/material/card";
|
import { MatCardModule } from "@angular/material/card";
|
||||||
@@ -19,15 +19,14 @@ import { CreateUserComponent } from "../create-user/create-user.component";
|
|||||||
styleUrls: ["./login.component.css"],
|
styleUrls: ["./login.component.css"],
|
||||||
imports: [
|
imports: [
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
CommonModule,
|
|
||||||
MatSelectModule,
|
MatSelectModule,
|
||||||
MatOptionModule,
|
MatOptionModule,
|
||||||
MatCardModule,
|
MatCardModule,
|
||||||
MatTabsModule,
|
MatTabsModule,
|
||||||
LoginUserComponent,
|
LoginUserComponent,
|
||||||
CreateUserComponent,
|
CreateUserComponent,
|
||||||
TranslateModule,
|
TranslateModule
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class LoginComponent implements OnInit {
|
export class LoginComponent implements OnInit {
|
||||||
public selectedLanguageFlag: string;
|
public selectedLanguageFlag: string;
|
||||||
|
|||||||
@@ -16,10 +16,10 @@
|
|||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@if (notLoadingToDisplay()) {
|
||||||
<form
|
<form
|
||||||
class="formNewJumps"
|
class="formNewJumps"
|
||||||
(ngSubmit)="onFormSubmit()"
|
(ngSubmit)="onFormSubmit()"
|
||||||
*ngIf="notLoadingToDisplay(); else loading"
|
|
||||||
>
|
>
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ "NewJump_ChooseJumpType" | translate }}</mat-label>
|
<mat-label>{{ "NewJump_ChooseJumpType" | translate }}</mat-label>
|
||||||
@@ -34,12 +34,14 @@
|
|||||||
#autoJumpType="matAutocomplete"
|
#autoJumpType="matAutocomplete"
|
||||||
[displayWith]="displayNameFn"
|
[displayWith]="displayNameFn"
|
||||||
>
|
>
|
||||||
<mat-option *ngFor="let jumpType of listOfJumpType" [value]="jumpType">
|
@for (jumpType of listOfJumpType; track jumpType) {
|
||||||
|
<mat-option [value]="jumpType">
|
||||||
{{ jumpType.name }}
|
{{ jumpType.name }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
|
}
|
||||||
</mat-autocomplete>
|
</mat-autocomplete>
|
||||||
|
@if (selectedJumpType) {
|
||||||
<button
|
<button
|
||||||
*ngIf="selectedJumpType"
|
|
||||||
matSuffix
|
matSuffix
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="Clear"
|
aria-label="Clear"
|
||||||
@@ -47,8 +49,8 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>close</mat-icon>
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ "NewJump_ChooseAircraft" | translate }}</mat-label>
|
<mat-label>{{ "NewJump_ChooseAircraft" | translate }}</mat-label>
|
||||||
<input
|
<input
|
||||||
@@ -62,12 +64,14 @@
|
|||||||
#autoAircraft="matAutocomplete"
|
#autoAircraft="matAutocomplete"
|
||||||
[displayWith]="displayNameFn"
|
[displayWith]="displayNameFn"
|
||||||
>
|
>
|
||||||
<mat-option *ngFor="let aircraft of listOfAircraft" [value]="aircraft">
|
@for (aircraft of listOfAircraft; track aircraft) {
|
||||||
|
<mat-option [value]="aircraft">
|
||||||
{{ aircraft.name }}
|
{{ aircraft.name }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
|
}
|
||||||
</mat-autocomplete>
|
</mat-autocomplete>
|
||||||
|
@if (selectedAircraft) {
|
||||||
<button
|
<button
|
||||||
*ngIf="selectedAircraft"
|
|
||||||
matSuffix
|
matSuffix
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="Clear"
|
aria-label="Clear"
|
||||||
@@ -75,8 +79,8 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>close</mat-icon>
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ "NewJump_ChooseDz" | translate }}</mat-label>
|
<mat-label>{{ "NewJump_ChooseDz" | translate }}</mat-label>
|
||||||
<input
|
<input
|
||||||
@@ -91,23 +95,25 @@
|
|||||||
#autoDropZone="matAutocomplete"
|
#autoDropZone="matAutocomplete"
|
||||||
[displayWith]="displayNameFn"
|
[displayWith]="displayNameFn"
|
||||||
>
|
>
|
||||||
|
@for (dropZone of listOfFilteredDropZone; track dropZone) {
|
||||||
<mat-option
|
<mat-option
|
||||||
*ngFor="let dropZone of listOfFilteredDropZone"
|
|
||||||
[value]="dropZone"
|
[value]="dropZone"
|
||||||
>
|
>
|
||||||
{{ dropZone.name }}
|
{{ dropZone.name }}
|
||||||
|
@if (dropZone.isFavorite === true) {
|
||||||
<mat-icon
|
<mat-icon
|
||||||
aria-hidden="false"
|
aria-hidden="false"
|
||||||
aria-label="Favorite"
|
aria-label="Favorite"
|
||||||
*ngIf="dropZone.isFavorite === true"
|
|
||||||
color="primary"
|
color="primary"
|
||||||
>
|
>
|
||||||
favorite</mat-icon
|
favorite</mat-icon
|
||||||
>
|
>
|
||||||
|
}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
|
}
|
||||||
</mat-autocomplete>
|
</mat-autocomplete>
|
||||||
|
@if (selectedDz) {
|
||||||
<button
|
<button
|
||||||
*ngIf="selectedDz"
|
|
||||||
matSuffix
|
matSuffix
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="Clear"
|
aria-label="Clear"
|
||||||
@@ -115,8 +121,8 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>close</mat-icon>
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ "NewJump_ChooseGear" | translate }}</mat-label>
|
<mat-label>{{ "NewJump_ChooseGear" | translate }}</mat-label>
|
||||||
<input
|
<input
|
||||||
@@ -130,12 +136,14 @@
|
|||||||
#autoGear="matAutocomplete"
|
#autoGear="matAutocomplete"
|
||||||
[displayWith]="displayGearFn"
|
[displayWith]="displayGearFn"
|
||||||
>
|
>
|
||||||
<mat-option *ngFor="let gear of listOfGear" [value]="gear">
|
@for (gear of listOfGear; track gear) {
|
||||||
|
<mat-option [value]="gear">
|
||||||
{{ gear.name }} ({{ gear.mainCanopy }})
|
{{ gear.name }} ({{ gear.mainCanopy }})
|
||||||
</mat-option>
|
</mat-option>
|
||||||
|
}
|
||||||
</mat-autocomplete>
|
</mat-autocomplete>
|
||||||
|
@if (selectedGear) {
|
||||||
<button
|
<button
|
||||||
*ngIf="selectedGear"
|
|
||||||
matSuffix
|
matSuffix
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="Clear"
|
aria-label="Clear"
|
||||||
@@ -143,15 +151,14 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>close</mat-icon>
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-checkbox [(ngModel)]="withCutaway" name="withCutaway">{{
|
<mat-checkbox [(ngModel)]="withCutaway" name="withCutaway">{{
|
||||||
"NewJump_Cutaway" | translate
|
"NewJump_Cutaway" | translate
|
||||||
}}</mat-checkbox>
|
}}</mat-checkbox>
|
||||||
<mat-checkbox [(ngModel)]="isSpecial" name="isSpecial">{{
|
<mat-checkbox [(ngModel)]="isSpecial" name="isSpecial">{{
|
||||||
"NewJump_Special" | translate
|
"NewJump_Special" | translate
|
||||||
}}</mat-checkbox>
|
}}</mat-checkbox>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<input
|
<input
|
||||||
matInput
|
matInput
|
||||||
@@ -167,7 +174,6 @@
|
|||||||
></mat-datepicker-toggle>
|
></mat-datepicker-toggle>
|
||||||
<mat-datepicker #beginDateDp disabled="false"></mat-datepicker>
|
<mat-datepicker #beginDateDp disabled="false"></mat-datepicker>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<input
|
<input
|
||||||
matInput
|
matInput
|
||||||
@@ -182,7 +188,6 @@
|
|||||||
></mat-datepicker-toggle>
|
></mat-datepicker-toggle>
|
||||||
<mat-datepicker #endDateDp disabled="false"></mat-datepicker>
|
<mat-datepicker #endDateDp disabled="false"></mat-datepicker>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<input
|
<input
|
||||||
matInput
|
matInput
|
||||||
@@ -191,8 +196,8 @@
|
|||||||
name="exitAltitude"
|
name="exitAltitude"
|
||||||
type="number"
|
type="number"
|
||||||
/>
|
/>
|
||||||
|
@if (exitAltitude) {
|
||||||
<button
|
<button
|
||||||
*ngIf="exitAltitude"
|
|
||||||
matSuffix
|
matSuffix
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="Clear"
|
aria-label="Clear"
|
||||||
@@ -200,6 +205,7 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>close</mat-icon>
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<input
|
<input
|
||||||
@@ -209,8 +215,8 @@
|
|||||||
name="deployAltitude"
|
name="deployAltitude"
|
||||||
type="number"
|
type="number"
|
||||||
/>
|
/>
|
||||||
|
@if (deployAltitude) {
|
||||||
<button
|
<button
|
||||||
*ngIf="deployAltitude"
|
|
||||||
matSuffix
|
matSuffix
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="Clear"
|
aria-label="Clear"
|
||||||
@@ -218,8 +224,8 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>close</mat-icon>
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<input
|
<input
|
||||||
matInput
|
matInput
|
||||||
@@ -228,8 +234,8 @@
|
|||||||
name="countOfJumps"
|
name="countOfJumps"
|
||||||
type="number"
|
type="number"
|
||||||
/>
|
/>
|
||||||
|
@if (countOfJumps) {
|
||||||
<button
|
<button
|
||||||
*ngIf="countOfJumps"
|
|
||||||
matSuffix
|
matSuffix
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="Clear"
|
aria-label="Clear"
|
||||||
@@ -237,8 +243,8 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>close</mat-icon>
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<textarea
|
<textarea
|
||||||
matInput
|
matInput
|
||||||
@@ -247,8 +253,8 @@
|
|||||||
name="comments"
|
name="comments"
|
||||||
type="text"
|
type="text"
|
||||||
></textarea>
|
></textarea>
|
||||||
|
@if (comments) {
|
||||||
<button
|
<button
|
||||||
*ngIf="comments"
|
|
||||||
matSuffix
|
matSuffix
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="Clear"
|
aria-label="Clear"
|
||||||
@@ -256,15 +262,17 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>close</mat-icon>
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<button mat-raised-button color="accent" *ngIf="isValidatedForm()">
|
@if (isValidatedForm()) {
|
||||||
|
<button mat-raised-button color="accent">
|
||||||
{{ "NewJump_Submit" | translate }}
|
{{ "NewJump_Submit" | translate }}
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</form>
|
</form>
|
||||||
|
} @else {
|
||||||
<ng-template #loading>
|
|
||||||
<mat-progress-spinner [mode]="'indeterminate'"></mat-progress-spinner>
|
<mat-progress-spinner [mode]="'indeterminate'"></mat-progress-spinner>
|
||||||
</ng-template>
|
}
|
||||||
</div>
|
|
||||||
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import {
|
|||||||
NativeDateAdapter,
|
NativeDateAdapter,
|
||||||
} from "@angular/material/core";
|
} from "@angular/material/core";
|
||||||
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
||||||
import { CommonModule } from "@angular/common";
|
|
||||||
import { MatIconModule } from "@angular/material/icon";
|
import { MatIconModule } from "@angular/material/icon";
|
||||||
import { MatOptionModule } from "@angular/material/core";
|
import { MatOptionModule } from "@angular/material/core";
|
||||||
import { MatFormFieldModule } from "@angular/material/form-field";
|
import { MatFormFieldModule } from "@angular/material/form-field";
|
||||||
@@ -58,7 +58,6 @@ class PickDateAdapter extends NativeDateAdapter {
|
|||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
CommonModule,
|
|
||||||
RouterLink,
|
RouterLink,
|
||||||
FormsModule,
|
FormsModule,
|
||||||
RouterModule,
|
RouterModule,
|
||||||
@@ -72,8 +71,8 @@ class PickDateAdapter extends NativeDateAdapter {
|
|||||||
MatFormFieldModule,
|
MatFormFieldModule,
|
||||||
ReactiveFormsModule,
|
ReactiveFormsModule,
|
||||||
MatInputModule,
|
MatInputModule,
|
||||||
MatButtonModule,
|
MatButtonModule
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class NewJumpComponent implements OnInit {
|
export class NewJumpComponent implements OnInit {
|
||||||
public beginDate: Date;
|
public beginDate: Date;
|
||||||
|
|||||||
@@ -11,10 +11,10 @@
|
|||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@if (notLoadingToDisplay()) {
|
||||||
<form
|
<form
|
||||||
class="formNewJumps"
|
class="formNewJumps"
|
||||||
(ngSubmit)="onFormSubmit()"
|
(ngSubmit)="onFormSubmit()"
|
||||||
*ngIf="notLoadingToDisplay(); else loading"
|
|
||||||
>
|
>
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ "NewTunnelFlight_ChooseJumpType" | translate }}</mat-label>
|
<mat-label>{{ "NewTunnelFlight_ChooseJumpType" | translate }}</mat-label>
|
||||||
@@ -29,12 +29,14 @@
|
|||||||
#autoJumpType="matAutocomplete"
|
#autoJumpType="matAutocomplete"
|
||||||
[displayWith]="displayNameFn"
|
[displayWith]="displayNameFn"
|
||||||
>
|
>
|
||||||
<mat-option *ngFor="let jumpType of listOfJumpType" [value]="jumpType">
|
@for (jumpType of listOfJumpType; track jumpType) {
|
||||||
|
<mat-option [value]="jumpType">
|
||||||
{{ jumpType.name }}
|
{{ jumpType.name }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
|
}
|
||||||
</mat-autocomplete>
|
</mat-autocomplete>
|
||||||
|
@if (selectedJumpType) {
|
||||||
<button
|
<button
|
||||||
*ngIf="selectedJumpType"
|
|
||||||
matSuffix
|
matSuffix
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="Clear"
|
aria-label="Clear"
|
||||||
@@ -42,8 +44,8 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>close</mat-icon>
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ "NewTunnelFlight_ChooseTunnel" | translate }}</mat-label>
|
<mat-label>{{ "NewTunnelFlight_ChooseTunnel" | translate }}</mat-label>
|
||||||
<input
|
<input
|
||||||
@@ -58,15 +60,16 @@
|
|||||||
#autoDropZone="matAutocomplete"
|
#autoDropZone="matAutocomplete"
|
||||||
[displayWith]="displayNameFn"
|
[displayWith]="displayNameFn"
|
||||||
>
|
>
|
||||||
|
@for (tunnel of listOfFilteredTunnel; track tunnel) {
|
||||||
<mat-option
|
<mat-option
|
||||||
*ngFor="let tunnel of listOfFilteredTunnel"
|
|
||||||
[value]="tunnel"
|
[value]="tunnel"
|
||||||
>
|
>
|
||||||
{{ tunnel.name }}
|
{{ tunnel.name }}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
|
}
|
||||||
</mat-autocomplete>
|
</mat-autocomplete>
|
||||||
|
@if (selectedTunnel) {
|
||||||
<button
|
<button
|
||||||
*ngIf="selectedTunnel"
|
|
||||||
matSuffix
|
matSuffix
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="Clear"
|
aria-label="Clear"
|
||||||
@@ -74,8 +77,8 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>close</mat-icon>
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ "NewTunnelFlight_Date_Lbl" | translate }}</mat-label>
|
<mat-label>{{ "NewTunnelFlight_Date_Lbl" | translate }}</mat-label>
|
||||||
<input
|
<input
|
||||||
@@ -92,7 +95,6 @@
|
|||||||
></mat-datepicker-toggle>
|
></mat-datepicker-toggle>
|
||||||
<mat-datepicker #flightDateDp disabled="false"></mat-datepicker>
|
<mat-datepicker #flightDateDp disabled="false"></mat-datepicker>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ "NewTunnelFlight_Minutes_Lbl" | translate }}</mat-label>
|
<mat-label>{{ "NewTunnelFlight_Minutes_Lbl" | translate }}</mat-label>
|
||||||
<input
|
<input
|
||||||
@@ -102,8 +104,8 @@
|
|||||||
name="minutesOfFlight"
|
name="minutesOfFlight"
|
||||||
type="number"
|
type="number"
|
||||||
/>
|
/>
|
||||||
|
@if (minutesOfFlight) {
|
||||||
<button
|
<button
|
||||||
*ngIf="minutesOfFlight"
|
|
||||||
matSuffix
|
matSuffix
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="Clear"
|
aria-label="Clear"
|
||||||
@@ -111,8 +113,8 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>close</mat-icon>
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ "NewTunnelFlight_Comments_Lbl" | translate }}</mat-label>
|
<mat-label>{{ "NewTunnelFlight_Comments_Lbl" | translate }}</mat-label>
|
||||||
<textarea
|
<textarea
|
||||||
@@ -122,8 +124,8 @@
|
|||||||
name="comments"
|
name="comments"
|
||||||
type="text"
|
type="text"
|
||||||
></textarea>
|
></textarea>
|
||||||
|
@if (comments) {
|
||||||
<button
|
<button
|
||||||
*ngIf="comments"
|
|
||||||
matSuffix
|
matSuffix
|
||||||
mat-icon-button
|
mat-icon-button
|
||||||
aria-label="Clear"
|
aria-label="Clear"
|
||||||
@@ -131,15 +133,17 @@
|
|||||||
>
|
>
|
||||||
<mat-icon>close</mat-icon>
|
<mat-icon>close</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
<br />
|
<br />
|
||||||
<button mat-raised-button color="accent" *ngIf="isValidatedForm()">
|
@if (isValidatedForm()) {
|
||||||
|
<button mat-raised-button color="accent">
|
||||||
{{ "NewTunnelFlight_Submit" | translate }}
|
{{ "NewTunnelFlight_Submit" | translate }}
|
||||||
</button>
|
</button>
|
||||||
|
}
|
||||||
</form>
|
</form>
|
||||||
|
} @else {
|
||||||
<ng-template #loading>
|
|
||||||
<mat-progress-spinner [mode]="'indeterminate'"></mat-progress-spinner>
|
<mat-progress-spinner [mode]="'indeterminate'"></mat-progress-spinner>
|
||||||
</ng-template>
|
}
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ import {
|
|||||||
NativeDateAdapter,
|
NativeDateAdapter,
|
||||||
} from "@angular/material/core";
|
} from "@angular/material/core";
|
||||||
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
import { TranslateModule, TranslateService } from "@ngx-translate/core";
|
||||||
import { CommonModule } from "@angular/common";
|
|
||||||
import { MatIconModule } from "@angular/material/icon";
|
import { MatIconModule } from "@angular/material/icon";
|
||||||
import { MatOptionModule } from "@angular/material/core";
|
import { MatOptionModule } from "@angular/material/core";
|
||||||
import { MatAutocompleteModule } from "@angular/material/autocomplete";
|
import { MatAutocompleteModule } from "@angular/material/autocomplete";
|
||||||
@@ -52,7 +52,6 @@ class PickDateAdapter extends NativeDateAdapter {
|
|||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
TranslateModule,
|
TranslateModule,
|
||||||
CommonModule,
|
|
||||||
RouterModule,
|
RouterModule,
|
||||||
RouterLink,
|
RouterLink,
|
||||||
FormsModule,
|
FormsModule,
|
||||||
@@ -65,8 +64,8 @@ class PickDateAdapter extends NativeDateAdapter {
|
|||||||
MatFormFieldModule,
|
MatFormFieldModule,
|
||||||
MatOptionModule,
|
MatOptionModule,
|
||||||
MatDatepickerModule,
|
MatDatepickerModule,
|
||||||
MatProgressSpinnerModule,
|
MatProgressSpinnerModule
|
||||||
],
|
],
|
||||||
})
|
})
|
||||||
export class NewTunnelFlightComponent implements OnInit {
|
export class NewTunnelFlightComponent implements OnInit {
|
||||||
public flightDate: Date;
|
public flightDate: Date;
|
||||||
|
|||||||
Reference in New Issue
Block a user