51 lines
1.7 KiB
JavaScript
51 lines
1.7 KiB
JavaScript
import { computed } from '@ember/object';
|
|
import { alias } from '@ember/object/computed';
|
|
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');
|
|
Ember.set(model, 'enabled', !me.get('enabled'));
|
|
let params = me.get('params');
|
|
me.get('service').update(params ?
|
|
Ember.merge(params, model) : model, true);
|
|
});
|
|
}
|
|
});
|