@ -1,5 +1,9 @@
import { Component , EventEmitter , Input , OnInit , Output } from '@angular/core' ;
import { i18nMetaToJSDoc } from '@angular/compiler/src/render3/view/i18n/meta' ;
import { DemandeDelegationDTO } from '@shared/api-swagger' ;
import { Component , EventEmitter , Inject , Input , OnInit , Output } from '@angular/core' ;
import { MatDialog , MatDialogRef , MAT_DIALOG_DATA } from '@angular/material/dialog' ;
import { DemandeDelegationDTO , DemandeEPIDTO , EtatDemande } from '@shared/api-swagger' ;
import { BrowserStack } from 'protractor/built/driverProviders' ;
import { Subscription } from 'rxjs' ;
/ * *
/ * *
@ -9,12 +13,91 @@ import { DemandeDelegationDTO } from '@shared/api-swagger';
templateUrl : './demande-delegation.component.html'
templateUrl : './demande-delegation.component.html'
} )
} )
export class DemandeDelegationComponent implements OnInit {
export class DemandeDelegationComponent implements OnInit {
@Input ( ) demandeDelegation : DemandeDelegationDTO ;
@Input ( ) demandeDelegation : DemandeDelegationDTO ;
@Output ( ) eventEmitter : EventEmitter < any > = new EventEmitter < any > ( ) ;
@Output ( ) eventEmitter : EventEmitter < any > = new EventEmitter < any > ( ) ;
etatDemande : any = EtatDemande ;
dialogSubscription : Subscription ;
constructor ( ) { }
constructor ( private matDialog : MatDialog ) { }
ngOnInit() {
ngOnInit() {
}
}
accepter() {
this . repondreALaDemande ( EtatDemande . Validee ) ;
}
repondreALaDemande ( etatDemande : EtatDemande ) {
const data : any = {
etatDemande : etatDemande ,
demandeDelegation : this.demandeDelegation
} ;
const dialogRef : MatDialogRef < DialogReponseDemandeDelegation > = this . matDialog . open ( DialogReponseDemandeDelegation , { data : data } )
this . dialogSubscription = dialogRef . afterClosed ( ) . subscribe (
reponse = > {
if ( reponse . engistree ) {
this . eventEmitter . emit ( reponse . demandeDelegation ) ;
}
}
) ;
}
ngOnDestroy() {
if ( this . dialogSubscription != undefined ) {
this . dialogSubscription . unsubscribe ( ) ;
}
}
}
}
@Component ( {
selector : "dialog-reponse-demande-delegation" ,
templateUrl : "./dialog-reponse-demande-delegation.html"
} )
export class DialogReponseDemandeDelegation {
texte : string = "" ;
estRefus : boolean = false ;
raisonRefus : string ;
reponse : any = {
engistree : false
}
constructor ( @Inject ( MAT_DIALOG_DATA ) public data , private dialogRef : MatDialogRef < DialogReponseDemandeDelegation > ) {
switch ( data . etatDemande ) {
case EtatDemande . Validee :
this . texte = "Souhaitez-vous vraiment accepter la demande de délégation et devenir le nouveau référent de l'EP ?" ;
break ;
case EtatDemande . Rejetee :
this . texte = "Souhaitez-vous vraiment refuser la demande de délégation ?" ;
this . estRefus = true ;
break ;
}
}
enregistrer() {
if ( this . estRefus && this . raisonRefus == "" )
return ;
let demandeDelegation : DemandeDelegationDTO = this . data . demandeDelegation ;
demandeDelegation . etatDemande = this . data . etatDemande ;
this . reponse = {
engistree : true ,
demandeDelegation : demandeDelegation
}
this . fermer ( ) ;
}
fermer() {
this . dialogRef . close ( this . reponse ) ;
}
}