diff --git a/src/store/modules/normalizers.js b/src/store/modules/normalizers.js index e79fb0430cb50e59306150c34118536fb601078e..984062ff86f1122c2486dc353ddb739630488df8 100644 --- a/src/store/modules/normalizers.js +++ b/src/store/modules/normalizers.js @@ -134,18 +134,18 @@ export const partialUpdate = (group, key) => { export const processNested = (valueForState, valueForUpdatedSettings, group, parentKey, parents, settings, updatedSettings) => { const [{ key, type }, ...otherParents] = parents - const path = [group, parentKey, ...parents.reverse().map(parent => parent.key)] + const path = [group, parentKey, ...parents.reverse().map(parent => parent.key).slice(0, -1)] const updatedValueForState = valueExists(settings, path) ? { ...getCurrentValue(settings[group][parentKey], parents.map(el => el.key).slice(0, -1)), ...{ [key]: valueForState }} : { [key]: valueForState } const updatedValueForUpdatedSettings = valueExists(updatedSettings, path) - ? { ...getCurrentValue(settings[group][parentKey], parents.map(el => el.key).slice(0, -1)), + ? { ...getCurrentValue(updatedSettings[group][parentKey], parents.map(el => el.key).slice(0, -1))[1], ...{ [key]: [type, valueForUpdatedSettings] }} : { [key]: [type, valueForUpdatedSettings] } - // if (group === ':mime' && key === ':types') { + // if (group === ':mime' && key === ':types') { // updatedValueForState = { ...settings[group][key].value, ...updatedValueForState } // updatedValueForUpdatedSettings = { // ...Object.keys(settings[group][key].value) @@ -197,8 +197,10 @@ const wrapValues = (settings, currentState) => { return { 'tuple': [setting, wrapValues(value, currentState)] } } else if (type === 'atom' && value.length > 0) { return { 'tuple': [setting, `:${value}`] } - } else if (type.includes('tuple') && (type.includes('string') || type.includes('list') || type.includes('atom'))) { + } else if (type.includes('tuple') && (type.includes('string') || type.includes('atom'))) { return { 'tuple': [setting, { 'tuple': value }] } + } else if (type.includes('tuple') && type.includes('list')) { + return { 'tuple': [setting, value] } } else if (type === 'map') { const mapValue = Object.keys(value).reduce((acc, key) => { acc[key] = setting === ':match_actor' ? value[key] : value[key][1] diff --git a/src/views/settings/components/Inputs.vue b/src/views/settings/components/Inputs.vue index fbe3a92b8aecefa055e702fa3ba766d41fd4176c..c707b85938bdd7c0937b85471e6a6190934bdf8c 100644 --- a/src/views/settings/components/Inputs.vue +++ b/src/views/settings/components/Inputs.vue @@ -59,7 +59,7 @@ <div v-for="subSetting in setting.children" :key="subSetting.key"> <inputs :setting-group="settingGroup" - :setting-parent="[...settingParent, setting, subSetting]" + :setting-parent="[...settingParent, subSetting]" :setting="subSetting" :data="data[setting.key]" :custom-label-width="'100px'" @@ -164,7 +164,7 @@ export default { return this.data[this.setting.key] ? this.data[this.setting.key][0] : '' }, set: function(value) { - this.processNestedData([value], this.settingGroup.group, this.settingGroup.key, this.settingParent[0].key, this.settingParent[0].type) + this.processNestedData([value], this.settingGroup.group, this.settingGroup.key, this.settingParent) } }, inputValue() { diff --git a/src/views/settings/components/Setting.vue b/src/views/settings/components/Setting.vue index eb55030b9f9d8049baae9dd578e3239ef769336d..d11dc723d9bbd449ee6ecd3725834f5bce49bb6b 100644 --- a/src/views/settings/components/Setting.vue +++ b/src/views/settings/components/Setting.vue @@ -33,7 +33,7 @@ <div v-for="subSetting in setting.children" :key="subSetting.key"> <inputs :setting-group="settingGroup" - :setting-parent="[setting]" + :setting-parent="[setting, subSetting]" :setting="subSetting" :data="data[setting.key]" :nested="true"/> diff --git a/src/views/settings/index.vue b/src/views/settings/index.vue index 14f34e40bfa24541d3547c7de1184073b3263b9c..91c7349393df8e429c856caf857e4fa9903953fc 100644 --- a/src/views/settings/index.vue +++ b/src/views/settings/index.vue @@ -47,6 +47,9 @@ <el-tab-pane :label="$t('settings.mailer')" lazy> <mailer/> </el-tab-pane> + <!-- <el-tab-pane :label="$t('settings.mediaProxy')" lazy> + <media-proxy/> + </el-tab-pane> --> <el-tab-pane :label="$t('settings.metadata')" lazy> <metadata/> </el-tab-pane> @@ -59,18 +62,17 @@ <el-tab-pane :label="$t('settings.relays')" lazy> <relays/> </el-tab-pane> + <el-tab-pane :label="$t('settings.webPush')" lazy> + <web-push/> + </el-tab-pane> <el-tab-pane :label="$t('settings.other')" lazy> <other/> </el-tab-pane> - <!-- <el-tab-pane :label="$t('settings.mediaProxy')" lazy> - <media-proxy/> - </el-tab-pane> + <!-- <el-tab-pane :label="$t('settings.upload')" lazy> <upload/> </el-tab-pane> - <el-tab-pane :label="$t('settings.webPush')" lazy> - <web-push/> - </el-tab-pane> --> + --> </el-tabs> </div> </template>