forked from AkkomaGang/admin-fe
Fix proxy_url input for Upload tab
This commit is contained in:
parent
c48b08efee
commit
a1c8fe84a3
3 changed files with 44 additions and 12 deletions
|
@ -132,8 +132,7 @@ const parseProxyUrl = value => {
|
||||||
}
|
}
|
||||||
|
|
||||||
export const partialUpdate = (group, key) => {
|
export const partialUpdate = (group, key) => {
|
||||||
if ((group === ':pleroma' && key === 'Oban') ||
|
if (group === ':auto_linker' && key === ':opts') {
|
||||||
(group === ':auto_linker' && key === ':opts')) {
|
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return true
|
return true
|
||||||
|
@ -206,7 +205,9 @@ const wrapValues = (settings, currentState) => {
|
||||||
} else if (type === 'atom' && value.length > 0) {
|
} else if (type === 'atom' && value.length > 0) {
|
||||||
return { 'tuple': [setting, `:${value}`] }
|
return { 'tuple': [setting, `:${value}`] }
|
||||||
} else if (type.includes('tuple') && (type.includes('string') || type.includes('atom'))) {
|
} else if (type.includes('tuple') && (type.includes('string') || type.includes('atom'))) {
|
||||||
return { 'tuple': [setting, { 'tuple': value }] }
|
return typeof value === 'string'
|
||||||
|
? { 'tuple': [setting, value] }
|
||||||
|
: { 'tuple': [setting, { 'tuple': value }] }
|
||||||
} else if (type.includes('tuple') && type.includes('list')) {
|
} else if (type.includes('tuple') && type.includes('list')) {
|
||||||
return { 'tuple': [setting, value] }
|
return { 'tuple': [setting, value] }
|
||||||
} else if (type === 'map') {
|
} else if (type === 'map') {
|
||||||
|
|
|
@ -73,7 +73,7 @@
|
||||||
<mascots-input v-if="setting.key === ':mascots'" :data="data" :setting-group="settingGroup" :setting="setting"/>
|
<mascots-input v-if="setting.key === ':mascots'" :data="data" :setting-group="settingGroup" :setting="setting"/>
|
||||||
<editable-keyword-input v-if="editableKeyword(setting.key, setting.type)" :data="data" :setting-group="settingGroup" :setting="setting"/>
|
<editable-keyword-input v-if="editableKeyword(setting.key, setting.type)" :data="data" :setting-group="settingGroup" :setting="setting"/>
|
||||||
<icons-input v-if="setting.key === ':icons'" :data="data[':icons']" :setting-group="settingGroup" :setting="setting"/>
|
<icons-input v-if="setting.key === ':icons'" :data="data[':icons']" :setting-group="settingGroup" :setting="setting"/>
|
||||||
<proxy-url-input v-if="setting.key === ':proxy_url'" :data="data[setting.key]" :setting-group="settingGroup" :setting="setting"/>
|
<proxy-url-input v-if="setting.key === ':proxy_url'" :data="data[setting.key]" :setting-group="settingGroup" :setting="setting" :parents="settingParent"/>
|
||||||
<!-- <ssl-options-input v-if="setting.key === ':ssl_options'" :setting-group="settingGroup" :setting-parent="settingParent" :setting="setting" :data="data" :nested="true" :custom-label-width="'100px'"/> -->
|
<!-- <ssl-options-input v-if="setting.key === ':ssl_options'" :setting-group="settingGroup" :setting-parent="settingParent" :setting="setting" :data="data" :nested="true" :custom-label-width="'100px'"/> -->
|
||||||
<multiple-select v-if="setting.key === ':backends' || setting.key === ':args'" :data="data" :setting-group="settingGroup" :setting="setting"/>
|
<multiple-select v-if="setting.key === ':backends' || setting.key === ':args'" :data="data" :setting-group="settingGroup" :setting="setting"/>
|
||||||
<prune-input v-if="setting.key === ':prune'" :data="data[setting.key]" :setting-group="settingGroup" :setting="setting"/>
|
<prune-input v-if="setting.key === ':prune'" :data="data[setting.key]" :setting-group="settingGroup" :setting="setting"/>
|
||||||
|
|
|
@ -1,20 +1,22 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="setting-input">
|
<div class="setting-input">
|
||||||
<el-input
|
<el-input
|
||||||
:value="data.host"
|
:value="proxyUrlData.host"
|
||||||
placeholder="host (e.g. localhost or 127.0.0.1)"
|
placeholder="host (e.g. localhost or 127.0.0.1)"
|
||||||
class="proxy-url-value-input"
|
class="proxy-url-value-input"
|
||||||
@input="updateProxyUrl($event, 'host')"/> :
|
@input="updateProxyUrl($event, 'host')"/> :
|
||||||
<el-input
|
<el-input
|
||||||
:value="data.port"
|
:value="proxyUrlData.port"
|
||||||
placeholder="port (e.g 9020 or 3090)"
|
placeholder="port (e.g 9020 or 3090)"
|
||||||
class="proxy-url-value-input"
|
class="proxy-url-value-input"
|
||||||
@input="updateProxyUrl($event, 'port')"/>
|
@input="updateProxyUrl($event, 'port')"/>
|
||||||
<el-checkbox :value="data.socks5" class="name-input" @change="updateProxyUrl($event, 'socks5')">Socks5</el-checkbox>
|
<el-checkbox :value="proxyUrlData.socks5" class="name-input" @change="updateProxyUrl($event, 'socks5')">Socks5</el-checkbox>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import { processNested } from '@/store/modules/normalizers'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ProxyUrlInput',
|
name: 'ProxyUrlInput',
|
||||||
props: {
|
props: {
|
||||||
|
@ -35,17 +37,35 @@ export default {
|
||||||
default: function() {
|
default: function() {
|
||||||
return {}
|
return {}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
parents: {
|
||||||
|
type: Array,
|
||||||
|
default: function() {
|
||||||
|
return []
|
||||||
|
},
|
||||||
|
required: false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
settings() {
|
||||||
|
return this.$store.state.settings.settings
|
||||||
|
},
|
||||||
|
updatedSettings() {
|
||||||
|
return this.$store.state.settings.updatedSettings
|
||||||
|
},
|
||||||
|
proxyUrlData() {
|
||||||
|
return Object.keys(this.data).length === 0 ? { socks5: false, host: null, port: null } : this.data
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
updateProxyUrl(value, inputType) {
|
updateProxyUrl(value, inputType) {
|
||||||
let data
|
let data
|
||||||
if (inputType === 'socks5') {
|
if (inputType === 'socks5') {
|
||||||
data = { ...this.data, socks5: value }
|
data = { ...this.proxyUrlData, socks5: value }
|
||||||
} else if (inputType === 'host') {
|
} else if (inputType === 'host') {
|
||||||
data = { ...this.data, host: value }
|
data = { ...this.proxyUrlData, host: value }
|
||||||
} else {
|
} else {
|
||||||
data = { ...this.data, port: value }
|
data = { ...this.proxyUrlData, port: value }
|
||||||
}
|
}
|
||||||
this.updateSetting(data, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)
|
this.updateSetting(data, this.settingGroup.group, this.settingGroup.key, this.setting.key, this.setting.type)
|
||||||
},
|
},
|
||||||
|
@ -53,8 +73,19 @@ export default {
|
||||||
const assembledData = value.socks5
|
const assembledData = value.socks5
|
||||||
? [':socks5', value.host, value.port]
|
? [':socks5', value.host, value.port]
|
||||||
: `${value.host}:${value.port}`
|
: `${value.host}:${value.port}`
|
||||||
this.$store.dispatch('UpdateSettings', { group, key, input, value: assembledData, type })
|
if (this.parents.length > 0) {
|
||||||
this.$store.dispatch('UpdateState', { group, key, input, value })
|
const { valueForState,
|
||||||
|
valueForUpdatedSettings,
|
||||||
|
setting } = processNested(value, assembledData, group, key, this.parents.reverse(), this.settings, this.updatedSettings)
|
||||||
|
|
||||||
|
this.$store.dispatch('UpdateSettings',
|
||||||
|
{ group, key, input: setting.key, value: valueForUpdatedSettings, type: setting.type })
|
||||||
|
this.$store.dispatch('UpdateState',
|
||||||
|
{ group, key, input: setting.key, value: valueForState })
|
||||||
|
} else {
|
||||||
|
this.$store.dispatch('UpdateSettings', { group, key, input, value: assembledData, type })
|
||||||
|
this.$store.dispatch('UpdateState', { group, key, input, value })
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue