diff --git a/lib/core/src/lib/form/components/widgets/base-viewer/base-viewer.widget.spec.ts b/lib/core/src/lib/form/components/widgets/base-viewer/base-viewer.widget.spec.ts index d6bd610ece..993ccb09a5 100644 --- a/lib/core/src/lib/form/components/widgets/base-viewer/base-viewer.widget.spec.ts +++ b/lib/core/src/lib/form/components/widgets/base-viewer/base-viewer.widget.spec.ts @@ -60,26 +60,27 @@ describe('BaseViewerWidgetComponent', () => { }); it('should set the file id corretly when the field value is an array', (done) => { - const fakeField = new FormFieldModel(fakeForm, { id: 'fakeField', value: [fakePngAnswer] }); - widget.field = fakeField; + assertFileId([fakePngAnswer], '1933', fakeForm, widget, fixture, done); + }); - fixture.detectChanges(); - - fixture.whenStable().then(() => { - expect(widget.field.value).toBe('1933'); - done(); - }); + it('should set the file id corretly when the field value is an object', (done) => { + assertFileId(fakePngAnswer, '1933', fakeForm, widget, fixture, done); }); it('should set the file id corretly when the field value is a string', (done) => { - const fakeField = new FormFieldModel(fakeForm, { id: 'fakeField', value: 'fakeValue' }); - widget.field = fakeField; - - fixture.detectChanges(); - - fixture.whenStable().then(() => { - expect(widget.field.value).toBe('fakeValue'); - done(); - }); + assertFileId('fakeValue', 'fakeValue', fakeForm, widget, fixture, done); }); }); + +function assertFileId(value: any, expectedFileId: string, fakeForm: FormModel, widget: BaseViewerWidgetComponent, fixture: ComponentFixture, done: DoneFn) { + const fakeField = new FormFieldModel(fakeForm, { id: 'fakeField', value }); + widget.field = fakeField; + + fixture.detectChanges(); + + fixture.whenStable().then(() => { + expect(widget.field.value).toBe(expectedFileId); + done(); + }); +} + diff --git a/lib/core/src/lib/form/components/widgets/base-viewer/base-viewer.widget.ts b/lib/core/src/lib/form/components/widgets/base-viewer/base-viewer.widget.ts index adaebbed13..93b0ddcee9 100644 --- a/lib/core/src/lib/form/components/widgets/base-viewer/base-viewer.widget.ts +++ b/lib/core/src/lib/form/components/widgets/base-viewer/base-viewer.widget.ts @@ -19,7 +19,7 @@ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; import { FormService } from '../../../services/form.service'; import { WidgetComponent } from '../widget.component'; - /* eslint-disable @angular-eslint/component-selector */ +/* eslint-disable @angular-eslint/component-selector */ @Component({ selector: 'base-viewer-widget', @@ -44,12 +44,13 @@ export class BaseViewerWidgetComponent extends WidgetComponent implements OnInit } 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; + if (this.field?.value) { + if (Array.isArray(this.field.value) && this.field.value.length > 0) { + const file = this.field.value[0]; + this.field.value = file.id; + } else if (typeof this.field.value === 'object' && this.field.value.id) { + this.field.value = this.field.value.id; + } } } } diff --git a/lib/process-services-cloud/src/lib/form/components/widgets/file-viewer/file-viewer.widget.ts b/lib/process-services-cloud/src/lib/form/components/widgets/file-viewer/file-viewer.widget.ts index 4b3b4b5ab8..2df157d8f5 100644 --- a/lib/process-services-cloud/src/lib/form/components/widgets/file-viewer/file-viewer.widget.ts +++ b/lib/process-services-cloud/src/lib/form/components/widgets/file-viewer/file-viewer.widget.ts @@ -15,10 +15,10 @@ * limitations under the License. */ -import { Component, OnInit, ViewEncapsulation } from '@angular/core'; -import { WidgetComponent, FormService } from '@alfresco/adf-core'; +import { Component, ViewEncapsulation } from '@angular/core'; +import { FormService, BaseViewerWidgetComponent } from '@alfresco/adf-core'; - /* eslint-disable @angular-eslint/component-selector */ +/* eslint-disable @angular-eslint/component-selector */ @Component({ selector: 'file-viewer-widget', @@ -37,18 +37,8 @@ import { WidgetComponent, FormService } from '@alfresco/adf-core'; }, encapsulation: ViewEncapsulation.None }) -export class FileViewerWidgetComponent extends WidgetComponent implements OnInit { +export class FileViewerWidgetComponent extends BaseViewerWidgetComponent { constructor(formService: FormService) { 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; - } - } } 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 5d49fe1bc5..06262b0d2d 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,8 +15,8 @@ * limitations under the License. */ -import { Component, EventEmitter, OnInit, Output, ViewEncapsulation } from '@angular/core'; -import { FormService, WidgetComponent } from '@alfresco/adf-core'; +import { Component, EventEmitter, Output, ViewEncapsulation } from '@angular/core'; +import { BaseViewerWidgetComponent, FormService } from '@alfresco/adf-core'; import { Node } from '@alfresco/js-api'; /* eslint-disable @angular-eslint/component-selector */ @@ -38,7 +38,7 @@ import { Node } from '@alfresco/js-api'; }, encapsulation: ViewEncapsulation.None }) -export class PropertiesViewerWidgetComponent extends WidgetComponent implements OnInit { +export class PropertiesViewerWidgetComponent extends BaseViewerWidgetComponent { @Output() nodeContentLoaded: EventEmitter = new EventEmitter(); @@ -47,16 +47,6 @@ export class PropertiesViewerWidgetComponent extends WidgetComponent implements 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); } diff --git a/lib/process-services/src/lib/form/widgets/file-viewer/file-viewer.widget.ts b/lib/process-services/src/lib/form/widgets/file-viewer/file-viewer.widget.ts index ea1d6ce41b..31f81cf3da 100644 --- a/lib/process-services/src/lib/form/widgets/file-viewer/file-viewer.widget.ts +++ b/lib/process-services/src/lib/form/widgets/file-viewer/file-viewer.widget.ts @@ -15,10 +15,10 @@ * limitations under the License. */ -import { FormService, WidgetComponent } from '@alfresco/adf-core'; -import { Component, OnInit, ViewEncapsulation } from '@angular/core'; +import { BaseViewerWidgetComponent, FormService } from '@alfresco/adf-core'; +import { Component, ViewEncapsulation } from '@angular/core'; - /* eslint-disable @angular-eslint/component-selector */ +/* eslint-disable @angular-eslint/component-selector */ @Component({ selector: 'file-viewer-widget', @@ -37,18 +37,8 @@ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; }, encapsulation: ViewEncapsulation.None }) -export class FileViewerWidgetComponent extends WidgetComponent implements OnInit { +export class FileViewerWidgetComponent extends BaseViewerWidgetComponent { constructor(formService: FormService) { 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; - } - } } diff --git a/package.json b/package.json index d54ecc8dac..e29bdd25a4 100644 --- a/package.json +++ b/package.json @@ -226,4 +226,3 @@ "module": "./index.js", "typings": "./index.d.ts" } -