mirror of https://github.com/rancher/ui.git
104 lines
2.4 KiB
JavaScript
104 lines
2.4 KiB
JavaScript
import { get, set } from '@ember/object';
|
|
import Component from '@ember/component';
|
|
import layout from './template';
|
|
|
|
export default Component.extend({
|
|
layout,
|
|
|
|
// Inputs
|
|
instance: null,
|
|
service: null,
|
|
errors: null,
|
|
editing: null,
|
|
|
|
initHostAliasesArray: [],
|
|
initOptionsArray: [],
|
|
|
|
classNames: ['accordion-wrapper'],
|
|
|
|
init() {
|
|
this._super(...arguments);
|
|
this.initHostAliases();
|
|
this.initOptions();
|
|
},
|
|
|
|
actions: {
|
|
hostAliasesChanged(hostAliases) {
|
|
const out = [];
|
|
|
|
hostAliases.filter((alias) => alias.value && alias.key).forEach((alias) => {
|
|
out.push({
|
|
hostnames: [alias.value],
|
|
ip: alias.key,
|
|
});
|
|
});
|
|
set(this, 'service.hostAliases', out);
|
|
},
|
|
|
|
optionsChanged(options) {
|
|
const out = [];
|
|
|
|
options.filter((option) => get(option, 'key') && get(option, 'value')).forEach((option) => {
|
|
out.push({
|
|
name: get(option, 'key'),
|
|
value: get(option, 'value'),
|
|
});
|
|
});
|
|
|
|
const dnsConfig = get(this, 'service.dnsConfig');
|
|
|
|
if ( !dnsConfig ) {
|
|
set(this, 'service.dnsConfig', { options: out });
|
|
} else {
|
|
set(this, 'service.dnsConfig.options', out);
|
|
}
|
|
},
|
|
|
|
updateNameservers(nameservers) {
|
|
const dnsConfig = get(this, 'service.dnsConfig');
|
|
|
|
if ( !dnsConfig ) {
|
|
set(this, 'service.dnsConfig', { nameservers });
|
|
} else {
|
|
set(this, 'service.dnsConfig.nameservers', nameservers);
|
|
}
|
|
},
|
|
|
|
updateSearches(searches) {
|
|
const dnsConfig = get(this, 'service.dnsConfig');
|
|
|
|
if ( !dnsConfig ) {
|
|
set(this, 'service.dnsConfig', { searches });
|
|
} else {
|
|
set(this, 'service.dnsConfig.searches', searches);
|
|
}
|
|
}
|
|
},
|
|
|
|
initHostAliases() {
|
|
const aliases = get(this, 'service.hostAliases');
|
|
|
|
set(this, 'initHostAliasesArray', []);
|
|
(aliases || []).forEach((alias) => {
|
|
(alias.hostnames || []).forEach((hostname) => {
|
|
this.initHostAliasesArray.push({
|
|
key: alias.ip,
|
|
value: hostname,
|
|
});
|
|
})
|
|
});
|
|
},
|
|
|
|
initOptions() {
|
|
const options = get(this, 'service.dnsConfig.options');
|
|
|
|
set(this, 'initOptionsArray', []);
|
|
(options || []).forEach((option) => {
|
|
this.initOptionsArray.push({
|
|
key: get(option, 'name'),
|
|
value: get(option, 'value'),
|
|
});
|
|
});
|
|
},
|
|
});
|