Merge branch 'master' of https://home.git.sebastienandre.com/sandre/SkydiveLogs
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
#See https://aka.ms/containerfastmode to understand how Visual Studio uses this Dockerfile to build your images for faster debugging.
|
||||||
|
|
||||||
FROM mcr.microsoft.com/dotnet/aspnet:7.0.10-bookworm-slim-amd64 AS base
|
FROM mcr.microsoft.com/dotnet/aspnet:7.0.14-bookworm-slim-amd64 AS base
|
||||||
EXPOSE 80
|
EXPOSE 80
|
||||||
|
|
||||||
RUN apt-get -y update
|
RUN apt-get -y update
|
||||||
|
|||||||
1517
Front/skydivelogs-app/package-lock.json
generated
1517
Front/skydivelogs-app/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,14 @@
|
|||||||
import { BrowserModule } from "@angular/platform-browser";
|
import { BrowserModule } from "@angular/platform-browser";
|
||||||
import { APP_INITIALIZER, NgModule } from "@angular/core";
|
import { APP_INITIALIZER, NgModule } from "@angular/core";
|
||||||
import { RouterModule, Routes } from "@angular/router";
|
import { RouterModule, Routes } from "@angular/router";
|
||||||
import { HttpClient, HttpClientModule, HTTP_INTERCEPTORS } from "@angular/common/http";
|
import {
|
||||||
import { DatePipe } from '@angular/common';
|
HttpClient,
|
||||||
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
HttpClientModule,
|
||||||
import { TranslateHttpLoader } from '@ngx-translate/http-loader';
|
HTTP_INTERCEPTORS,
|
||||||
|
} from "@angular/common/http";
|
||||||
|
import { DatePipe } from "@angular/common";
|
||||||
|
import { TranslateLoader, TranslateModule } from "@ngx-translate/core";
|
||||||
|
import { TranslateHttpLoader } from "@ngx-translate/http-loader";
|
||||||
|
|
||||||
import { AppComponent } from "./app.component";
|
import { AppComponent } from "./app.component";
|
||||||
import { environment } from "../environments/environment";
|
import { environment } from "../environments/environment";
|
||||||
@@ -26,9 +30,9 @@ import { CreateUserComponent } from "./create-user/create-user.component";
|
|||||||
import { LoginUserComponent } from "./login-user/login-user.component";
|
import { LoginUserComponent } from "./login-user/login-user.component";
|
||||||
import { UserProfileComponent } from "./user-profile/user-profile.component";
|
import { UserProfileComponent } from "./user-profile/user-profile.component";
|
||||||
import { ListOfImagesComponent } from "./list-of-images/list-of-images.component";
|
import { ListOfImagesComponent } from "./list-of-images/list-of-images.component";
|
||||||
import { JumpInfosComponent } from './jump-infos/jump-infos.component';
|
import { JumpInfosComponent } from "./jump-infos/jump-infos.component";
|
||||||
import { NewTunnelFlightComponent } from './new-tunnel-flight/new-tunnel-flight.component';
|
import { NewTunnelFlightComponent } from "./new-tunnel-flight/new-tunnel-flight.component";
|
||||||
import { ListOfTunnelFlightsComponent } from './list-of-tunnel-flights/list-of-tunnel-flights.component';
|
import { ListOfTunnelFlightsComponent } from "./list-of-tunnel-flights/list-of-tunnel-flights.component";
|
||||||
|
|
||||||
import { DateService } from "../services/date.service";
|
import { DateService } from "../services/date.service";
|
||||||
import { AircraftService } from "../services/aircraft.service";
|
import { AircraftService } from "../services/aircraft.service";
|
||||||
@@ -65,65 +69,69 @@ import { MatTabsModule } from "@angular/material/tabs";
|
|||||||
import { MatDialogModule } from "@angular/material/dialog";
|
import { MatDialogModule } from "@angular/material/dialog";
|
||||||
import { MatCardModule } from "@angular/material/card";
|
import { MatCardModule } from "@angular/material/card";
|
||||||
import { MatRadioModule } from "@angular/material/radio";
|
import { MatRadioModule } from "@angular/material/radio";
|
||||||
import { MatSidenavModule } from '@angular/material/sidenav';
|
import { MatSidenavModule } from "@angular/material/sidenav";
|
||||||
import { MatListModule } from '@angular/material/list';
|
import { MatListModule } from "@angular/material/list";
|
||||||
import { MatToolbarModule } from '@angular/material/toolbar';
|
import { MatToolbarModule } from "@angular/material/toolbar";
|
||||||
import { NgChartsModule } from 'ng2-charts';
|
import { NgChartsModule } from "ng2-charts";
|
||||||
|
|
||||||
import { JwtAuthInterceptor } from "../interceptor/jwt-auth.interceptor";
|
import { JwtAuthInterceptor } from "../interceptor/jwt-auth.interceptor";
|
||||||
import { ErrorInterceptor } from "../interceptor/error.interceptor";
|
import { ErrorInterceptor } from "../interceptor/error.interceptor";
|
||||||
|
|
||||||
const appRoutes: Routes = [
|
const appRoutes: Routes = [
|
||||||
{ path: "", component: DefaultComponent, canActivate: [AuthGuardService] },
|
{
|
||||||
|
path: "",
|
||||||
|
component: DefaultComponent,
|
||||||
|
canActivate: [AuthGuardService],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
path: "summary",
|
path: "summary",
|
||||||
component: SummaryComponent,
|
component: SummaryComponent,
|
||||||
canActivate: [AuthGuardService]
|
canActivate: [AuthGuardService],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "jumps",
|
path: "jumps",
|
||||||
component: ListOfJumpsComponent,
|
component: ListOfJumpsComponent,
|
||||||
canActivate: [AuthGuardService]
|
canActivate: [AuthGuardService],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "dzs",
|
path: "dzs",
|
||||||
component: ListOfDzsComponent,
|
component: ListOfDzsComponent,
|
||||||
canActivate: [AuthGuardService]
|
canActivate: [AuthGuardService],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "newjump",
|
path: "newjump",
|
||||||
component: NewJumpComponent,
|
component: NewJumpComponent,
|
||||||
canActivate: [AuthGuardService]
|
canActivate: [AuthGuardService],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "aircrafts",
|
path: "aircrafts",
|
||||||
component: ListOfAircraftsComponent,
|
component: ListOfAircraftsComponent,
|
||||||
canActivate: [AuthGuardService]
|
canActivate: [AuthGuardService],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "jumpTypes",
|
path: "jumpTypes",
|
||||||
component: ListOfJumpTypesComponent,
|
component: ListOfJumpTypesComponent,
|
||||||
canActivate: [AuthGuardService]
|
canActivate: [AuthGuardService],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "gears",
|
path: "gears",
|
||||||
component: ListOfGearsComponent,
|
component: ListOfGearsComponent,
|
||||||
canActivate: [AuthGuardService]
|
canActivate: [AuthGuardService],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "user",
|
path: "user",
|
||||||
component: UserProfileComponent,
|
component: UserProfileComponent,
|
||||||
canActivate: [AuthGuardService]
|
canActivate: [AuthGuardService],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "newTunnelFlight",
|
path: "newTunnelFlight",
|
||||||
component: NewTunnelFlightComponent,
|
component: NewTunnelFlightComponent,
|
||||||
canActivate: [AuthGuardService]
|
canActivate: [AuthGuardService],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: "tunnelFlights",
|
path: "tunnelFlights",
|
||||||
component: ListOfTunnelFlightsComponent,
|
component: ListOfTunnelFlightsComponent,
|
||||||
canActivate: [AuthGuardService]
|
canActivate: [AuthGuardService],
|
||||||
},
|
},
|
||||||
|
|
||||||
{ path: "login", component: LoginComponent },
|
{ path: "login", component: LoginComponent },
|
||||||
@@ -161,7 +169,7 @@ export function initConfig(configService: ConfigurationHelper) {
|
|||||||
ListOfImagesComponent,
|
ListOfImagesComponent,
|
||||||
JumpInfosComponent,
|
JumpInfosComponent,
|
||||||
NewTunnelFlightComponent,
|
NewTunnelFlightComponent,
|
||||||
ListOfTunnelFlightsComponent
|
ListOfTunnelFlightsComponent,
|
||||||
],
|
],
|
||||||
imports: [
|
imports: [
|
||||||
RouterModule.forRoot(
|
RouterModule.forRoot(
|
||||||
@@ -173,8 +181,8 @@ export function initConfig(configService: ConfigurationHelper) {
|
|||||||
loader: {
|
loader: {
|
||||||
provide: TranslateLoader,
|
provide: TranslateLoader,
|
||||||
useFactory: httpTranslateLoader,
|
useFactory: httpTranslateLoader,
|
||||||
deps: [HttpClient]
|
deps: [HttpClient],
|
||||||
}
|
},
|
||||||
}),
|
}),
|
||||||
ReactiveFormsModule,
|
ReactiveFormsModule,
|
||||||
FormsModule,
|
FormsModule,
|
||||||
@@ -201,7 +209,7 @@ export function initConfig(configService: ConfigurationHelper) {
|
|||||||
MatSidenavModule,
|
MatSidenavModule,
|
||||||
MatListModule,
|
MatListModule,
|
||||||
MatToolbarModule,
|
MatToolbarModule,
|
||||||
NgChartsModule
|
NgChartsModule,
|
||||||
],
|
],
|
||||||
exports: [HttpClientModule],
|
exports: [HttpClientModule],
|
||||||
providers: [
|
providers: [
|
||||||
@@ -220,11 +228,15 @@ export function initConfig(configService: ConfigurationHelper) {
|
|||||||
ConfigurationHelper,
|
ConfigurationHelper,
|
||||||
DatePipe,
|
DatePipe,
|
||||||
ServiceCacheApi,
|
ServiceCacheApi,
|
||||||
{ provide: APP_INITIALIZER, useFactory: initConfig, deps: [ConfigurationHelper], multi: true },
|
{
|
||||||
|
provide: APP_INITIALIZER,
|
||||||
|
useFactory: initConfig,
|
||||||
|
deps: [ConfigurationHelper],
|
||||||
|
multi: true,
|
||||||
|
},
|
||||||
{ provide: HTTP_INTERCEPTORS, useClass: JwtAuthInterceptor, multi: true },
|
{ provide: HTTP_INTERCEPTORS, useClass: JwtAuthInterceptor, multi: true },
|
||||||
{ provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true }
|
{ provide: HTTP_INTERCEPTORS, useClass: ErrorInterceptor, multi: true },
|
||||||
],
|
],
|
||||||
bootstrap: [AppComponent],
|
bootstrap: [AppComponent],
|
||||||
})
|
})
|
||||||
export class AppModule {
|
export class AppModule {}
|
||||||
}
|
|
||||||
|
|||||||
@@ -1 +1,23 @@
|
|||||||
<div class="content"></div>
|
<div class="content">
|
||||||
|
<p>
|
||||||
|
<a class="nostyle" routerLink="/summary" routerLinkActive="active" skipLocationChange>
|
||||||
|
<mat-icon aria-hidden="false" aria-label="Summary" style="width: 128px; height:128px; font-size: 128px;">timeline</mat-icon>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a class="nostyle" routerLink="/newjump" routerLinkActive="active" skipLocationChange>
|
||||||
|
<mat-icon aria-hidden="false" aria-label="Add jumps" style="width: 128px; height:128px; font-size: 128px;">add_circle</mat-icon>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a class="nostyle" routerLink="/jumps" routerLinkActive="active" skipLocationChange>
|
||||||
|
<mat-icon aria-hidden="false" aria-label="List of jumps" style="width: 128px; height:128px; font-size: 128px;">list_alt</mat-icon>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<a class="nostyle" routerLink="/tunnelFlights" routerLinkActive="active" skipLocationChange>
|
||||||
|
<img src="assets/img/tunnel.jpg" alt="Tunnel flights" style="width: 128px; height:128px; font-size: 128px;" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
<ng-container matColumnDef="actions">
|
<ng-container matColumnDef="actions">
|
||||||
<th mat-header-cell *matHeaderCellDef style="min-width: 70px;"></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;">
|
||||||
<mat-icon aria-hidden="false" aria-label="Delete this jump" style="cursor: pointer;"
|
<mat-icon aria-hidden="false" aria-label="Delete this jump" style="cursor: pointer;"
|
||||||
(click)='delete(element)'>delete</mat-icon>
|
(click)='delete(element)'>delete</mat-icon>
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<mat-radio-button value="all">{{ 'ListTunnelFlight_AllFlights' | translate }}</mat-radio-button>
|
<mat-radio-button value="all">{{ 'ListTunnelFlight_AllFlights' | translate }}</mat-radio-button>
|
||||||
</mat-radio-group>
|
</mat-radio-group>
|
||||||
|
|
||||||
<div style="display: block; width: 55%;">
|
<div style="display: inline-block; position: relative; width: 100%;">
|
||||||
<canvas baseChart
|
<canvas baseChart
|
||||||
[data]="barChartData"
|
[data]="barChartData"
|
||||||
[options]="barChartOptions"
|
[options]="barChartOptions"
|
||||||
@@ -68,6 +68,14 @@
|
|||||||
</td>
|
</td>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
|
|
||||||
|
<ng-container matColumnDef="actions">
|
||||||
|
<th mat-header-cell *matHeaderCellDef style="min-width: 80px;"></th>
|
||||||
|
<td mat-cell *matCellDef="let element" style="text-align: left;">
|
||||||
|
<mat-icon aria-hidden="false" aria-label="Delete this jump" style="cursor: pointer;"
|
||||||
|
(click)='delete(element)'>delete</mat-icon>
|
||||||
|
</td>
|
||||||
|
</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>
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ export class ListOfTunnelFlightsComponent implements OnInit {
|
|||||||
"jumpType",
|
"jumpType",
|
||||||
"nbMinutes",
|
"nbMinutes",
|
||||||
"notes",
|
"notes",
|
||||||
"flightDate"
|
"flightDate",
|
||||||
|
"actions"
|
||||||
];
|
];
|
||||||
|
|
||||||
constructor(private serviceComm: ServiceComm,
|
constructor(private serviceComm: ServiceComm,
|
||||||
@@ -66,6 +67,7 @@ export class ListOfTunnelFlightsComponent implements OnInit {
|
|||||||
|
|
||||||
this.barChartOptions = {
|
this.barChartOptions = {
|
||||||
responsive: true,
|
responsive: true,
|
||||||
|
maintainAspectRatio: true,
|
||||||
plugins: {
|
plugins: {
|
||||||
legend: {
|
legend: {
|
||||||
display: true
|
display: true
|
||||||
@@ -202,4 +204,12 @@ export class ListOfTunnelFlightsComponent implements OnInit {
|
|||||||
|
|
||||||
return beginDate;
|
return beginDate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public delete(item: TunnelFlight) {
|
||||||
|
let data: Array<TunnelFlight> = this.dataSourceTable.data;
|
||||||
|
data = data.filter((d) => d.id !== item.id);
|
||||||
|
|
||||||
|
this.dataSourceTable.data = data;
|
||||||
|
this.serviceTunnelFlight.deleteTunnelFlight(item);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ export class NewJumpComponent implements OnInit {
|
|||||||
private countDatasLoaded: number;
|
private countDatasLoaded: number;
|
||||||
private pendingAddRequest: boolean;
|
private pendingAddRequest: boolean;
|
||||||
private listOfDropZone: Array<DropZoneResp>;
|
private listOfDropZone: Array<DropZoneResp>;
|
||||||
|
public maxDate: Date;
|
||||||
|
|
||||||
constructor(private serviceComm: ServiceComm,
|
constructor(private serviceComm: ServiceComm,
|
||||||
private serviceJump: JumpService,
|
private serviceJump: JumpService,
|
||||||
@@ -82,6 +83,8 @@ export class NewJumpComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
this.updateTitle();
|
this.updateTitle();
|
||||||
|
|
||||||
|
this.maxDate = this.dateService.addDays(new Date(), 1);
|
||||||
|
|
||||||
this.pendingAddRequest = false;
|
this.pendingAddRequest = false;
|
||||||
this.initForm();
|
this.initForm();
|
||||||
this.getListOfJumpTypes();
|
this.getListOfJumpTypes();
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
|
|
||||||
<mat-form-field>
|
<mat-form-field>
|
||||||
<mat-label>{{ 'NewTunnelFlight_Date_Lbl' | translate }}</mat-label>
|
<mat-label>{{ 'NewTunnelFlight_Date_Lbl' | translate }}</mat-label>
|
||||||
<input matInput [matDatepicker]="flightDateDp" [(ngModel)]="flightDate" name="flightDate" disabled>
|
<input matInput [max]="maxDate" [matDatepicker]="flightDateDp" [(ngModel)]="flightDate" name="flightDate" disabled>
|
||||||
<mat-datepicker-toggle matSuffix [for]="flightDateDp"></mat-datepicker-toggle>
|
<mat-datepicker-toggle matSuffix [for]="flightDateDp"></mat-datepicker-toggle>
|
||||||
<mat-datepicker #flightDateDp disabled="false"></mat-datepicker>
|
<mat-datepicker #flightDateDp disabled="false"></mat-datepicker>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|||||||
@@ -8,9 +8,9 @@ import { TunnelResp } from "../../models/tunnel";
|
|||||||
import { JumpTypeResp } from "../../models/jumpType";
|
import { JumpTypeResp } from "../../models/jumpType";
|
||||||
import { TunnelService } from '../../services/tunnel.service';
|
import { TunnelService } from '../../services/tunnel.service';
|
||||||
import { ServiceComm } from '../../services/service-comm.service';
|
import { ServiceComm } from '../../services/service-comm.service';
|
||||||
import { StatsService } from '../../services/stats.service';
|
|
||||||
import { TunnelFlightService } from "../../services/tunnel-flight.service";
|
import { TunnelFlightService } from "../../services/tunnel-flight.service";
|
||||||
import { JumpTypeService } from "../../services/jump-type.service";
|
import { JumpTypeService } from "../../services/jump-type.service";
|
||||||
|
import { DateService } from "../../services/date.service";
|
||||||
|
|
||||||
export const PICK_FORMATS = {
|
export const PICK_FORMATS = {
|
||||||
parse: { dateInput: 'yy MM dd' },
|
parse: { dateInput: 'yy MM dd' },
|
||||||
@@ -48,12 +48,14 @@ export class NewTunnelFlightComponent implements OnInit {
|
|||||||
private countDatasLoaded: number;
|
private countDatasLoaded: number;
|
||||||
private pendingAddRequest: boolean;
|
private pendingAddRequest: boolean;
|
||||||
public listOfJumpType: Array<JumpTypeResp>;
|
public listOfJumpType: Array<JumpTypeResp>;
|
||||||
|
public maxDate: Date;
|
||||||
|
|
||||||
constructor(private serviceComm: ServiceComm,
|
constructor(private serviceComm: ServiceComm,
|
||||||
private serviceTunnel: TunnelService,
|
private serviceTunnel: TunnelService,
|
||||||
private serviceTunnelFlight: TunnelFlightService,
|
private serviceTunnelFlight: TunnelFlightService,
|
||||||
private serviceJumpType: JumpTypeService,
|
private serviceJumpType: JumpTypeService,
|
||||||
private translateService: TranslateService) { }
|
private translateService: TranslateService,
|
||||||
|
private dateService: DateService) { }
|
||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.serviceComm.forceTranslateTitle.subscribe((data) => {
|
this.serviceComm.forceTranslateTitle.subscribe((data) => {
|
||||||
@@ -63,6 +65,7 @@ export class NewTunnelFlightComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
this.updateTitle();
|
this.updateTitle();
|
||||||
|
|
||||||
|
this.maxDate = this.dateService.addDays(new Date(), 1);
|
||||||
this.countDatasLoaded = 0;
|
this.countDatasLoaded = 0;
|
||||||
this.pendingAddRequest = false;
|
this.pendingAddRequest = false;
|
||||||
this.initForm();
|
this.initForm();
|
||||||
|
|||||||
@@ -16,17 +16,12 @@ mat-form-field{
|
|||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
/* background-color: red; */
|
|
||||||
/* box-shadow: 0 2px 0 darkred; */
|
|
||||||
color: white;
|
color: white;
|
||||||
/* padding: 0.5em 0.5em; */
|
|
||||||
/* position: relative; */
|
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:hover {
|
a:hover {
|
||||||
/* background-color: #ce0606; */
|
|
||||||
box-shadow: 0 2px 0 darkred;
|
box-shadow: 0 2px 0 darkred;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,3 +29,10 @@ a:active {
|
|||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
top: 5px;
|
top: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a.nostyle {
|
||||||
|
text-decoration: none !important;
|
||||||
|
}
|
||||||
|
a.nostyle:hover {
|
||||||
|
box-shadow: none !important;
|
||||||
|
}
|
||||||
@@ -101,9 +101,7 @@ export class JumpService extends BaseService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public deleteJump(item: Jump) {
|
public deleteJump(item: Jump) {
|
||||||
this.http.delete(`${this.apiUrl}/Jump/${item.id}`,
|
this.http.delete(`${this.apiUrl}/Jump/${item.id}`, { headers: this.headers }).subscribe();
|
||||||
{ headers: this.headers, })
|
|
||||||
.subscribe();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public updateJump(id: number,
|
public updateJump(id: number,
|
||||||
|
|||||||
@@ -50,6 +50,10 @@ export class TunnelFlightService extends BaseService {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public deleteTunnelFlight(item: TunnelFlight) {
|
||||||
|
this.http.delete(`${this.apiUrl}/TunnelFlight/${item.id}`, { headers: this.headers }).subscribe();
|
||||||
|
}
|
||||||
|
|
||||||
public getTunnelFlightsByMonth(begin: Date, end: Date): Observable<Array<TunnelFlightByMonth>> {
|
public getTunnelFlightsByMonth(begin: Date, end: Date): Observable<Array<TunnelFlightByMonth>> {
|
||||||
let beginDate = this.datePipe.transform(begin, "yyyy-MM-dd");
|
let beginDate = this.datePipe.transform(begin, "yyyy-MM-dd");
|
||||||
let endDate = this.datePipe.transform(end, "yyyy-MM-dd");
|
let endDate = this.datePipe.transform(end, "yyyy-MM-dd");
|
||||||
|
|||||||
6
doc.txt
6
doc.txt
@@ -1,7 +1,7 @@
|
|||||||
To build an image "toto" with the version "0.1": docker build . -t skydivelogs:1.4.0
|
To build an image "toto" with the version "0.1": docker build . -t skydivelogs:1.4.1
|
||||||
To run ab image to container with volume :
|
To run ab image to container with volume :
|
||||||
docker run -v C:\toto\config:/app/Front/config -v C:\toto\db:/app/API/Data -d -p 5080:80/tcp --name Test -it skydivelogs:1.4.0
|
docker run -v C:\toto\config:/app/Front/config -v C:\toto\db:/app/API/Data -d -p 5080:80/tcp --name Test -it skydivelogs:1.4.0
|
||||||
|
|
||||||
docker save --output skydivelogs-1.4.0.tar skydivelogs:1.4.0
|
docker save --output skydivelogs-1.4.1.tar skydivelogs:1.4.1
|
||||||
|
|
||||||
scp -P 5022 skydivelogs-1.4.0.tar administrator@51.75.68.58:~
|
scp -P 5022 skydivelogs-1.4.1.tar administrator@51.75.68.58:~
|
||||||
|
|||||||
Reference in New Issue
Block a user