diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.html b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.html index c37ccc5370..60862ea1f7 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.html +++ b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.html @@ -6,9 +6,13 @@
- + {{decode(file.name)}} - @@ -24,4 +28,5 @@ (change)="onFileChanged($event)">
+ diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.scss b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.scss index 21db1e9fc9..cdff33bbaa 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.scss +++ b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.scss @@ -18,6 +18,7 @@ &-upload-widget__icon { padding: 6px; float: left; + cursor: pointer; } &-adf-file { diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.spec.ts b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.spec.ts index ca3f01b6ca..9138f4157b 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.spec.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.spec.ts @@ -112,6 +112,7 @@ describe('UploadWidgetComponent', () => { let element: HTMLInputElement; let debugElement: DebugElement; let inputElement: HTMLInputElement; + let formServiceInstance: FormService; beforeEach(async(() => { TestBed.configureTestingModule({ @@ -140,6 +141,7 @@ describe('UploadWidgetComponent', () => { type: FormFieldTypes.UPLOAD, readOnly: false }); + formServiceInstance = TestBed.get(FormService); jasmine.Ajax.install(); }); @@ -249,6 +251,33 @@ describe('UploadWidgetComponent', () => { }); })); + it('should emit form content clicked event on icon click', (done) => { + + formServiceInstance.formContentClicked.subscribe((content: any) => { + expect(content.name).toBe(fakeJpgAnswer.name); + expect(content.id).toBe(fakeJpgAnswer.id); + expect(content.contentBlob).not.toBeNull(); + done(); + }); + + uploadWidgetComponent.field.params.multiple = true; + uploadWidgetComponent.field.value = []; + uploadWidgetComponent.field.value.push(fakeJpgAnswer); + uploadWidgetComponent.field.value.push(fakePngAnswer); + fixture.detectChanges(); + + fixture.whenStable().then(() => { + let fileJpegIcon = debugElement.query(By.css('#file-1156-icon')); + fileJpegIcon.nativeElement.dispatchEvent(new MouseEvent('click')); + jasmine.Ajax.requests.mostRecent().respondWith({ + status: 200, + contentType: 'json', + responseText: new Blob() + }); + }); + + }); + }); }); diff --git a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.ts b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.ts index ff1ac585ed..ee696cdba6 100644 --- a/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.ts +++ b/ng2-components/ng2-activiti-form/src/components/widgets/upload/upload.widget.ts @@ -21,6 +21,7 @@ import { Component, OnInit, ViewEncapsulation } from '@angular/core'; import { LogService, ThumbnailService } from 'ng2-alfresco-core'; import { Observable } from 'rxjs/Rx'; import { FormService } from '../../../services/form.service'; +import { ContentLinkModel } from '../core/content-link.model'; import { baseHost, WidgetComponent } from './../widget.component'; @Component({ @@ -117,4 +118,16 @@ export class UploadWidgetComponent extends WidgetComponent implements OnInit { return this.thumbnailService.getMimeTypeIcon(mimeType); } + fileClicked(file: ContentLinkModel): void { + this.formService.getFileRawContent(file.id).subscribe( + (blob: Blob) => { + file.contentBlob = blob; + this.formService.formContentClicked.next(file); + }, + (error) => { + this.logService.error('Unable to send evento for file ' + file.name); + } + ); + } + }