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  }