import { computed, set } from '@ember/object'; import { alias } from '@ember/object/computed'; import { merge } from '@ember/polyfills'; import BaseComponent from './basic-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: alias('model.enabled'), title: computed('enabled', function() { let me = this; return this.get('enabled') ? me.get('disabledText') : me.get('enabledText'); }), 'data-original-title': alias('title'), op: 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'); set(model, 'enabled', !me.get('enabled')); let params = me.get('params'); me.get('service').update(params ? merge(params, model) : model, true); }); } });