github.com/Ilhicas/nomad@v1.0.4-0.20210304152020-e86851182bc3/ui/app/components/fs/browser.js (about) 1 import Component from '@ember/component'; 2 import { computed } from '@ember/object'; 3 import { filterBy } from '@ember/object/computed'; 4 import { tagName } from '@ember-decorators/component'; 5 import classic from 'ember-classic-decorator'; 6 7 @classic 8 @tagName('') 9 export default class Browser extends Component { 10 model = null; 11 12 @computed('model.allocation') 13 get allocation() { 14 if (this.model.allocation) { 15 return this.model.allocation; 16 } else { 17 return this.model; 18 } 19 } 20 21 @computed('model.allocation') 22 get taskState() { 23 if (this.model.allocation) { 24 return this.model; 25 } 26 27 return undefined; 28 } 29 30 @computed('taskState') 31 get type() { 32 if (this.taskState) { 33 return 'task'; 34 } else { 35 return 'allocation'; 36 } 37 } 38 39 @filterBy('directoryEntries', 'IsDir') directories; 40 @filterBy('directoryEntries', 'IsDir', false) files; 41 42 @computed('directories', 'directoryEntries.[]', 'files', 'sortDescending', 'sortProperty') 43 get sortedDirectoryEntries() { 44 const sortProperty = this.sortProperty; 45 46 const directorySortProperty = sortProperty === 'Size' ? 'Name' : sortProperty; 47 48 const sortedDirectories = this.directories.sortBy(directorySortProperty); 49 const sortedFiles = this.files.sortBy(sortProperty); 50 51 const sortedDirectoryEntries = sortedDirectories.concat(sortedFiles); 52 53 if (this.sortDescending) { 54 return sortedDirectoryEntries.reverse(); 55 } else { 56 return sortedDirectoryEntries; 57 } 58 } 59 }