ui/lib/shared/addon/mixins/upload.js

37 lines
801 B
JavaScript

import Mixin from '@ember/object/mixin';
import { inject as service } from '@ember/service';
import { get } from '@ember/object';
import $ from 'jquery';
export default Mixin.create({
growl: service(),
actions: {
upload() {
$(this.element).find('INPUT[type=file]').click();
},
},
change(event) {
const input = event.target;
if ( input.files && input.files[0] ) {
let file = input.files[0];
const reader = new FileReader();
reader.onerror = (err) => {
get(this, 'growl').fromError(get(err, 'srcElement.error.message'));
};
reader.onload = (event2) => {
const out = event2.target.result;
this.send(get(this, 'uploadAction'), out);
input.value = '';
};
reader.readAsText(file);
}
}
});