Selaa lähdekoodia

hide preset config options, add show-all checkbox

pull/1/head
Jonathan Cobb 4 vuotta sitten
vanhempi
commit
8e6980ee14
1 muutettua tiedostoa jossa 40 lisäystä ja 17 poistoa
  1. +40
    -17
      src/auth/ActivationPage.vue

+ 40
- 17
src/auth/ActivationPage.vue Näytä tiedosto

@@ -44,9 +44,15 @@
</div>
</div>
<!-- config fields -->
<div v-if="cloudConfigFields(cloud).config && cloudConfigFields(cloud).config.length > 0">
<div v-if="allCloudConfigFields(cloud).config && allCloudConfigFields(cloud).config.length > 0">
<h5>{{messages['driver_'+cloud.driverClass]}} {{messages.form_section_title_config}}</h5>
<div v-for="config in cloudConfigFields(cloud).config" class="form-group">
<div v-if="displayShowAllControl(cloud.name)" class="form-group">
<label :for="cloud.name+'_showAllConfig'">
{{messages.field_label_show_all_config}}
</label>
<input :name="cloud.name+'_showAllConfig'" type="checkbox" v-model="showAllConfigs[cloud.name]"/>
</div>
<div v-for="config in displayCloudConfigFields(cloud).config" class="form-group">
<label :for="config.name">{{messages['driver_config_'+config.name+'_'+cloud.driverClass]}}</label>
<textarea v-if="config.inputType === 'textarea'" v-model="configValues[cloud.name][config.name]" class="form-control"></textarea>
<input v-else :type="config.inputType" v-model="configValues[cloud.name][config.name]" :name="config.name" class="form-control" />
@@ -93,9 +99,7 @@
const cloudNotFoundHandler = function (vue, fieldGroup) {
return {
get: function (target, name) {
if (typeof name === 'undefined') return null;
if (name === null) return null;
if (name === '') return null;
if (typeof name === 'undefined' || name === null || name === '') return null;
if (!target.hasOwnProperty(name)) target[name] = vue.populateDefaults(fieldGroup, name);
return target[name];
}
@@ -113,11 +117,14 @@
description: 'root user',

cloudsEnabled: {},
showAllConfigs: {},
configValues: new Proxy(Object.assign({}), cloudNotFoundHandler(this, 'config')),
credentialValues: new Proxy(Object.assign({}), cloudNotFoundHandler(this, 'credentials')),

domainName: null,
publicDns: null
publicDns: null,

displayShowAllCheckbox: null
};
},
computed: {
@@ -156,6 +163,17 @@
},
methods: {
...mapActions('system', ['loadIsActivated', 'activate']),
displayShowAllControl (cloudName) {
if (this.displayShowAllCheckbox == null) {
const showAll = {};
for (let i = 0; i < this.configs.cloudConfigs.length; i++) {
const cloud = this.configs.cloudConfigs[i];
showAll[cloud.name] = this.displayCloudConfigFields(cloud).config.length !== this.allCloudConfigFields(cloud).config.length;
}
this.displayShowAllCheckbox = showAll;
}
return this.displayShowAllCheckbox[cloudName];
},
cloudsByType (csType) {
const clouds = [];
if (this.configs && this.configs.cloudConfigs) {
@@ -182,7 +200,7 @@
populateDefaults (fieldGroup, cloudName) {
const cloud = this.cloudByName(cloudName);
if (cloud === null) return {};
const fields = this.cloudConfigFields(cloud);
const fields = this.allCloudConfigFields(cloud);
const defaults = {};
for (let i=0; i<fields[fieldGroup].length; i++) {
defaults[fields[fieldGroup][i].name] = fields[fieldGroup][i].value;
@@ -197,19 +215,24 @@
publicDns: this.publicDns
};
},
cloudConfigFields (cloud) {
allCloudConfigFields (cloud) { return this.cloudConfigFields(cloud, true); },
displayCloudConfigFields (cloud) { return this.cloudConfigFields(cloud, false); },
cloudConfigFields (cloud, returnAll) {
const fields = { config: [], credentials: [] };
if (typeof cloud.driverConfig !== 'undefined' && cloud.driverConfig !== null) {
for (let prop in cloud.driverConfig) {
if (cloud.driverConfig.hasOwnProperty(prop)) {
fields.config.push({
name: prop,
value: (typeof cloud.driverConfig[prop] === 'object')
? JSON.stringify(cloud.driverConfig[prop])
: cloud.driverConfig[prop],
inputType: (cloud.driverConfig[prop] === true || cloud.driverConfig[prop] === false)
? 'checkbox' : (typeof cloud.driverConfig[prop] === 'object' ? 'textarea' : 'text')
});
const isEmpty = cloud.driverConfig[prop] === null || cloud.driverConfig[prop].toString() === '';
if (returnAll || isEmpty || this.showAllConfigs[cloud.name]) {
fields.config.push({
name: prop,
value: (typeof cloud.driverConfig[prop] === 'object')
? JSON.stringify(cloud.driverConfig[prop])
: cloud.driverConfig[prop],
inputType: (cloud.driverConfig[prop] === true || cloud.driverConfig[prop] === false)
? 'checkbox' : (typeof cloud.driverConfig[prop] === 'object' ? 'textarea' : 'text')
});
}
}
}
}
@@ -269,7 +292,7 @@
if (typeof this.storageByName[name].driverConfig !== 'undefined') {
this.storageConfig = this.storageByName[name].driverConfig;
}
},
}
}
};
</script>

Ladataan…
Peruuta
Tallenna