mirror of https://github.com/rancher/ui.git
102 lines
2.6 KiB
JavaScript
102 lines
2.6 KiB
JavaScript
import Component from '@ember/component';
|
|
import layout from './template';
|
|
import {
|
|
get,
|
|
set,
|
|
setProperties,
|
|
observer
|
|
} from '@ember/object';
|
|
import { alias, gt } from '@ember/object/computed';
|
|
import { inject as service } from '@ember/service';
|
|
|
|
export default Component.extend({
|
|
globalStore: service(),
|
|
|
|
layout,
|
|
|
|
configName: 'rancherKubernetesEngineConfig',
|
|
cluster: null,
|
|
config: null,
|
|
editing: true,
|
|
urlInvalid: null,
|
|
urlWarning: null,
|
|
urlError: null,
|
|
|
|
clusterTemplateCreate: false,
|
|
enablePrivateRegistry: false,
|
|
privateRegistry: null,
|
|
clusterTemplateRevision: null,
|
|
applyClusterTemplate: null,
|
|
privateRegistries: alias('config.privateRegistries'),
|
|
multipleRegistries: gt('privateRegistries.length', 1),
|
|
|
|
init() {
|
|
this._super(...arguments);
|
|
|
|
set(this, 'config', get(this, `cluster.${ get(this, 'configName') }`));
|
|
|
|
if (this.config.privateRegistries) {
|
|
if ( this.config.privateRegistries.length >= 1 ) {
|
|
setProperties(this, {
|
|
privateRegistry: get(this, 'config.privateRegistries.firstObject'),
|
|
enablePrivateRegistry: true,
|
|
});
|
|
}
|
|
}
|
|
},
|
|
|
|
actions: {
|
|
addRegistry(isDefault = true) {
|
|
this.addRegistry(set(this, 'privateRegistry', this.newPrivateRegistry('privateRegistry', isDefault)));
|
|
},
|
|
|
|
removeRegistry(registry) {
|
|
let match = null;
|
|
|
|
if (this.multipleRegistries) {
|
|
let prWithout = this.privateRegistries.without(registry);
|
|
|
|
match = prWithout.length >= 1 ? prWithout.firstObject : null;
|
|
}
|
|
|
|
set(this, 'privateRegistry', match)
|
|
|
|
this.removeRegistry(registry);
|
|
},
|
|
},
|
|
|
|
defaultSet: observer('privateRegistries.@each.{isDefault}', function() {
|
|
const { privateRegistries } = this;
|
|
|
|
if (privateRegistries && privateRegistries.findBy('isDefault', true)) {
|
|
set(this, 'hasDefault', true);
|
|
} else {
|
|
set(this, 'hasDefault', false);
|
|
}
|
|
}),
|
|
|
|
enablePrivateRegistryChanged: observer('enablePrivateRegistry', function() {
|
|
if (this.enablePrivateRegistry) {
|
|
this.send('addRegistry');
|
|
} else {
|
|
this.send('removeRegistry', this.privateRegistry);
|
|
}
|
|
}),
|
|
|
|
newPrivateRegistry(registryType = 'privateRegistry', isDefault = false) {
|
|
return get(this, 'globalStore').createRecord({
|
|
isDefault,
|
|
type: registryType,
|
|
});
|
|
},
|
|
|
|
addRegistry() {
|
|
throw new Error('addRegistry action is required!');
|
|
},
|
|
|
|
removeRegistry() {
|
|
throw new Error('removeRegistry action is required!');
|
|
},
|
|
|
|
});
|