diff --git a/app/styles/components/_code.scss b/app/styles/components/_code.scss index 0269ee56f..3f997aab9 100644 --- a/app/styles/components/_code.scss +++ b/app/styles/components/_code.scss @@ -66,3 +66,13 @@ pre { color: #000; } } + +.codemirror-container { + textarea { + // We can't just use display: none or visibility hidden because then the + // text area can't receive focus which prevents the user from editing. + height: 0; + width: 0; + padding: 0; + } +} \ No newline at end of file diff --git a/lib/global-admin/addon/components/cru-cloud-credential/template.hbs b/lib/global-admin/addon/components/cru-cloud-credential/template.hbs index fc9a9dd5c..93f0c6cf4 100644 --- a/lib/global-admin/addon/components/cru-cloud-credential/template.hbs +++ b/lib/global-admin/addon/components/cru-cloud-credential/template.hbs @@ -169,9 +169,9 @@ - {{input - type="text" - class="form-control" + {{input-url + classNames="form-control" + id="server-url" value=config.vcenter placeholder=(t "nodeDriver.vmwarevsphere.vcenter.placeholder") }} diff --git a/lib/nodes/addon/components/driver-vmwarevsphere/component.js b/lib/nodes/addon/components/driver-vmwarevsphere/component.js index b2b34ebed..04d19bf61 100644 --- a/lib/nodes/addon/components/driver-vmwarevsphere/component.js +++ b/lib/nodes/addon/components/driver-vmwarevsphere/component.js @@ -1,5 +1,7 @@ import { alias } from '@ember/object/computed'; -import { get, set, computed, observer } from '@ember/object'; +import { + get, set, setProperties, computed, observer +} from '@ember/object'; import Component from '@ember/component'; import NodeDriver from 'shared/mixins/node-driver'; import layout from './template'; @@ -173,6 +175,9 @@ export default Component.extend(NodeDriver, { const clearKey = value ? 'config.datastore' : 'config.datastoreCluster'; set(this, clearKey, ''); + }, + updateCloudConfig(value) { + set(this, 'config.cloudConfig', value); } }, @@ -350,6 +355,7 @@ export default Component.extend(NodeDriver, { tag: [], customAttribute: [], cfgparam: ['disk.enableUUID=TRUE'], + cloudConfig: '#cloud-config\n\n', boot2dockerUrl: iso, datacenter: null, vappIpprotocol: initialVAppOptions.vappIpprotocol, @@ -450,11 +456,17 @@ export default Component.extend(NodeDriver, { set(this, 'config.customAttribute', configCustomAttribute); - const clearKey = get(this, 'config.useDataStoreCluster') + const datastoreClearKey = get(this, 'config.useDataStoreCluster') ? 'config.datastore' : 'config.datastoreCluster'; + const cloudClearKey = get(this, 'showRancherOsIso') + ? 'config.cloudConfig' + : 'config.cloudinit'; - set(this, clearKey, ''); + setProperties(this, { + [datastoreClearKey]: '', + [cloudClearKey]: '' + }); const vappMode = get(this, 'vappMode') diff --git a/lib/nodes/addon/components/driver-vmwarevsphere/template.hbs b/lib/nodes/addon/components/driver-vmwarevsphere/template.hbs index f5ee829d5..b4dc87e09 100644 --- a/lib/nodes/addon/components/driver-vmwarevsphere/template.hbs +++ b/lib/nodes/addon/components/driver-vmwarevsphere/template.hbs @@ -234,7 +234,7 @@ {{#if showContentLibrary}}
- {{t "nodeDriver.vmwarevsphere.cloudinit.help"}} -
+ {{#if showRancherOsIso }} + + {{input + type="text" + value=config.cloudinit + classNames="form-control" + placeholder=(t "nodeDriver.vmwarevsphere.cloudinit.placeholder") + }} ++ {{t "nodeDriver.vmwarevsphere.cloudinit.help"}} +
+ {{else}} + + {{input-yaml + showDownload=false + showUpload=false + canChangeName=false + gutters=(array) + minHeight=500 + value=config.cloudConfig + valueUpdated=(action "updateCloudConfig") + }} + {{/if}}