lemo-crm/web/app/components/status-toggle-button.js
Shaun Chyxion 38b9d5610d complete
2017-08-20 11:42:35 +08:00

50 lines
1.7 KiB
JavaScript

import Ember from 'ember';
import BaseComponent from './base-component';
export default BaseComponent.extend({
tagName: 'a',
attributeBindings: ['title', 'data-original-title', 'role', 'data-rel'],
role: 'button',
'data-rel': 'tooltip',
enabledText: 'Enable',
disabledText: 'Disable',
enabledOp: 'enable',
disabledOp: 'disable',
enabled: Ember.computed.alias('model.enabled'),
title: Ember.computed('enabled', function() {
let me = this;
return this.get('enabled') ? me.get('disabledText') : me.get('enabledText');
}),
'data-original-title': Ember.computed.alias('title'),
op: Ember.computed('enabled', function() {
let me = this;
return this.get('enabled') ?
me.get('disabledOp') || me.get('disabledText')
: me.get('enabledOp') || me.get('enabledText');
}),
iconSizeClass: 'bigger-120',
didReceiveAttrs() {
let me = this;
if (me.get('iconOnly')) {
me.set('iconSizeClass', 'bigger-130');
me.set('classNameBindings', ['enabled:orange:light-green']);
}
else {
me.set('classNameBindings',
['enabled:btn-warning:btn-success',
'iconOnly::btn',
'iconOnly::btn-xs']);
}
},
click() {
let me = this;
me.dialog.confirm('Are you sure to ' + me.get('title') + ' row?', () => {
let model = me.get('model');
Ember.set(model, 'enabled', !me.get('enabled'));
let params = me.get('params');
me.get('service').update(params ?
Ember.merge(params, model) : model, true);
});
}
});