mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-31 17:38:48 +00:00
#46 onSuccess Event Emitter FileUploader
This commit is contained in:
@@ -17,6 +17,7 @@
|
||||
|
||||
|
||||
import { FileModel } from '../models/file.model';
|
||||
import { EventEmitter } from 'angular2/core';
|
||||
|
||||
|
||||
/**
|
||||
@@ -71,20 +72,20 @@ export class UploadService {
|
||||
/**
|
||||
* Pick all the files in the queue that are not been uploaded yet and upload it into the directory folder.
|
||||
*/
|
||||
public uploadFilesInTheQueue(directory: string): void {
|
||||
public uploadFilesInTheQueue(directory: string, elementEmit: EventEmitter): void {
|
||||
let filesToUpload = this._queue.filter((uploadingFileModel) => {
|
||||
return !uploadingFileModel.uploading && !uploadingFileModel.done && !uploadingFileModel.abort && !uploadingFileModel.error;
|
||||
});
|
||||
filesToUpload.forEach((uploadingFileModel) => {
|
||||
uploadingFileModel.setUploading();
|
||||
this.uploadFile(uploadingFileModel, directory);
|
||||
this.uploadFile(uploadingFileModel, directory, elementEmit);
|
||||
});
|
||||
};
|
||||
|
||||
/**
|
||||
* The method create a new XMLHttpRequest instance if doesn't exist
|
||||
*/
|
||||
private _configureXMLHttpRequest(uploadingFileModel: any) {
|
||||
private _configureXMLHttpRequest(uploadingFileModel: any, elementEmit: EventEmitter) {
|
||||
if (this._xmlHttpRequest === undefined) {
|
||||
this._xmlHttpRequest = new XMLHttpRequest();
|
||||
this._xmlHttpRequest.upload.onprogress = (e) => {
|
||||
@@ -108,6 +109,9 @@ export class UploadService {
|
||||
|
||||
this._xmlHttpRequest.onreadystatechange = () => {
|
||||
if (this._xmlHttpRequest.readyState === XMLHttpRequest.DONE) {
|
||||
elementEmit.emit({
|
||||
value: 'File uploaded'
|
||||
});
|
||||
uploadingFileModel.onFinished(
|
||||
this._xmlHttpRequest.status,
|
||||
this._xmlHttpRequest.statusText,
|
||||
@@ -124,7 +128,7 @@ export class UploadService {
|
||||
* @param {FileModel} - files to be uploaded.
|
||||
*
|
||||
*/
|
||||
uploadFile(uploadingFileModel: FileModel, directory?: string): void {
|
||||
uploadFile(uploadingFileModel: FileModel, directory: string, elementEmit: EventEmitter): void {
|
||||
let form = new FormData();
|
||||
form.append(this._fieldName, uploadingFileModel.file, uploadingFileModel.name);
|
||||
Object.keys(this._formFields).forEach((key: any) => {
|
||||
@@ -133,7 +137,7 @@ export class UploadService {
|
||||
|
||||
form.append('uploaddirectory', directory);
|
||||
|
||||
this._configureXMLHttpRequest(uploadingFileModel);
|
||||
this._configureXMLHttpRequest(uploadingFileModel, elementEmit);
|
||||
uploadingFileModel.setXMLHttpRequest(this._xmlHttpRequest);
|
||||
|
||||
this._xmlHttpRequest.open(this._method, this._url, true);
|
||||
|
Reference in New Issue
Block a user