mirror of https://github.com/rancher/ui.git
68 lines
1.5 KiB
JavaScript
68 lines
1.5 KiB
JavaScript
import { get, set } from '@ember/object';
|
|
import { resolve, reject } from 'rsvp';
|
|
import Component from '@ember/component';
|
|
import ViewNewEdit from 'shared/mixins/view-new-edit';
|
|
import layout from './template';
|
|
|
|
export default Component.extend(ViewNewEdit, {
|
|
layout,
|
|
model: null,
|
|
|
|
titleKey: 'newSecret.title',
|
|
|
|
scope: 'project',
|
|
namespace: null,
|
|
|
|
actions: {
|
|
updateData(map) {
|
|
set(this, 'primaryResource.data', map);
|
|
},
|
|
|
|
cancel() {
|
|
this.sendAction('cancel');
|
|
},
|
|
},
|
|
|
|
doSave() {
|
|
let mode = get(this, 'mode');
|
|
let scope = get(this, 'scope');
|
|
let pr = get(this, 'primaryResource');
|
|
let ns = get(this, 'namespace');
|
|
|
|
if ( mode === 'edit' || scope === 'project' ) {
|
|
return this._super(...arguments);
|
|
}
|
|
|
|
let promise = resolve();
|
|
|
|
// Convert to a namespacedSecret and create the NS as needed
|
|
if ( ns ) {
|
|
let obj = pr.serialize();
|
|
obj.type = 'namespacedSecret';
|
|
pr = get(this,'store').createRecord(obj);
|
|
set(this,'primaryResource',pr);
|
|
|
|
if ( get(ns, 'id') ) {
|
|
set(pr, 'namespaceId', get(ns, 'id'));
|
|
} else if ( ns ) {
|
|
promise = ns.save().then((newNs) => {
|
|
set(pr, 'namespaceId', get(newNs, 'id'));
|
|
return newNs.waitForState('active');
|
|
});
|
|
} else {
|
|
return reject('No namespace specified');
|
|
}
|
|
}
|
|
|
|
let self = this;
|
|
let sup = self._super;
|
|
return promise.then(() => {
|
|
return sup.apply(self,arguments);
|
|
});
|
|
},
|
|
|
|
doneSaving() {
|
|
this.sendAction('cancel');
|
|
},
|
|
});
|