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

     1  import Ember from 'ember';
     2  
     3  const { Controller, inject, observer, run } = Ember;
     4  
     5  export default Controller.extend({
     6    system: inject.service(),
     7  
     8    queryParams: {
     9      jobNamespace: 'namespace',
    10    },
    11  
    12    isForbidden: false,
    13  
    14    jobNamespace: 'default',
    15  
    16    // The namespace query param should act as an alias to the system active namespace.
    17    // But query param defaults can't be CPs: https://github.com/emberjs/ember.js/issues/9819
    18    syncNamespaceService: forwardNamespace('jobNamespace', 'system.activeNamespace'),
    19    syncNamespaceParam: forwardNamespace('system.activeNamespace', 'jobNamespace'),
    20  
    21    actions: {
    22      refreshRoute() {
    23        return true;
    24      },
    25    },
    26  });
    27  
    28  function forwardNamespace(source, destination) {
    29    return observer(source, `${source}.id`, function() {
    30      const newNamespace = this.get(`${source}.id`) || this.get(source);
    31      const currentNamespace = this.get(`${destination}.id`) || this.get(destination);
    32      const bothAreDefault =
    33        (currentNamespace == undefined || currentNamespace === 'default') &&
    34        (newNamespace == undefined || newNamespace === 'default');
    35  
    36      if (currentNamespace !== newNamespace && !bothAreDefault) {
    37        this.set(destination, newNamespace);
    38        run.next(() => {
    39          this.send('refreshRoute');
    40        });
    41      }
    42    });
    43  }