ui/app/containers/run/controller.js

73 lines
1.8 KiB
JavaScript

import { inject as service } from '@ember/service';
import { get, set } from '@ember/object';
import { alias } from '@ember/object/computed';
import Controller from '@ember/controller';
export default Controller.extend({
growl: service(),
scope: service(),
modalService: service('modal'),
queryParams: ['namespaceId', 'workloadId', 'podId', 'addSidekick', 'upgrade', 'launchConfigIndex'],
namespaceId: null,
serviceId: null,
containerId: null,
addSidekick: null,
upgrade: false,
deleting: false,
dataMap: alias('model.dataMap'),
actions: {
transitionOut() {
this.transitionToRoute('containers.index', get(this, 'scope.currentProject.id'));
},
done() {
this.send('transitionOut');
},
cancel() {
this.send('transitionOut');
},
promptRemove(idx) {
let slc = get(this, 'dataMap.workload.secondaryLaunchConfigs').objectAt(idx);
let resources = [{
cb: () => {
this.removeSidekick(idx)
},
displayName: get(slc, 'name'),
}];
get(this, 'modalService').toggleModal('confirm-delete', {
resources,
showProtip: false
});
},
},
removeSidekick(idx) {
let workload = get(this, 'dataMap.workload').clone();
set(workload, 'completeLaunchConfigs', true);
set(workload, 'completeUpdate', true);
let slcs = get(workload, 'secondaryLaunchConfigs');
slcs.removeAt(idx);
const containers = [get(workload, 'containers.firstObject')];
containers.pushObjects(slcs);
set(workload, 'containers', containers)
set(this, 'deleting', true);
workload.save().then(() => {
this.send('done');
set(this, 'deleting', false);
})
.catch((err) => {
get(this, 'growl').fromError(err);
set(this, 'deleting', false);
});
},
});