ui/lib/shared/addon/components/modal-save-rke-template/component.js

63 lines
1.7 KiB
JavaScript

import Component from '@ember/component';
import ModalBase from 'shared/mixins/modal-base';
import layout from './template';
import { inject as service } from '@ember/service';
import { computed, set } from '@ember/object';
import { alias } from '@ember/object/computed';
import { isEmpty } from '@ember/utils';
const DEFAULT_REV_NAME = 'v1';
export default Component.extend(ModalBase, {
globalStore: service(),
growl: service(),
modalService: service('modal'),
router: service(),
layout,
classNames: ['modal-container', 'medium-modal'],
clusterTemplateName: null,
clusterTemplateRevisionName: null,
cluster: alias('modalService.modalOpts.cluster'),
init() {
this._super(...arguments);
set(this, 'clusterTemplateRevisionName', DEFAULT_REV_NAME);
},
actions: {
save() {
const {
cluster,
clusterTemplateName,
clusterTemplateRevisionName,
} = this;
return cluster.doAction('saveAsTemplate', {
clusterTemplateName,
clusterTemplateRevisionName,
}).then(() => {
return this.cluster.waitForClusterTemplateToBeAttached().then(() => {
return this.router.transitionTo('global-admin.cluster-templates.detail', this.cluster.clusterTemplateRevisionId);
});
}).catch((err) => {
return this.growl.fromError(err);
});
},
},
saveDisabled: computed('clusterTemplateName', 'clusterTemplateRevisionName', function() {
const { clusterTemplateName, clusterTemplateRevisionName } = this;
if (isEmpty(clusterTemplateName) && isEmpty(clusterTemplateRevisionName)) {
return true;
}
return false;
}),
});