ui/lib/shared/addon/components/modal-add-cluster/component.js

62 lines
1.5 KiB
JavaScript

import Component from '@ember/component';
import ModalBase from 'shared/mixins/modal-base';
import layout from './template';
import { get, set } from '@ember/object';
import { alias } from '@ember/object/computed';
export default Component.extend(ModalBase, {
layout,
classNames: ['small-modal'],
templates: alias('modalOpts.templates'),
hosts: alias('modalOpts.hosts'),
drivers: alias('modalOpts.drivers'),
driver: 'digitalocean',
mode: null,
launchMachineTemplate: null,
launchHostDriver: null,
launchHost: null,
addHostModel: null,
clusterNodes: null,
init() {
this._super(...arguments);
set(this, 'mode', 'machineTemplate');
set(this, 'clusterNodes', []);
},
actions: {
completed() {
this.get('modalService').toggleModal();
},
launch(template) {
let driver = get(this, 'drivers').findBy('name', get(template, 'driver'));
this.setProperties({
mode: 'launch',
launchMachineTemplate: template,
launchHostDriver: driver,
clusterNodes: get(this, 'clusterNodes'),
});
},
goBack() {
if (this.get('clusterNodes')) {
this.get('modalOpts.cluster.nodes').pushObjects(this.get('clusterNodes'));
}
this.get('modalService').toggleModal();
},
add() {
this.setProperties({
mode: 'add',
addHostModel: {
model: {
availableDrivers: get(this, 'drivers'),
}
},
clusterNodes: get(this, 'clusterNodes'),
});
},
},
});