open-nomad/ui/app/mixins/sortable.js
Michael Lange dc20fc88b9 Unload all records when a token is set or cleared
This guarantees no privileged data is shown to unprivileged credentials
2017-10-18 16:42:08 -07:00

34 lines
827 B
JavaScript

import Ember from 'ember';
const { Mixin, computed } = Ember;
/**
Sortable mixin
Simple sorting behavior for a list of objects.
Properties to override:
- sortProperty: the property to sort by
- sortDescending: when true, the list is reversed
- listToSort: the list of objects to sort
Properties provided:
- listSorted: a copy of listToSort that has been sorted
*/
export default Mixin.create({
// Override in mixin consumer
sortProperty: null,
sortDescending: true,
listToSort: computed(() => []),
listSorted: computed('listToSort.[]', 'sortProperty', 'sortDescending', function() {
const sorted = this.get('listToSort')
.compact()
.sortBy(this.get('sortProperty'));
if (this.get('sortDescending')) {
return sorted.reverse();
}
return sorted;
}),
});