import Ember from 'ember'; import uploader from 'ghost/assets/lib/uploader'; export default Ember.Component.extend({ classNames: ['image-uploader', 'js-post-image-upload'], config: Ember.inject.service(), imageSource: Ember.computed('image', function () { return this.get('image') || ''; }), /** * Sets up the uploader on render */ setup: function () { var $this = this.$(), self = this; // this.set('uploaderReference', uploader.call($this, { // editor: true, // fileStorage: this.get('config.fileStorage') // })); $this.on('uploadsuccess', function (event, result) { if (result && result !== '' && result !== 'http://') { self.sendAction('uploaded', result); } }); $this.on('imagecleared', function () { self.sendAction('canceled'); }); }, // removes event listeners from the uploader removeListeners: function () { var $this = this.$(); $this.off(); $this.find('.js-cancel').off(); }, // didInsertElement: function () { // Ember.run.scheduleOnce('afterRender', this, this.setup()); // }, didInsertElement: function () { this.send('initUploader'); }, willDestroyElement: function () { this.removeListeners(); }, actions: { initUploader: function () { var ref, el, self = this; el = this.$(); ref = uploader.call(el, { editor: true, fileStorage: this.get('config.fileStorage') }); el.on('uploadsuccess', function (event, result) { if (result && result !== '' && result !== 'http://') { self.sendAction('uploaded', result); } }); el.on('imagecleared', function () { self.sendAction('canceled'); }); this.sendAction('initUploader', this.get('uploaderReference')); } } });