diff --git a/apps/red-ui/src/app/screens/admin/digital-signature-screen/digital-signature-screen.component.html b/apps/red-ui/src/app/screens/admin/digital-signature-screen/digital-signature-screen.component.html index d96cdbab1..7260d8bf5 100644 --- a/apps/red-ui/src/app/screens/admin/digital-signature-screen/digital-signature-screen.component.html +++ b/apps/red-ui/src/app/screens/admin/digital-signature-screen/digital-signature-screen.component.html @@ -35,7 +35,7 @@ /> -
+
diff --git a/apps/red-ui/src/app/screens/admin/digital-signature-screen/digital-signature-screen.component.ts b/apps/red-ui/src/app/screens/admin/digital-signature-screen/digital-signature-screen.component.ts index 49e1a45b5..327553587 100644 --- a/apps/red-ui/src/app/screens/admin/digital-signature-screen/digital-signature-screen.component.ts +++ b/apps/red-ui/src/app/screens/admin/digital-signature-screen/digital-signature-screen.component.ts @@ -35,7 +35,11 @@ export class DigitalSignatureScreenComponent { //adjusted for chrome auto-complete / password manager digitalSignature.password = digitalSignature.keySecret; - this._digitalSignatureControllerService.saveDigitalSignature(digitalSignature).subscribe( + const observable = this.digitalSignatureExists + ? this._digitalSignatureControllerService.updateDigitalSignature(digitalSignature) + : this._digitalSignatureControllerService.saveDigitalSignature(digitalSignature); + + observable.subscribe( () => { this.loadDigitalSignatureAndInitializeForm(); this._notificationService.showToastNotification( @@ -105,6 +109,7 @@ export class DigitalSignatureScreenComponent { this.digitalSignature = digitalSignature; }, () => { + this.digitalSignatureExists = false; this.digitalSignature = {}; } ) @@ -119,14 +124,14 @@ export class DigitalSignatureScreenComponent { certificateName: [this.digitalSignature.certificateName, Validators.required], contactInfo: this.digitalSignature.contactInfo, location: this.digitalSignature.location, - keySecret: [this.digitalSignature.password, Validators.required], + keySecret: this.digitalSignatureExists ? null : [this.digitalSignature.password, Validators.required], reason: this.digitalSignature.reason, - base64EncodedPrivateKey: [this.digitalSignature.base64EncodedPrivateKey, Validators.required] + base64EncodedPrivateKey: this.digitalSignatureExists ? null : [this.digitalSignature.base64EncodedPrivateKey, Validators.required] }); } get hasDigitalSignatureSet() { - return !!this.digitalSignatureForm.get('base64EncodedPrivateKey').value; + return this.digitalSignatureExists || !!this.digitalSignatureForm.get('base64EncodedPrivateKey').value; } formChanged() {} diff --git a/libs/red-ui-http/src/lib/api/digitalSignatureController.service.ts b/libs/red-ui-http/src/lib/api/digitalSignatureController.service.ts index 2b5004a76..1a3481f0c 100644 --- a/libs/red-ui-http/src/lib/api/digitalSignatureController.service.ts +++ b/libs/red-ui-http/src/lib/api/digitalSignatureController.service.ts @@ -176,18 +176,10 @@ export class DigitalSignatureControllerService { * @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body. * @param reportProgress flag to report request and response progress. */ - public saveDigitalSignature1(body: DigitalSignatureViewModel, observe?: 'body', reportProgress?: boolean): Observable; - public saveDigitalSignature1( - body: DigitalSignatureViewModel, - observe?: 'response', - reportProgress?: boolean - ): Observable>; - public saveDigitalSignature1( - body: DigitalSignatureViewModel, - observe?: 'events', - reportProgress?: boolean - ): Observable>; - public saveDigitalSignature1(body: DigitalSignatureViewModel, observe: any = 'body', reportProgress: boolean = false): Observable { + public updateDigitalSignature(body: DigitalSignatureViewModel, observe?: 'body', reportProgress?: boolean): Observable; + public updateDigitalSignature(body: DigitalSignatureViewModel, observe?: 'response', reportProgress?: boolean): Observable>; + public updateDigitalSignature(body: DigitalSignatureViewModel, observe?: 'events', reportProgress?: boolean): Observable>; + public updateDigitalSignature(body: DigitalSignatureViewModel, observe: any = 'body', reportProgress: boolean = false): Observable { if (body === null || body === undefined) { throw new Error('Required parameter body was null or undefined when calling saveDigitalSignature1.'); } @@ -214,7 +206,7 @@ export class DigitalSignatureControllerService { headers = headers.set('Content-Type', httpContentTypeSelected); } - return this.httpClient.request('put', `${this.basePath}/digital-signature`, { + return this.httpClient.request('put', `${this.basePath}/digital-signature`, { body: body, withCredentials: this.configuration.withCredentials, headers: headers,