Fix bug in settings parser

(and change one name which had cyrillic letter instead of latin C for some reason)
This commit is contained in:
Jakub Jagiełło 2022-01-13 02:53:08 +01:00 committed by Haelwenn (lanodan) Monnier
parent 84e64bfe62
commit fe16b08dbf
2 changed files with 11 additions and 6 deletions

View file

@ -28,7 +28,7 @@ const getCurrentValue = (type, value, path) => {
}
const getValueWithoutKey = (key, [type, value]) => {
if (prependWithСolon(type, value)) {
if (prependWithColon(type, value)) {
return `:${value}`
} else if (key === ':backends') {
const index = value.findIndex(el => el === ':ex_syslogger')
@ -113,8 +113,8 @@ export const parseTuples = (tuples, key) => {
accum[item.tuple[0]] = parseNonTuples(item.tuple[0], item.tuple[1])
} else if (item.tuple[0] === ':ip_whitelist') {
accum[item.tuple[0]] = item.tuple[1].map(ip => typeof ip === 'string' ? ip : ip.tuple.join('.'))
} else if (Array.isArray(item.tuple[1]) &&
(typeof item.tuple[1][0] === 'object' && !Array.isArray(item.tuple[1][0])) && item.tuple[1][0]['tuple']) {
} else if (Array.isArray(item.tuple[1]) && (item.tuple[1][0] !== null &&
typeof item.tuple[1][0] === 'object' && !Array.isArray(item.tuple[1][0])) && item.tuple[1][0]['tuple']) {
accum[item.tuple[0]] = parseTuples(item.tuple[1], item.tuple[0])
} else if (Array.isArray(item.tuple[1])) {
accum[item.tuple[0]] = item.tuple[1]
@ -167,7 +167,7 @@ const parseStringOrTupleValue = (key, value) => {
}
}
const prependWithСolon = (type, value) => {
const prependWithColon = (type, value) => {
return (type === 'atom' && value.length > 0) ||
(Array.isArray(type) && type.includes('boolean') && type.includes('atom') && typeof value === 'string')
}
@ -256,7 +256,7 @@ const wrapValues = (settings, currentState) => {
))
) {
return { 'tuple': [setting, wrapValues(value, currentState)] }
} else if (prependWithСolon(type, value)) {
} else if (prependWithColon(type, value)) {
return { 'tuple': [setting, `:${value}`] }
} else if (type.includes('tuple') &&
(type.includes('string') || type.includes('atom') || type.includes('boolean'))) {

View file

@ -55,7 +55,12 @@ export default {
},
async handleOpen($event) {
if ($event === '/settings') {
if (!localStorage.getItem('settingsTabs')) {
let settingsTabs = localStorage.getItem('settingsTabs')
if (settingsTabs === '[]') {
localStorage.removeItem('settingsTabs')
settingsTabs = null
}
if (!settingsTabs) {
await this.$store.dispatch('FetchSettings')
const menuItems = this.tabs
localStorage.setItem('settingsTabs', JSON.stringify(menuItems))