yoqw/web/cms/app/components/form-input.js
2020-09-19 22:26:57 +08:00

60 lines
2.1 KiB
JavaScript

import Ember from 'ember';
import BaseFormInput from './form-field';
import { alias, equal } from '@ember/object/computed';
import $ from 'jquery'
export default BaseFormInput.extend({
type: 'text',
isHidden: equal('type', 'hidden'),
imageUrl: alias('image-url'),
labelClass: alias('label-class'),
inputClass: alias('input-class'),
classNameBindings: ['isHidden:hidden'],
rows: 8,
droppable: true,
thumbnail: false,
blacklist: 'exe|php|jsp',
didReceiveAttrs() {
const me = this;
me._super(...arguments);
let isFile = me.get('type') === 'file';
!me.get('input-class') &&
me.set('input-class', isFile ? 'col-xs-3' : 'col-xs-12 col-sm-5');
let image = me.get('image');
if (isFile && image) {
me.set('imageUrl', me.get('model.' + image));
}
},
didInsertElement() {
let me = this;
me._super(...arguments);
['file', 'image'].includes(me.get('type')) &&
$(me.element).find('input[type=file]').ace_file_input({
no_file: 'No File Choosed...',
btn_choose: 'Choose',
btn_change: 'Change',
droppable: me.get('droppable'),
before_change: function(files, dropped) {
console.log('File input, before change: ', files, dropped);
const cb = me.get('before-file-change');
cb && cb(files, me.getVal(), dropped);
const filename = files[0].name;
console.log('Before file [' + filename + '] changed.');
me.setVal(filename);
return true;
},
before_remove: function() {
const files = $(this).prop('files');
console.log('File input, before files removed: ', files);
const cb = me.get('before-file-remove');
cb && cb(files);
me.setVal(null);
return true;
},
thumbnail: me.get('thumbnail'), // false | true | large
blacklist: me.get('blacklist')
});
}
});