diff --git a/lib/process-services-cloud/src/lib/form/components/widgets/properties-viewer/properties-viewer.widget.spec.ts b/lib/process-services-cloud/src/lib/form/components/widgets/properties-viewer/properties-viewer.widget.spec.ts index 683125d56e..42edeacb70 100644 --- a/lib/process-services-cloud/src/lib/form/components/widgets/properties-viewer/properties-viewer.widget.spec.ts +++ b/lib/process-services-cloud/src/lib/form/components/widgets/properties-viewer/properties-viewer.widget.spec.ts @@ -36,6 +36,21 @@ describe('PropertiesViewerWidgetComponent', () => { let element: HTMLElement; let nodesApiService: NodesApiService; + const fakePngAnswer: any = { + id: '1933', + link: false, + isExternal: false, + relatedContent: false, + contentAvailable: true, + name: 'a_png_file.png', + simpleType: 'image', + mimeType: 'image/png', + previewStatus: 'queued', + thumbnailStatus: 'queued', + created: '2022-10-14T17:17:37.099Z', + createdBy: { id: 1001, firstName: 'Admin', lastName: 'admin', email: 'admin@example.com' } + }; + setupTestBed({ imports: [ TranslateModule.forRoot(), @@ -92,4 +107,15 @@ describe('PropertiesViewerWidgetComponent', () => { expect(nodeContentLoadedSpy).toHaveBeenCalledWith(fakeNodeWithProperties); }); + + it('should set NodeId crrectly when field value is array of file instead of string', async () => { + const fakeField = new FormFieldModel(new FormModel(), { id: 'fakeField', value: [fakePngAnswer] }); + widget.field = fakeField; + + fixture.detectChanges(); + + await fixture.whenStable(); + + expect(widget.field.value).toBe('1933'); + }); }); diff --git a/lib/process-services-cloud/src/lib/form/components/widgets/properties-viewer/properties-viewer.widget.ts b/lib/process-services-cloud/src/lib/form/components/widgets/properties-viewer/properties-viewer.widget.ts index c4adef0659..4b28f8a639 100644 --- a/lib/process-services-cloud/src/lib/form/components/widgets/properties-viewer/properties-viewer.widget.ts +++ b/lib/process-services-cloud/src/lib/form/components/widgets/properties-viewer/properties-viewer.widget.ts @@ -15,7 +15,7 @@ * limitations under the License. */ -import { Component, EventEmitter, Output, ViewEncapsulation } from '@angular/core'; +import { Component, EventEmitter, OnInit, Output, ViewEncapsulation } from '@angular/core'; import { FormService, WidgetComponent } from '@alfresco/adf-core'; import { Node } from '@alfresco/js-api'; @@ -38,7 +38,7 @@ import { Node } from '@alfresco/js-api'; }, encapsulation: ViewEncapsulation.None }) -export class PropertiesViewerWidgetComponent extends WidgetComponent { +export class PropertiesViewerWidgetComponent extends WidgetComponent implements OnInit { @Output() nodeContentLoaded: EventEmitter = new EventEmitter(); @@ -47,6 +47,16 @@ export class PropertiesViewerWidgetComponent extends WidgetComponent { super(formService); } + ngOnInit(): void { + if (this.field && + this.field.value && + Array.isArray(this.field.value) && + this.field.value.length) { + const file = this.field.value[0]; + this.field.value = file.id; + } + } + onNodeContentLoaded(node: Node) { this.nodeContentLoaded.emit(node); }