mirror of https://github.com/rancher/ui.git
65 lines
1.9 KiB
JavaScript
65 lines
1.9 KiB
JavaScript
import { next } from '@ember/runloop';
|
|
import EmberObject, { get } from '@ember/object';
|
|
import { inject as service } from '@ember/service';
|
|
import Route from '@ember/routing/route';
|
|
import { all as PromiseAll } from 'rsvp';
|
|
import Preload from 'ui/mixins/preload';
|
|
|
|
export default Route.extend(Preload,{
|
|
access: service(),
|
|
scope: service(),
|
|
globalStore: service(),
|
|
|
|
model(params, transition) {
|
|
const isPopup = this.controllerFor('application').get('isPopup');
|
|
|
|
return get(this, 'globalStore').find('project', params.project_id).then((project) => {
|
|
return get(this,'scope').startSwitchToProject(project, !isPopup).then(() => {
|
|
return PromiseAll([
|
|
this.loadSchemas('clusterStore'),
|
|
this.loadSchemas('store'),
|
|
]).then(() => {
|
|
const out = EmberObject.create({project});
|
|
if ( isPopup ) {
|
|
return out;
|
|
} else {
|
|
return PromiseAll([
|
|
this.preload('namespace','clusterStore'),
|
|
this.preload('pod'),
|
|
this.preload('workload'),
|
|
this.preload('dnsRecord'),
|
|
this.preload('secret'),
|
|
this.preload('service'),
|
|
this.preload('namespacedSecret'),
|
|
]).then(() => {
|
|
return out;
|
|
})
|
|
}
|
|
});
|
|
});
|
|
}).catch((err) => {
|
|
return this.loadingError(err, transition);
|
|
});
|
|
},
|
|
|
|
setupController(controller, model) {
|
|
this._super(...arguments);
|
|
get(this, 'scope').finishSwitchToProject(get(model,'project'));
|
|
},
|
|
|
|
actions: {
|
|
toggleGrouping() {
|
|
let choices = ['none','service','stack'];
|
|
let cur = this.get('controller.group');
|
|
let neu = choices[((choices.indexOf(cur)+1) % choices.length)];
|
|
next(() => {
|
|
this.set('controller.group', neu);
|
|
});
|
|
},
|
|
},
|
|
|
|
shortcuts: {
|
|
'g': 'toggleGrouping',
|
|
}
|
|
});
|