73 lines
2.6 KiB
JavaScript
73 lines
2.6 KiB
JavaScript
import Ember from 'ember';
|
|
import BaseComponent from './base-component';
|
|
|
|
export default BaseComponent.extend({
|
|
allowBlank: true,
|
|
actions: {
|
|
doEdit() {
|
|
var me = this;
|
|
me.set('oldValue', me.getFieldValue());
|
|
me.set('isEditing', true)
|
|
Ember.run.later(() => {
|
|
Ember.$('input[type="text"][name="' + me.get('model.id') + '"]').focus();
|
|
}, 128);
|
|
},
|
|
doUpdate() {
|
|
let me = this;
|
|
if (me.get('isUpdating')) {
|
|
Ember.Logger.info('Cell Is Updating, Ignore.');
|
|
return;
|
|
}
|
|
me.set('isUpdating', true);
|
|
let newValue = me.getFieldValue();
|
|
if (me.get('oldValue') !== newValue) {
|
|
if (!me.get('allowBlank') && !newValue) {
|
|
me.get('message').warn('属性不能为空');
|
|
// reset field value
|
|
me.resetValue();
|
|
me.set('isUpdating', false);
|
|
}
|
|
else {
|
|
let service = me.get('service');
|
|
let model = me.get('model');
|
|
let vr = service.updateValidate(model);
|
|
if (vr) {
|
|
Ember.Logger.info('Validate Result: ', vr);
|
|
me.get('message').warn(Object.keys(vr).map((e)=> {
|
|
return vr[e];
|
|
}).reduce((msg, e)=> {
|
|
return (msg ? msg + '<br />' : '') + e.join('<br />');
|
|
}, ''));
|
|
// reset field value
|
|
me.resetValue();
|
|
me.set('isUpdating', false);
|
|
}
|
|
else {
|
|
me.dialog.confirm('Are you sure to update?', () => {
|
|
service.update(model, true);
|
|
me.set('isUpdating', false);
|
|
},
|
|
() => {
|
|
// reset field value
|
|
me.resetValue();
|
|
me.set('isUpdating', false);
|
|
});
|
|
}
|
|
}
|
|
}
|
|
else {
|
|
Ember.Logger.info('Field Value Not Changed.')
|
|
me.set('isUpdating', false);
|
|
}
|
|
me.set('isEditing', false);
|
|
}
|
|
},
|
|
getFieldValue() {
|
|
return this.get('model.' + this.get('field'));
|
|
},
|
|
resetValue() {
|
|
let me = this;
|
|
me.set('model.' + me.get('field'), me.get('oldValue'));
|
|
}
|
|
});
|