diff --git a/src/views/settings/components/Inputs.vue b/src/views/settings/components/Inputs.vue index 8d8059355be8d2966a516459e101b358f8a48061..60f98a0f03292c0084b87561ddd4fcbbffba1eb0 100644 --- a/src/views/settings/components/Inputs.vue +++ b/src/views/settings/components/Inputs.vue @@ -111,6 +111,7 @@ <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"/> <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'"/> + <backends-logger-input v-if="setting.key === ':backends'" :data="data" :setting-group="settingGroup" :setting="setting"/> <!--------------------> <p class="expl">{{ setting.description }}</p> </el-form-item> @@ -120,13 +121,14 @@ import AceEditor from 'vue2-ace-editor' import 'brace/mode/elixir' import 'default-passive-events' -import { AutoLinkerInput, EditableKeywordInput, IconsInput, MascotsInput, ProxyUrlInput, SslOptionsInput } from './inputComponents' +import { AutoLinkerInput, BackendsLoggerInput, EditableKeywordInput, IconsInput, MascotsInput, ProxyUrlInput, SslOptionsInput } from './inputComponents' export default { name: 'Inputs', components: { editor: AceEditor, AutoLinkerInput, + BackendsLoggerInput, EditableKeywordInput, IconsInput, MascotsInput, @@ -264,7 +266,7 @@ export default { this.$store.dispatch('UpdateState', { group, key, input: parentInput, value: updatedValueForState }) }, renderMultipleSelect(type) { - return Array.isArray(type) && ( + return Array.isArray(type) && this.setting.key !== ':backends' && ( type.includes('module') || (type.includes('list') && type.includes('string')) || (type.includes('list') && type.includes('atom')) || diff --git a/src/views/settings/components/inputComponents/BackendsLoggerInput.vue b/src/views/settings/components/inputComponents/BackendsLoggerInput.vue new file mode 100644 index 0000000000000000000000000000000000000000..8508a7cc35546ed3ed0e9be670b28b4c0aae385d --- /dev/null +++ b/src/views/settings/components/inputComponents/BackendsLoggerInput.vue @@ -0,0 +1,49 @@ +<template> + <el-select + :value="data.value" + multiple + filterable + allow-create + @change="updateSetting($event, settingGroup.group, settingGroup.key, setting.key, setting.type)"> + <el-option value=":console" label="console"/> + <el-option value=":ex_syslogger" label="ExSyslogger"/> + <el-option value="Quack.Logger" label="Quack.Logger"/> + </el-select> +</template> + +<script> +export default { + name: 'BackendsLoggerInput', + props: { + data: { + type: Object || Array, + default: function() { + return {} + } + }, + setting: { + type: Object, + default: function() { + return {} + } + }, + settingGroup: { + type: Object, + default: function() { + return {} + } + } + }, + methods: { + updateSetting(value, group, key, input, type) { + this.$store.dispatch('UpdateSettings', { group, key, input, value, type }) + this.$store.dispatch('UpdateState', { group, key, input, value }) + } + } +} +</script> + +<style rel='stylesheet/scss' lang='scss'> +@import '../../styles/main'; +@include settings +</style> diff --git a/src/views/settings/components/inputComponents/index.js b/src/views/settings/components/inputComponents/index.js index ee14542326396c950a32119f9529fba87269da22..23eac288654d7504abaef1fa880e7e3bfc7b209d 100644 --- a/src/views/settings/components/inputComponents/index.js +++ b/src/views/settings/components/inputComponents/index.js @@ -1,4 +1,5 @@ export { default as AutoLinkerInput } from './AutoLinkerInput' +export { default as BackendsLoggerInput } from './BackendsLoggerInput' export { default as MascotsInput } from './MascotsInput' export { default as EditableKeywordInput } from './EditableKeywordInput' export { default as IconsInput } from './IconsInput'