47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
import Ember from 'ember';
|
|
import BaseComponentMixin from '../mixins/components/base-component';
|
|
|
|
export default Ember.Component.extend(BaseComponentMixin, {
|
|
tagName: 'th',
|
|
order: null,
|
|
sorting: Ember.computed.none('order'),
|
|
asc: Ember.computed.equal('order', 'asc'),
|
|
desc: Ember.computed.equal('order', 'desc'),
|
|
classNameBindings: ['asc:sorting_asc', 'desc:sorting_desc', 'sorting:sorting'],
|
|
didInsertElement() {
|
|
// this.$().tooltip('Close Me');
|
|
},
|
|
click() {
|
|
let me = this;
|
|
let name = me.get('name');
|
|
if (!name) {
|
|
Ember.Logger.error('Sotable Header No Name Given.');
|
|
return;
|
|
}
|
|
|
|
if (me.get('order') === 'asc') {
|
|
me.set('order', 'desc');
|
|
}
|
|
else {
|
|
me.set('order', 'asc');
|
|
}
|
|
let sorters = null;
|
|
let strSorters = me.get('route.controller.sorters');
|
|
if (strSorters) {
|
|
sorters = JSON.parse(strSorters);
|
|
}
|
|
else {
|
|
sorters = [];
|
|
}
|
|
|
|
if (sorters.length) {
|
|
sorters = sorters.filter(sorter => !sorter.hasOwnProperty(name));
|
|
}
|
|
let sorter = {};
|
|
sorter[name] = me.get('order');
|
|
// prepend sort
|
|
sorters.unshift(sorter);
|
|
me.set('route.controller.sorters', JSON.stringify(sorters));
|
|
}
|
|
});
|