github.com/blixtra/nomad@v0.7.2-0.20171221000451-da9a1d7bb050/ui/app/controllers/jobs/index.js (about)

     1  import Ember from 'ember';
     2  import Sortable from 'nomad-ui/mixins/sortable';
     3  import Searchable from 'nomad-ui/mixins/searchable';
     4  
     5  const { Controller, computed, inject } = Ember;
     6  
     7  export default Controller.extend(Sortable, Searchable, {
     8    system: inject.service(),
     9    jobsController: inject.controller('jobs'),
    10  
    11    isForbidden: computed.alias('jobsController.isForbidden'),
    12  
    13    pendingJobs: computed.filterBy('model', 'status', 'pending'),
    14    runningJobs: computed.filterBy('model', 'status', 'running'),
    15    deadJobs: computed.filterBy('model', 'status', 'dead'),
    16  
    17    queryParams: {
    18      currentPage: 'page',
    19      searchTerm: 'search',
    20      sortProperty: 'sort',
    21      sortDescending: 'desc',
    22    },
    23  
    24    currentPage: 1,
    25    pageSize: 10,
    26  
    27    sortProperty: 'modifyIndex',
    28    sortDescending: true,
    29  
    30    searchProps: computed(() => ['id', 'name']),
    31  
    32    filteredJobs: computed(
    33      'model.[]',
    34      'system.activeNamespace',
    35      'system.namespaces.length',
    36      function() {
    37        if (this.get('system.namespaces.length')) {
    38          return this.get('model').filterBy('namespace.id', this.get('system.activeNamespace.id'));
    39        } else {
    40          return this.get('model');
    41        }
    42      }
    43    ),
    44  
    45    listToSort: computed.alias('filteredJobs'),
    46    listToSearch: computed.alias('listSorted'),
    47    sortedJobs: computed.alias('listSearched'),
    48  
    49    isShowingDeploymentDetails: false,
    50  
    51    actions: {
    52      gotoJob(job) {
    53        this.transitionToRoute('jobs.job', job);
    54      },
    55  
    56      refresh() {
    57        this.send('refreshRoute');
    58      },
    59    },
    60  });