diff --git a/ng2-components/ng2-alfresco-upload/src/components/file-uploading-dialog.component.html b/ng2-components/ng2-alfresco-upload/src/components/file-uploading-dialog.component.html index 9f3fad5f45..4e42dc8e30 100644 --- a/ng2-components/ng2-alfresco-upload/src/components/file-uploading-dialog.component.html +++ b/ng2-components/ng2-alfresco-upload/src/components/file-uploading-dialog.component.html @@ -4,17 +4,17 @@ {{totalCompleted}} {{ totalCompletedMsg | translate}}
-
+
keyboard_arrow_down keyboard_arrow_up
-
+
clear
-
- +
+
diff --git a/ng2-components/ng2-alfresco-upload/src/components/file-uploading-dialog.component.spec.ts b/ng2-components/ng2-alfresco-upload/src/components/file-uploading-dialog.component.spec.ts index 28f495f833..19b4fe6677 100644 --- a/ng2-components/ng2-alfresco-upload/src/components/file-uploading-dialog.component.spec.ts +++ b/ng2-components/ng2-alfresco-upload/src/components/file-uploading-dialog.component.spec.ts @@ -80,7 +80,7 @@ describe('FileUploadingDialogComponent', () => { }); it('should render dialog box with css class show when an element is added to Observer', () => { - uploadService.addToQueue([file]); + uploadService.addToQueue([ { name: 'file' }]); component.filesUploadingList = [file]; fixture.detectChanges(); @@ -88,8 +88,8 @@ describe('FileUploadingDialogComponent', () => { expect(element.querySelector('.file-dialog').getAttribute('class')).toEqual('file-dialog show'); }); - it('should render dialog box with css class show when the toggleShowDialog is called', () => { - component.toggleShowDialog(); + it('should render dialog box with css class show when the toggleVisible is called', () => { + component.toggleVisible(); fixture.detectChanges(); expect(element.querySelector('.file-dialog').getAttribute('class')).toEqual('file-dialog show'); @@ -98,7 +98,7 @@ describe('FileUploadingDialogComponent', () => { it('should render dialog box with css class hide', () => { component.isDialogActive = true; - component.toggleShowDialog(); + component.toggleVisible(); fixture.detectChanges(); expect(element.querySelector('.file-dialog').getAttribute('class')).toEqual('file-dialog'); @@ -107,7 +107,7 @@ describe('FileUploadingDialogComponent', () => { it('should render minimize dialog as default', () => { component.isDialogActive = true; - component.toggleDialogMinimize(); + component.toggleMinimized(); fixture.detectChanges(); expect(element.querySelector('.minimize-button').getAttribute('class')).toEqual('minimize-button active'); diff --git a/ng2-components/ng2-alfresco-upload/src/components/file-uploading-dialog.component.ts b/ng2-components/ng2-alfresco-upload/src/components/file-uploading-dialog.component.ts index 85bdcb16c4..52f642c134 100644 --- a/ng2-components/ng2-alfresco-upload/src/components/file-uploading-dialog.component.ts +++ b/ng2-components/ng2-alfresco-upload/src/components/file-uploading-dialog.component.ts @@ -15,13 +15,13 @@ * limitations under the License. */ -import { Component, ChangeDetectorRef, OnInit, OnDestroy } from '@angular/core'; +import { Component, Input, ChangeDetectorRef, OnInit, OnDestroy } from '@angular/core'; import { FileModel } from '../models/file.model'; import { AlfrescoTranslationService } from 'ng2-alfresco-core'; import { UploadService } from '../services/upload.service'; /** - * + * * * This component is a hideable and minimizable wich contains the list of the uploading * files contained in the filesUploadingList. @@ -35,20 +35,17 @@ import { UploadService } from '../services/upload.service'; selector: 'file-uploading-dialog', moduleId: module.id, templateUrl: './file-uploading-dialog.component.html', - styleUrls: ['./file-uploading-dialog.component.css'], - host: {'[class.dialog-show]': 'toggleShowDialog'} + styleUrls: ['./file-uploading-dialog.component.css'] }) export class FileUploadingDialogComponent implements OnInit, OnDestroy { - isDialogActive: boolean = false; - + @Input() filesUploadingList: FileModel []; + isDialogActive: boolean = false; totalCompleted: number = 0; - totalCompletedMsg: string = 'FILE_UPLOAD.MESSAGES.SINGLE_COMPLETED'; - - private _isDialogMinimized: boolean = false; + isDialogMinimized: boolean = false; private listSubscription: any; private counterSubscription: any; @@ -83,17 +80,17 @@ export class FileUploadingDialogComponent implements OnInit, OnDestroy { } /** - * Display and hide the dialog component. + * Toggle dialog visibility state. */ - toggleShowDialog() { + toggleVisible(): void { this.isDialogActive = !this.isDialogActive; } /** - * Minimize and expand the dialog component. + * Toggle dialog minimized state. */ - toggleDialogMinimize() { - this._isDialogMinimized = !this._isDialogMinimized; + toggleMinimized(): void { + this.isDialogMinimized = !this.isDialogMinimized; } ngOnDestroy() { diff --git a/ng2-components/ng2-alfresco-upload/src/components/file-uploading-list.component.css b/ng2-components/ng2-alfresco-upload/src/components/file-uploading-list.component.css index b0e8d8cede..2fdb761011 100644 --- a/ng2-components/ng2-alfresco-upload/src/components/file-uploading-list.component.css +++ b/ng2-components/ng2-alfresco-upload/src/components/file-uploading-list.component.css @@ -42,7 +42,7 @@ width: 100%; } :host .truncate { - margin-left: auto; + margin-left: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; diff --git a/ng2-components/ng2-alfresco-upload/src/components/file-uploading-list.component.html b/ng2-components/ng2-alfresco-upload/src/components/file-uploading-list.component.html index 62d237c24d..051cf209a5 100644 --- a/ng2-components/ng2-alfresco-upload/src/components/file-uploading-list.component.html +++ b/ng2-components/ng2-alfresco-upload/src/components/file-uploading-list.component.html @@ -1,32 +1,38 @@ -
+ - - - - + + + + - - - + + -
{{'FILE_UPLOAD.FILE_INFO.NAME' | translate}}{{'FILE_UPLOAD.FILE_INFO.PROGRESS' | translate}}{{'FILE_UPLOAD.FILE_INFO.SIZE' | translate}}{{'FILE_UPLOAD.FILE_INFO.ACTION' | translate}}{{'FILE_UPLOAD.FILE_INFO.NAME' | translate}}{{'FILE_UPLOAD.FILE_INFO.PROGRESS' | translate}}{{'FILE_UPLOAD.FILE_INFO.SIZE' | translate}}{{'FILE_UPLOAD.FILE_INFO.ACTION' | translate}}
{{file.name}}
-
+
+
{{file.name}}
+
+
{{file.size}} - done - - remove_circle_outline - remove_circle + + + done + + + remove_circle_outline + + + remove_circle +
diff --git a/ng2-components/ng2-alfresco-upload/src/components/file-uploading-list.component.ts b/ng2-components/ng2-alfresco-upload/src/components/file-uploading-list.component.ts index ecc0dec50a..f6de9f950b 100644 --- a/ng2-components/ng2-alfresco-upload/src/components/file-uploading-list.component.ts +++ b/ng2-components/ng2-alfresco-upload/src/components/file-uploading-list.component.ts @@ -15,11 +15,11 @@ * limitations under the License. */ -import { Component, ElementRef, Input } from '@angular/core'; +import { Component, Input } from '@angular/core'; import { FileModel } from '../models/file.model'; /** - * + * * * This component show a list of the uploading files contained in the filesUploadingList. * @@ -37,31 +37,29 @@ import { FileModel } from '../models/file.model'; export class FileUploadingListComponent { @Input() - filesUploadingList: FileModel []; - - constructor(public el: ElementRef) { - } + files: FileModel[]; /** - * Abort the in progress uploading of a specific file. + * Cancel file upload * - * @param {string} id - FileModel id of the file to abort. + * @param {FileModel} file File model to cancel upload for. + * + * @memberOf FileUploadingListComponent */ - abort(id: string): void { - let file = this.filesUploadingList.filter((uploadingFileModel) => { - return uploadingFileModel.id === id; - }); - file[0].emitAbort(); + cancelFileUpload(file: FileModel): void { + if (file) { + file.emitAbort(); + } } /** * Call the abort method for each file */ - cancelAllFiles($event) { - if ($event) { - $event.preventDefault(); + cancelAllFiles(event: Event): void { + if (event) { + event.preventDefault(); } - this.filesUploadingList.forEach((uploadingFileModel: FileModel) => { + this.files.forEach((uploadingFileModel: FileModel) => { uploadingFileModel.emitAbort(); }); } @@ -70,12 +68,12 @@ export class FileUploadingListComponent { * Verify if all the files are in state done or abort * @returns {boolean} - false if there is a file in progress */ - isUploadCompleted() { + isUploadCompleted(): boolean { let isPending = false; let isAllCompleted = true; - for (let i = 0; i < this.filesUploadingList.length && !isPending; i++) { - let uploadingFileModel = this.filesUploadingList[i]; - if (!uploadingFileModel.done && !uploadingFileModel.abort) { + for (let i = 0; i < this.files.length && !isPending; i++) { + let file = this.files[i]; + if (!file.done && !file.abort) { isPending = true; isAllCompleted = false; } diff --git a/ng2-components/ng2-alfresco-upload/src/components/upload-drag-area.component.html b/ng2-components/ng2-alfresco-upload/src/components/upload-drag-area.component.html index fda0fca497..5ae429edf2 100644 --- a/ng2-components/ng2-alfresco-upload/src/components/upload-drag-area.component.html +++ b/ng2-components/ng2-alfresco-upload/src/components/upload-drag-area.component.html @@ -1,4 +1,4 @@ -
{ it('should add an element in the queue and returns it', () => { service.setOptions(options, false); - let filesFake = [{name: 'fake-name', size: 10}]; + let filesFake = [{name: 'fake-name', size: 10}]; service.addToQueue(filesFake); expect(service.getQueue().length).toEqual(1); }); it('should add two elements in the queue and returns them', () => { service.setOptions(options, false); - let filesFake = [{name: 'fake-name', size: 10}, {name: 'fake-name2', size: 20}]; + let filesFake = [ + {name: 'fake-name', size: 10}, + {name: 'fake-name2', size: 20} + ]; service.addToQueue(filesFake); expect(service.getQueue().length).toEqual(2); }); @@ -79,7 +82,7 @@ describe('UploadService', () => { done(); }); service.setOptions(options, false); - let filesFake = [{name: 'fake-name', size: 10}]; + let filesFake = [{name: 'fake-name', size: 10}]; service.addToQueue(filesFake); service.uploadFilesInTheQueue('-root-', 'fake-dir', emitter); @@ -102,7 +105,7 @@ describe('UploadService', () => { done(); }); service.setOptions(options, false); - let filesFake = [{name: 'fake-name', size: 10}]; + let filesFake = [{name: 'fake-name', size: 10}]; service.addToQueue(filesFake); service.uploadFilesInTheQueue('-root-', '', emitter); expect(jasmine.Ajax.requests.mostRecent().url) @@ -123,7 +126,7 @@ describe('UploadService', () => { done(); }); service.setOptions(options, false); - let filesFake = [{name: 'fake-name', size: 10}]; + let filesFake = [{name: 'fake-name', size: 10}]; service.addToQueue(filesFake); service.uploadFilesInTheQueue('-root-', '', emitter); @@ -139,7 +142,7 @@ describe('UploadService', () => { done(); }); service.setOptions(options, false); - let filesFake = [{name: 'fake-name', size: 10}]; + let filesFake = [{name: 'fake-name', size: 10}]; service.addToQueue(filesFake); service.uploadFilesInTheQueue('-root-', '', emitter); @@ -154,7 +157,7 @@ describe('UploadService', () => { total: 1234, percent: 44 }; - let filesFake = [{name: 'fake-name', size: 10}]; + let filesFake = [{name: 'fake-name', size: 10}]; service.addToQueue(filesFake); service.filesUpload$.subscribe((file) => { expect(file).toBeDefined(); @@ -222,7 +225,7 @@ describe('UploadService', () => { let enableVersioning = true; service.setOptions(options, enableVersioning); - let filesFake = [{name: 'fake-name', size: 10}]; + let filesFake = [{name: 'fake-name', size: 10}]; service.addToQueue(filesFake); service.uploadFilesInTheQueue('-root-', '', emitter); @@ -238,7 +241,7 @@ describe('UploadService', () => { done(); }); service.setOptions(options, false); - let filesFake = [{name: 'fake-name', size: 10}]; + let filesFake = [{name: 'fake-name', size: 10}]; service.addToQueue(filesFake); service.uploadFilesInTheQueue('123', 'fake-dir', emitter); diff --git a/ng2-components/ng2-alfresco-upload/src/services/upload.service.ts b/ng2-components/ng2-alfresco-upload/src/services/upload.service.ts index 5f0628b1f8..11ec3c1875 100644 --- a/ng2-components/ng2-alfresco-upload/src/services/upload.service.ts +++ b/ng2-components/ng2-alfresco-upload/src/services/upload.service.ts @@ -66,20 +66,18 @@ export class UploadService { * * return {FileModel[]} - return the file added to the queue in this call. */ - addToQueue(files: any[]): FileModel[] { - let latestFilesAdded: FileModel[] = []; + addToQueue(files: File[]): FileModel[] { + const result: FileModel[] = []; for (let file of files) { - if (this.isFile(file)) { - let uploadingFileModel = new FileModel(file); - latestFilesAdded.push(uploadingFileModel); - this.queue.push(uploadingFileModel); - if (this.filesUploadObserverProgressBar) { - this.filesUploadObserverProgressBar.next(this.queue); - } + let uploadingFileModel = new FileModel(file); + result.push(uploadingFileModel); + this.queue.push(uploadingFileModel); + if (this.filesUploadObserverProgressBar) { + this.filesUploadObserverProgressBar.next(this.queue); } } - return latestFilesAdded; + return result; } /** @@ -149,15 +147,6 @@ export class UploadService { return this.queue; } - /** - * Check if an item is a file. - * - * @return {boolean} - */ - private isFile(file: any): boolean { - return file !== null && (file instanceof Blob || (file.name && file.size)); - } - /** * Create a folder * @param name - the folder name