separate settings
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Timo Hocker 2020-09-02 14:34:20 +02:00
parent 6e9d634f74
commit c3a11f1f3c
2 changed files with 44 additions and 14 deletions

View File

@ -86,4 +86,8 @@ select > option {
color: var(--color-foreground); color: var(--color-foreground);
font-weight: bold; font-weight: bold;
} }
.large_button {
padding: 10px;
}
</style> </style>

View File

@ -1,17 +1,31 @@
<template> <template>
<div <div>
class="grid" <button
> type="button"
<ViewComponent class="large_button"
v-for="(item,key) of saved_config.displays" @click="settings_btn_action"
:key="key" v-text="editing?'Close':'Settings'"
:config="item"
:data="log(item.source)"
/>
<ConfigEditor
v-model="config"
:template="template"
/> />
<div
v-if="editing"
class="spacer"
>
<ConfigEditor
v-model="config"
:template="template"
/>
</div>
<div
v-else
class="grid"
>
<ViewComponent
v-for="(item,key) of saved_config.displays"
:key="key"
:config="item"
:data="log(item.source)"
/>
</div>
</div> </div>
</template> </template>
@ -35,14 +49,15 @@ export default {
return { return {
config: copy_object (default_config), config: copy_object (default_config),
saved_config: copy_object (default_config), saved_config: copy_object (default_config),
template: default_template template: default_template,
editing: false
}; };
}, },
computed: { ...Vuex.mapGetters ({ log: 'log' }) }, computed: { ...Vuex.mapGetters ({ log: 'log' }) },
mounted () { mounted () {
this.fetch_log (); this.fetch_log ();
document.body.addEventListener ('keydown', (ev) => { document.body.addEventListener ('keydown', (ev) => {
if (ev.key === 's' && ev.ctrlKey) { if (ev.key === 's' && ev.ctrlKey && this.editing) {
this.save_config (); this.save_config ();
ev.preventDefault (); ev.preventDefault ();
return false; return false;
@ -58,6 +73,7 @@ export default {
}); });
this.saved_config = copy_object (this.config); this.saved_config = copy_object (this.config);
this.fetch_log (); this.fetch_log ();
this.editing = false;
}, },
fetch_log () { fetch_log () {
this.get_log ({ this.get_log ({
@ -65,6 +81,12 @@ export default {
sources: this.saved_config.sources sources: this.saved_config.sources
}); });
}, },
settings_btn_action () {
if (this.editing)
this.save_config ();
else
this.editing = true;
},
...Vuex.mapActions ({ get_log: 'get_log' }) ...Vuex.mapActions ({ get_log: 'get_log' })
} }
}; };
@ -78,4 +100,8 @@ export default {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
.spacer {
margin: 10px;
}
</style> </style>