lemo-crm/web/app/components/sortable-th.js
Shaun Chyxion 62acbd29ae add sort
2017-06-27 23:42:05 +08:00

48 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'],
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]
// prepend sort
sorters.unshift({
prop: name,
dir: me.get('order')
});
me.set('route.controller.sorters', JSON.stringify(sorters));
}
});