From 65dcb90f05e50a04cda50cddd154c280d7863272 Mon Sep 17 00:00:00 2001 From: Alexander Zhukov Date: Sat, 21 Jan 2017 13:11:18 +0300 Subject: [PATCH] fix(picture uploader): ngx-uploader integration --- .../components/layouts/layouts.component.ts | 4 ++- .../baPictureUploader.component.ts | 34 ++++++------------- .../baPictureUploader/baPictureUploader.html | 9 +++-- src/app/theme/nga.module.ts | 2 ++ 4 files changed, 21 insertions(+), 28 deletions(-) diff --git a/src/app/pages/forms/components/layouts/layouts.component.ts b/src/app/pages/forms/components/layouts/layouts.component.ts index bf13d883..a25ed827 100644 --- a/src/app/pages/forms/components/layouts/layouts.component.ts +++ b/src/app/pages/forms/components/layouts/layouts.component.ts @@ -1,4 +1,5 @@ import {Component, ViewEncapsulation} from '@angular/core'; +import { NgUploaderOptions } from 'ngx-uploader'; @Component({ selector: 'layouts', @@ -12,8 +13,9 @@ export class Layouts { public profile:any = { picture: 'assets/img/app/profile/Nasta.png' }; - public uploaderOptions:any = { + public uploaderOptions:NgUploaderOptions = { // url: 'http://website.com/upload' + url: '', }; constructor() { diff --git a/src/app/theme/components/baPictureUploader/baPictureUploader.component.ts b/src/app/theme/components/baPictureUploader/baPictureUploader.component.ts index 6fde2966..28fd5b4e 100644 --- a/src/app/theme/components/baPictureUploader/baPictureUploader.component.ts +++ b/src/app/theme/components/baPictureUploader/baPictureUploader.component.ts @@ -1,54 +1,40 @@ import {Component, ViewChild, Input, Output, EventEmitter, ElementRef, Renderer} from '@angular/core'; -import {Ng2Uploader} from 'ng2-uploader/ng2-uploader'; +import { NgUploaderOptions } from 'ngx-uploader'; @Component({ selector: 'ba-picture-uploader', styleUrls: ['./baPictureUploader.scss'], templateUrl: './baPictureUploader.html', - providers: [Ng2Uploader] }) export class BaPictureUploader { @Input() defaultPicture:string = ''; @Input() picture:string = ''; - @Input() uploaderOptions:any = {}; + @Input() uploaderOptions:NgUploaderOptions = { url: '' }; @Input() canDelete:boolean = true; - onUpload:EventEmitter = new EventEmitter(); - onUploadCompleted:EventEmitter = new EventEmitter(); + @Output() onUpload = new EventEmitter(); + @Output() onUploadCompleted = new EventEmitter(); @ViewChild('fileUpload') public _fileUpload:ElementRef; - public uploadInProgress:boolean = false; + public uploadInProgress:boolean; - constructor(private renderer:Renderer, protected _uploader:Ng2Uploader) { + constructor(private renderer: Renderer) { } - public ngOnInit():void { - if (this._canUploadOnServer()) { - setTimeout(() => { - this._uploader.setOptions(this.uploaderOptions); - }); - - this._uploader._emitter.subscribe((data) => { - this._onUpload(data); - }); - } else { - console.warn('Please specify url parameter to be able to upload the file on the back-end'); - } - } - - public onFiles():void { + beforeUpload(uploadingFile): void { let files = this._fileUpload.nativeElement.files; if (files.length) { const file = files[0]; this._changePicture(file); - if (this._canUploadOnServer()) { + if (!this._canUploadOnServer()) { + uploadingFile.setAbort(); + } else { this.uploadInProgress = true; - this._uploader.addFilesToQueue(files); } } } diff --git a/src/app/theme/components/baPictureUploader/baPictureUploader.html b/src/app/theme/components/baPictureUploader/baPictureUploader.html index 205f448d..c1f97155 100644 --- a/src/app/theme/components/baPictureUploader/baPictureUploader.html +++ b/src/app/theme/components/baPictureUploader/baPictureUploader.html @@ -1,7 +1,7 @@
- - + +
@@ -12,5 +12,8 @@
Change profile Picture - +
diff --git a/src/app/theme/nga.module.ts b/src/app/theme/nga.module.ts index 9dacdc35..06c85223 100644 --- a/src/app/theme/nga.module.ts +++ b/src/app/theme/nga.module.ts @@ -2,6 +2,7 @@ import { NgModule, ModuleWithProviders } from '@angular/core'; import { CommonModule } from '@angular/common'; import { ReactiveFormsModule, FormsModule } from '@angular/forms'; import { RouterModule } from '@angular/router'; +import { NgUploaderModule } from 'ngx-uploader'; import { BaThemeConfig @@ -107,6 +108,7 @@ const NGA_VALIDATORS = [ RouterModule, FormsModule, ReactiveFormsModule, + NgUploaderModule, ], exports: [ ...NGA_PIPES,