X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Fapp%2Futilities%2Fwarning%2FWarningComponent.ts;h=c687fb092392cf7f95b1beb6fd7568cae101d181;hb=1b17c432991a95035a1732426f0c11db57e511c9;hp=0ccb888e65c5295e29946390ebfdad2a484a0ae2;hpb=50e53afdfc376c2055284bda4be1664acfe4fcee;p=osm%2FNG-UI.git diff --git a/src/app/utilities/warning/WarningComponent.ts b/src/app/utilities/warning/WarningComponent.ts index 0ccb888..c687fb0 100644 --- a/src/app/utilities/warning/WarningComponent.ts +++ b/src/app/utilities/warning/WarningComponent.ts @@ -18,8 +18,14 @@ /** * @file WarningConfiguration Model */ +import { HttpHeaders } from '@angular/common/http'; import { Component, Injector, Input } from '@angular/core'; import { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap'; +import { TranslateService } from '@ngx-translate/core'; +import { NotifierService } from 'angular-notifier'; +import { APIURLHEADER, ERRORDATA, MODALCLOSERESPONSEDATA, UNLOCKPARAMS } from 'CommonModel'; +import { environment } from 'environment'; +import { RestService } from 'RestService'; /** * Creating component * @Component takes WarningComponent.html as template url @@ -55,9 +61,36 @@ export class WarningComponent { /** Give the message for the loading @public */ public message: string = 'PLEASEWAIT'; + /** Contains id of the admin user @public */ + @Input() + public id: string; + + /** Holds which action to perform @public */ + @Input() + public action: boolean = false; + + /** Contains editType data @public */ + @Input() + public editType: string; + + /** handle translate @public */ + public translateService: TranslateService; + + /** Controls the header form @private */ + private headers: HttpHeaders; + + /** Instance of the rest service @private */ + private restService: RestService; + + /** Notifier service to popup notification @private */ + private notifierService: NotifierService; + constructor(injector: Injector) { this.injector = injector; this.activeModal = this.injector.get(NgbActiveModal); + this.restService = this.injector.get(RestService); + this.translateService = this.injector.get(TranslateService); + this.notifierService = this.injector.get(NotifierService); } /** @@ -71,4 +104,41 @@ export class WarningComponent { public closeModal(getMessage: string): void { this.activeModal.close({ message: getMessage }); } + + /** + * called on submit @private onSubmit + */ + public onSubmit(): void { + this.isLoad = true; + const modalData: MODALCLOSERESPONSEDATA = { + message: 'Done' + }; + const id: string = localStorage.getItem('user_id'); + const payLoad: UNLOCKPARAMS = {}; + if (this.editType === 'unlock') { + payLoad.system_admin_id = id; + payLoad.unlock = true; + } else { + payLoad.system_admin_id = id; + payLoad.renew = true; + } + const apiURLHeader: APIURLHEADER = { + url: environment.USERS_URL + '/' + this.id, + httpOptions: { headers: this.headers } + }; + this.restService.patchResource(apiURLHeader, payLoad).subscribe((result: {}): void => { + this.activeModal.close(modalData); + this.isLoad = false; + if (this.editType === 'unlock') { + this.notifierService.notify('success', this.translateService.instant('PAGE.USERS.UNLOCKUSER')); + } else { + this.notifierService.notify('success', this.translateService.instant('PAGE.USERS.RENEWUSER')); + } + }, (error: ERRORDATA): void => { + this.restService.handleError(error, 'put'); + this.isLoad = false; + }, (): void => { + this.isLoad = false; + }); + } }