From 580cd3440f1fa6d1e7e4433caebb60f4d6ded443 Mon Sep 17 00:00:00 2001 From: Denys Vuika Date: Tue, 25 Sep 2018 16:23:14 +0100 Subject: [PATCH] emit success events on upload resume (#3824) --- .../base-upload/upload-base.spec.ts | 20 +++++++++++++++++++ .../components/base-upload/upload-base.ts | 3 ++- .../upload/components/upload-files.event.ts | 11 ++++++---- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/lib/content-services/upload/components/base-upload/upload-base.spec.ts b/lib/content-services/upload/components/base-upload/upload-base.spec.ts index eb4504d6f7..6e62861eec 100644 --- a/lib/content-services/upload/components/base-upload/upload-base.spec.ts +++ b/lib/content-services/upload/components/base-upload/upload-base.spec.ts @@ -127,6 +127,26 @@ describe('UploadBase', () => { expect(uploadFilesInTheQueue).toHaveBeenCalled(); })); + it('should emit callback events on resume', fakeAsync((done) => { + spyOn(uploadService, 'addToQueue').and.stub(); + spyOn(uploadService, 'uploadFilesInTheQueue').and.stub(); + + let uploadEvent: UploadFilesEvent; + component.beginUpload.subscribe(event => { + uploadEvent = event; + event.preventDefault(); + }); + const file = { name: 'bigFile.png', size: 1000 }; + component.uploadFiles([file]); + + tick(); + uploadEvent.resumeUpload(); + + component.success.subscribe(() => { + done(); + }); + })); + }); describe('filesize', () => { diff --git a/lib/content-services/upload/components/base-upload/upload-base.ts b/lib/content-services/upload/components/base-upload/upload-base.ts index 378276901d..e95011dc56 100644 --- a/lib/content-services/upload/components/base-upload/upload-base.ts +++ b/lib/content-services/upload/components/base-upload/upload-base.ts @@ -128,7 +128,8 @@ export abstract class UploadBase implements OnInit, OnDestroy { this.ngZone.run(() => { const event = new UploadFilesEvent( [...filteredFiles], - this.uploadService + this.uploadService, + this.success ); this.beginUpload.emit(event); diff --git a/lib/content-services/upload/components/upload-files.event.ts b/lib/content-services/upload/components/upload-files.event.ts index 3a93c41c96..11453e0ccf 100644 --- a/lib/content-services/upload/components/upload-files.event.ts +++ b/lib/content-services/upload/components/upload-files.event.ts @@ -16,9 +16,9 @@ */ import { FileModel, UploadService } from '@alfresco/adf-core'; +import { EventEmitter } from '@angular/core'; export class UploadFilesEvent { - private isDefaultPrevented: boolean = false; get defaultPrevented() { @@ -29,8 +29,11 @@ export class UploadFilesEvent { this.isDefaultPrevented = true; } - constructor(public files: Array, private uploadService: UploadService) { - } + constructor( + public files: Array, + private uploadService: UploadService, + private callback: EventEmitter + ) {} pauseUpload() { this.preventDefault(); @@ -39,7 +42,7 @@ export class UploadFilesEvent { resumeUpload() { if (this.files && this.files.length > 0) { this.uploadService.addToQueue(...this.files); - this.uploadService.uploadFilesInTheQueue(); + this.uploadService.uploadFilesInTheQueue(this.callback); } } }