Skip to content
Commits on Source (9)
......@@ -2,5 +2,7 @@
All notable changes to [ngpr_prodige_contribution](https://gitlab.adullact.net/prodige/ngpr_prodige_contribution) project will be documented in this file.
## [5.0.3](https://gitlab.adullact.net/prodige/ngpr_prodige_contribution/compare/5.0.2...5.0.3) - 2023-03-07
## [5.0.2](https://gitlab.adullact.net/prodige/ngpr_prodige_contribution/compare/5.0.1...5.0.2) - 2023-03-07
5.0.2
\ No newline at end of file
5.0.3
\ No newline at end of file
# App
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 15.0.1.
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 13.0.1.
## Development server
......
......@@ -10,7 +10,7 @@ import { EnvService } from '../../services/env/env.service';
export abstract class BaseComponent implements OnDestroy {
/** Vrai si le composant est en cours de chargement (pour afficher le contenu html uniquement à la fin du ngOnInit par exemple) */
protected isLoading = true;
public isLoading = false;
/** Vrai si application est en mode debug (var d'env) */
protected isInDebugMode = false;
/** Subject émettant une valeur à la destruction du composant, à utiliser avec les pipes rxjs et **takeUntil(this.endSubscriptions)** sur les observable */
......
......@@ -35,7 +35,7 @@ export class ContextService extends GetDataService<FeatureCollection>{
// eslint-disable-next-line max-len
// const url = `https://carto-test.atlasante.fr/carto/context?account=1&contextPath=/layers/3f719270-f589-460b-bf2c-6f75e856ae23.map&extent=-614973,5053097,1191092,6637194&callback=ng_jsonp_callback_4`;
return this.getData$( url, null, { withCredentials: true }, false );
return this.getData$( url, null, null /* { withCredentials: true }*/, true );
}
drawContextEtent( map: Map, extent: ContributionExtent ): void {
......
......@@ -70,7 +70,13 @@
</div>
<div class="d-grid">
<button class="btn btn-outline-brand btn-lg my-3 px-5" i18n="ToStartUp"
[disabled]="!fileTransfertChecked || !transterEnding" (click)="finalizeTransfert()" role="button">Démarrer</button>
[disabled]="!this.fileTransfertChecked || !this.transfertEnding" (click)="finalizeTransfert()" role="button">
Démarrer
<ng-container *ngIf="this.finalizeLoading" >
<i class="fas fa-circle-notch fa-spin upload-icon icon-color-loading" aria-hidden="true"></i>
</ng-container>
</button>
</div>
</div>
......
......@@ -3,7 +3,7 @@ import { HomeService } from "./home.service";
import { Router } from '@angular/router';
import { IFileLoading } from '../../core/models/file-loading-type';
import { BaseComponent } from '../../core/components/base/base.component';
import { takeUntil } from 'rxjs';
import {from, switchMap, takeUntil} from 'rxjs';
@Component({
selector: `alk-home`,
......@@ -16,8 +16,9 @@ export class HomeComponent extends BaseComponent {
public fileTransfertChecked = true;
public transterEnding = false;
public transfertEnding = false;
public finalizeLoading = false;
constructor(
private homeService: HomeService,
......@@ -35,7 +36,7 @@ export class HomeComponent extends BaseComponent {
// mise à jour de l'état des fichiers
const filenames = this.homeService.getFilenameFromList( this.fileToUploads );
this.fileLoading = {};
filenames.forEach(( filename ) => {
this.fileLoading[filename] = `no`;
});
......@@ -49,7 +50,7 @@ export class HomeComponent extends BaseComponent {
this.fileLoading[key] = `loading`;
});
this.transterEnding = false;
this.transfertEnding = false;
this.fileTransfertChecked = true;
this.homeService
......@@ -66,27 +67,30 @@ export class HomeComponent extends BaseComponent {
},
error: ( err ) => { console.error( err ) /* TODO affichage d'une modal */ },
complete: () =>{
this.transterEnding = true;
this.transfertEnding = true;
},
});
}
finalizeTransfert(){
this.transterEnding = false;
this.transfertEnding = false;
this.finalizeLoading = true;
this.homeService.finaliseFileTransfert().pipe(
takeUntil( this.endSubscriptions ),
switchMap((contributionId) => from(this.router.navigate([ `stepper`, contributionId ])))
)
.subscribe({
next: ( contributionId ) => {
this.router.navigate([ `stepper`, contributionId ]).catch( console.error );
next: ( ) => {
},
error: ( err ) => {
console.error( err );
// TODO: affichage d'une modal
},
complete: () =>{
this.transterEnding = true;
this.finalizeLoading = false;
this.finalizeLoading = false;
},
});
}
......
......@@ -168,7 +168,12 @@
<button type="button" class="btn btn-outline-brand px-4 me-4" (click)="previousStep()" i18n="@@previuous">Précédent</button>
</div>
<div>
<button type="button" class="btn btn btn-brand px-4" [disabled]="!this.isValid" (click)="sendData()">Valider et publier votre donnée</button>
<button type="button" class="btn btn btn-brand px-4" [disabled]="!this.isValid || this.isLoading" (click)="sendData()">
Valider et publier votre donnée
<ng-container *ngIf="this.isLoading" >
<i class="fas fa-circle-notch fa-spin upload-icon icon-color-loading" aria-hidden="true"></i>
</ng-container>
</button>
</div>
</div>
</div>
......@@ -133,11 +133,17 @@ export class SynthesisAndValidationComponent extends BaseComponent implements On
}
public sendData(){
this.isLoading = true;
this.synthesisService.sendContribution( this.contribution, this.contributionForm ) .pipe(
takeUntil( this.endSubscriptions ),
)
.subscribe(( result ) =>{
console.log( result );
.subscribe({
next: ( result ) =>{
console.log( result );
},
complete: () =>{
this.isLoading = false;
},
});
}
......
......@@ -30,12 +30,16 @@ export class SynthesisAndValidationService {
});
});
console.log( contribution );
CONTRIBUTION_KEY_PATCH.forEach(( key ) => ( sendData[key] = contribution[key as keyof Contribution]));
if ( contribution[`fields`]){
( contribution[`fields`]).map(( field ) => {
delete field.selected;
return field;
if ( sendData[`fields`]){
sendData[`fields`] = ( <Contribution>sendData )[`fields`]
.filter(( field ) => field.selected )
.map(( field ) => {
delete field.selected;
return field;
});
}
......