Merge branch 'development' of github.com:valor-software/ng2-file-upload into development
This commit is contained in:
@@ -8,7 +8,7 @@ export class FileDropDirective {
|
|||||||
@Output() public fileOver:EventEmitter<any> = new EventEmitter();
|
@Output() public fileOver:EventEmitter<any> = new EventEmitter();
|
||||||
@Output() public onFileDrop:EventEmitter<File[]> = new EventEmitter<File[]>();
|
@Output() public onFileDrop:EventEmitter<File[]> = new EventEmitter<File[]>();
|
||||||
|
|
||||||
private element:ElementRef;
|
protected element:ElementRef;
|
||||||
|
|
||||||
public constructor(element:ElementRef) {
|
public constructor(element:ElementRef) {
|
||||||
this.element = element;
|
this.element = element;
|
||||||
@@ -61,16 +61,16 @@ export class FileDropDirective {
|
|||||||
this.fileOver.emit(false);
|
this.fileOver.emit(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _getTransfer(event:any):any {
|
protected _getTransfer(event:any):any {
|
||||||
return event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer; // jQuery fix;
|
return event.dataTransfer ? event.dataTransfer : event.originalEvent.dataTransfer; // jQuery fix;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _preventAndStop(event:any):any {
|
protected _preventAndStop(event:any):any {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
}
|
}
|
||||||
|
|
||||||
private _haveFiles(types:any):any {
|
protected _haveFiles(types:any):any {
|
||||||
if (!types) {
|
if (!types) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,9 +21,9 @@ export class FileItem {
|
|||||||
public _xhr:XMLHttpRequest;
|
public _xhr:XMLHttpRequest;
|
||||||
public _form:any;
|
public _form:any;
|
||||||
|
|
||||||
private uploader:FileUploader;
|
protected uploader:FileUploader;
|
||||||
private some:File;
|
protected some:File;
|
||||||
private options:FileUploaderOptions;
|
protected options:FileUploaderOptions;
|
||||||
|
|
||||||
public constructor(uploader:FileUploader, some:File, options:FileUploaderOptions) {
|
public constructor(uploader:FileUploader, some:File, options:FileUploaderOptions) {
|
||||||
this.uploader = uploader;
|
this.uploader = uploader;
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ import { FileUploader } from './file-uploader.class';
|
|||||||
export class FileSelectDirective {
|
export class FileSelectDirective {
|
||||||
@Input() public uploader:FileUploader;
|
@Input() public uploader:FileUploader;
|
||||||
|
|
||||||
private element:ElementRef;
|
protected element:ElementRef;
|
||||||
|
|
||||||
public constructor(element:ElementRef) {
|
public constructor(element:ElementRef) {
|
||||||
this.element = element;
|
this.element = element;
|
||||||
@@ -38,7 +38,7 @@ export class FileSelectDirective {
|
|||||||
this.uploader.addToQueue(files, options, filters);
|
this.uploader.addToQueue(files, options, filters);
|
||||||
if (this.isEmptyAfterSelection()) {
|
if (this.isEmptyAfterSelection()) {
|
||||||
// todo
|
// todo
|
||||||
// this.element.nativeElement.properties.value = '';
|
this.element.nativeElement.value = '';
|
||||||
/*this.element.nativeElement
|
/*this.element.nativeElement
|
||||||
.replaceWith(this.element = this.element.nativeElement.clone(true)); // IE fix*/
|
.replaceWith(this.element = this.element.nativeElement.clone(true)); // IE fix*/
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ export interface FileUploaderOptions {
|
|||||||
disableMultipart?:boolean;
|
disableMultipart?:boolean;
|
||||||
itemAlias?: string;
|
itemAlias?: string;
|
||||||
authTokenHeader?: string;
|
authTokenHeader?: string;
|
||||||
|
additionalParameter?:{[key: string]: any};
|
||||||
}
|
}
|
||||||
|
|
||||||
export class FileUploader {
|
export class FileUploader {
|
||||||
@@ -51,7 +52,7 @@ export class FileUploader {
|
|||||||
disableMultipart: false
|
disableMultipart: false
|
||||||
};
|
};
|
||||||
|
|
||||||
private _failFilterIndex:number;
|
protected _failFilterIndex:number;
|
||||||
|
|
||||||
public constructor(options:FileUploaderOptions) {
|
public constructor(options:FileUploaderOptions) {
|
||||||
this.setOptions(options);
|
this.setOptions(options);
|
||||||
@@ -307,6 +308,12 @@ export class FileUploader {
|
|||||||
this._onBuildItemForm(item, sendable);
|
this._onBuildItemForm(item, sendable);
|
||||||
|
|
||||||
sendable.append(item.alias, item._file, item.file.name);
|
sendable.append(item.alias, item._file, item.file.name);
|
||||||
|
|
||||||
|
if (this.options.additionalParameter !== undefined) {
|
||||||
|
Object.keys(this.options.additionalParameter).forEach((key:string) => {
|
||||||
|
sendable.append(key, this.options.additionalParameter[key]);
|
||||||
|
});
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
sendable = item._file;
|
sendable = item._file;
|
||||||
}
|
}
|
||||||
@@ -337,15 +344,16 @@ export class FileUploader {
|
|||||||
};
|
};
|
||||||
xhr.open(item.method, item.url, true);
|
xhr.open(item.method, item.url, true);
|
||||||
xhr.withCredentials = item.withCredentials;
|
xhr.withCredentials = item.withCredentials;
|
||||||
// todo
|
|
||||||
/*item.headers.map((value, name) => {
|
|
||||||
xhr.setRequestHeader(name, value);
|
|
||||||
});*/
|
|
||||||
if (this.options.headers) {
|
if (this.options.headers) {
|
||||||
for (let header of this.options.headers) {
|
for (let header of this.options.headers) {
|
||||||
xhr.setRequestHeader(header.name, header.value);
|
xhr.setRequestHeader(header.name, header.value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (item.headers.length) {
|
||||||
|
for (let header of item.headers) {
|
||||||
|
xhr.setRequestHeader(header.name, header.value);
|
||||||
|
}
|
||||||
|
}
|
||||||
if (this.authToken) {
|
if (this.authToken) {
|
||||||
xhr.setRequestHeader(this.authTokenHeader, this.authToken);
|
xhr.setRequestHeader(this.authTokenHeader, this.authToken);
|
||||||
}
|
}
|
||||||
@@ -353,7 +361,7 @@ export class FileUploader {
|
|||||||
this._render();
|
this._render();
|
||||||
}
|
}
|
||||||
|
|
||||||
private _getTotalProgress(value:number = 0):number {
|
protected _getTotalProgress(value:number = 0):number {
|
||||||
if (this.options.removeAfterUpload) {
|
if (this.options.removeAfterUpload) {
|
||||||
return value;
|
return value;
|
||||||
}
|
}
|
||||||
@@ -364,7 +372,7 @@ export class FileUploader {
|
|||||||
return Math.round(uploaded * ratio + current);
|
return Math.round(uploaded * ratio + current);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _getFilters(filters:FilterFunction[]|string):FilterFunction[] {
|
protected _getFilters(filters:FilterFunction[]|string):FilterFunction[] {
|
||||||
if (!filters) {
|
if (!filters) {
|
||||||
return this.options.filters;
|
return this.options.filters;
|
||||||
}
|
}
|
||||||
@@ -379,20 +387,20 @@ export class FileUploader {
|
|||||||
return this.options.filters;
|
return this.options.filters;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _render():any {
|
protected _render():any {
|
||||||
return void 0;
|
return void 0;
|
||||||
// todo: ?
|
// todo: ?
|
||||||
}
|
}
|
||||||
|
|
||||||
// private _folderFilter(item:FileItem):boolean {
|
// protected _folderFilter(item:FileItem):boolean {
|
||||||
// return !!(item.size || item.type);
|
// return !!(item.size || item.type);
|
||||||
// }
|
// }
|
||||||
|
|
||||||
private _queueLimitFilter():boolean {
|
protected _queueLimitFilter():boolean {
|
||||||
return this.options.queueLimit === undefined || this.queue.length < this.options.queueLimit;
|
return this.options.queueLimit === undefined || this.queue.length < this.options.queueLimit;
|
||||||
}
|
}
|
||||||
|
|
||||||
private _isValidFile(file:FileLikeObject, filters:FilterFunction[], options:FileUploaderOptions):boolean {
|
protected _isValidFile(file:FileLikeObject, filters:FilterFunction[], options:FileUploaderOptions):boolean {
|
||||||
this._failFilterIndex = -1;
|
this._failFilterIndex = -1;
|
||||||
return !filters.length ? true : filters.every((filter:FilterFunction) => {
|
return !filters.length ? true : filters.every((filter:FilterFunction) => {
|
||||||
this._failFilterIndex++;
|
this._failFilterIndex++;
|
||||||
@@ -400,12 +408,12 @@ export class FileUploader {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private _isSuccessCode(status:number):boolean {
|
protected _isSuccessCode(status:number):boolean {
|
||||||
return (status >= 200 && status < 300) || status === 304;
|
return (status >= 200 && status < 300) || status === 304;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
private _transformResponse(response:string, headers:ParsedResponseHeaders):string {
|
protected _transformResponse(response:string, headers:ParsedResponseHeaders):string {
|
||||||
// todo: ?
|
// todo: ?
|
||||||
/*var headersGetter = this._headersGetter(headers);
|
/*var headersGetter = this._headersGetter(headers);
|
||||||
forEach($http.defaults.transformResponse, (transformFn) => {
|
forEach($http.defaults.transformResponse, (transformFn) => {
|
||||||
@@ -415,7 +423,7 @@ export class FileUploader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* tslint:enable */
|
/* tslint:enable */
|
||||||
private _parseHeaders(headers:string):ParsedResponseHeaders {
|
protected _parseHeaders(headers:string):ParsedResponseHeaders {
|
||||||
let parsed:any = {};
|
let parsed:any = {};
|
||||||
let key:any;
|
let key:any;
|
||||||
let val:any;
|
let val:any;
|
||||||
@@ -434,33 +442,33 @@ export class FileUploader {
|
|||||||
return parsed;
|
return parsed;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*private _iframeTransport(item:FileItem) {
|
/*protected _iframeTransport(item:FileItem) {
|
||||||
// todo: implement it later
|
// todo: implement it later
|
||||||
}*/
|
}*/
|
||||||
|
|
||||||
private _onWhenAddingFileFailed(item:FileLikeObject, filter:any, options:any):void {
|
protected _onWhenAddingFileFailed(item:FileLikeObject, filter:any, options:any):void {
|
||||||
this.onWhenAddingFileFailed(item, filter, options);
|
this.onWhenAddingFileFailed(item, filter, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _onAfterAddingFile(item:FileItem):void {
|
protected _onAfterAddingFile(item:FileItem):void {
|
||||||
this.onAfterAddingFile(item);
|
this.onAfterAddingFile(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _onAfterAddingAll(items:any):void {
|
protected _onAfterAddingAll(items:any):void {
|
||||||
this.onAfterAddingAll(items);
|
this.onAfterAddingAll(items);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _onBeforeUploadItem(item:FileItem):void {
|
protected _onBeforeUploadItem(item:FileItem):void {
|
||||||
item._onBeforeUpload();
|
item._onBeforeUpload();
|
||||||
this.onBeforeUploadItem(item);
|
this.onBeforeUploadItem(item);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _onBuildItemForm(item:FileItem, form:any):void {
|
protected _onBuildItemForm(item:FileItem, form:any):void {
|
||||||
item._onBuildForm(form);
|
item._onBuildForm(form);
|
||||||
this.onBuildItemForm(item, form);
|
this.onBuildItemForm(item, form);
|
||||||
}
|
}
|
||||||
|
|
||||||
private _onProgressItem(item:FileItem, progress:any):void {
|
protected _onProgressItem(item:FileItem, progress:any):void {
|
||||||
let total = this._getTotalProgress(progress);
|
let total = this._getTotalProgress(progress);
|
||||||
this.progress = total;
|
this.progress = total;
|
||||||
item._onProgress(progress);
|
item._onProgress(progress);
|
||||||
@@ -470,13 +478,13 @@ export class FileUploader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* tslint:disable */
|
/* tslint:disable */
|
||||||
private _onSuccessItem(item:FileItem, response:string, status:number, headers:ParsedResponseHeaders):void {
|
protected _onSuccessItem(item:FileItem, response:string, status:number, headers:ParsedResponseHeaders):void {
|
||||||
item._onSuccess(response, status, headers);
|
item._onSuccess(response, status, headers);
|
||||||
this.onSuccessItem(item, response, status, headers);
|
this.onSuccessItem(item, response, status, headers);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* tslint:enable */
|
/* tslint:enable */
|
||||||
private _onCancelItem(item:FileItem, response:string, status:number, headers:ParsedResponseHeaders):void {
|
protected _onCancelItem(item:FileItem, response:string, status:number, headers:ParsedResponseHeaders):void {
|
||||||
item._onCancel(response, status, headers);
|
item._onCancel(response, status, headers);
|
||||||
this.onCancelItem(item, response, status, headers);
|
this.onCancelItem(item, response, status, headers);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
export * from './components/file-upload/file-select.directive';
|
export * from './components/file-upload/file-select.directive';
|
||||||
export * from './components/file-upload/file-drop.directive';
|
export * from './components/file-upload/file-drop.directive';
|
||||||
export * from './components/file-upload/file-uploader.class';
|
export * from './components/file-upload/file-uploader.class';
|
||||||
|
export * from './components/file-upload/file-item.class';
|
||||||
|
|
||||||
export { FileUploadModule } from './components/file-upload/file-upload.module';
|
export { FileUploadModule } from './components/file-upload/file-upload.module';
|
||||||
|
|||||||
Reference in New Issue
Block a user