datahub/wherehows-web/app/components/dataset-table-column.js
2017-07-10 09:54:18 -07:00

40 lines
1.1 KiB
JavaScript

import Ember from 'ember';
const {
Component,
computed
} = Ember;
export default Component.extend({
tagName: 'th',
classNameBindings: ['isColumnActive'],
columnName: '',
sortColumnWithName: '',
sortDirection: null,
isColumnActive: computed('sortColumnWithName', 'columnName', function () {
const {sortColumnWithName, columnName} = this.getProperties('sortColumnWithName', 'columnName');
return sortColumnWithName && sortColumnWithName === columnName;
}),
click() {
const {
columnName,
sortDirection,
isColumnActive
} = this.getProperties('columnName', 'sortDirection', 'isColumnActive');
if (columnName) {
let updatedSortDirection;
// if this column is not active, default sort direction to ascending, else toggle sort direction
if (!isColumnActive) {
updatedSortDirection = 'asc';
} else {
updatedSortDirection = sortDirection === 'asc' ? 'desc' : 'asc';
}
this.get('sortDidChange')(columnName, updatedSortDirection);
this.set('sortDirection', updatedSortDirection);
}
}
});