show toolbar settings

This commit is contained in:
Jan Prochazka
2021-04-18 11:11:06 +02:00
parent 375a441abf
commit 49f8fb71e4
3 changed files with 36 additions and 22 deletions

View File

@@ -46,7 +46,7 @@ registerCommand({
id: 'toolbar.show', id: 'toolbar.show',
category: 'Toolbar', category: 'Toolbar',
name: 'Show', name: 'Show',
onClick: () => visibleToolbar.set(1), onClick: () => visibleToolbar.set(true),
testEnabled: () => !getVisibleToolbar(), testEnabled: () => !getVisibleToolbar(),
}); });
@@ -54,7 +54,7 @@ registerCommand({
id: 'toolbar.hide', id: 'toolbar.hide',
category: 'Toolbar', category: 'Toolbar',
name: 'Hide', name: 'Hide',
onClick: () => visibleToolbar.set(0), onClick: () => visibleToolbar.set(false),
testEnabled: () => getVisibleToolbar(), testEnabled: () => getVisibleToolbar(),
}); });

View File

@@ -1,4 +1,6 @@
<script lang="ts"> <script lang="ts">
import _ from 'lodash';
import FormButton from '../forms/FormButton.svelte'; import FormButton from '../forms/FormButton.svelte';
import FormCheckboxField from '../forms/FormCheckboxField.svelte'; import FormCheckboxField from '../forms/FormCheckboxField.svelte';
@@ -8,25 +10,38 @@
import ModalBase from '../modals/ModalBase.svelte'; import ModalBase from '../modals/ModalBase.svelte';
import { closeCurrentModal } from '../modals/modalTools'; import { closeCurrentModal } from '../modals/modalTools';
import { getCurrentSettings, getVisibleToolbar, visibleToolbar } from '../stores';
import axiosInstance from '../utility/axiosInstance'; import axiosInstance from '../utility/axiosInstance';
import { useSettings } from '../utility/metadataLoaders';
const settings = useSettings();
function handleOk(e) { function handleOk(e) {
axiosInstance.post('config/update-settings', e.detail); axiosInstance.post(
'config/update-settings',
_.omitBy(e.detail, (v, k) => k.startsWith(':'))
);
visibleToolbar.set(!!e.detail[':visibleToolbar']);
closeCurrentModal(); closeCurrentModal();
} }
</script> </script>
{#if $settings} <FormProvider
<FormProvider initialValues={$settings}> initialValues={{
...getCurrentSettings(),
':visibleToolbar': getVisibleToolbar(),
}}
>
<ModalBase {...$$restProps}> <ModalBase {...$$restProps}>
<div slot="header">Settings</div> <div slot="header">Settings</div>
<div class="heading">Appearance</div>
<FormCheckboxField name=":visibleToolbar" label="Show toolbar" defaultValue={true} />
<div class="heading">Data grid</div> <div class="heading">Data grid</div>
<FormCheckboxField name="dataGrid.hideLeftColumn" label="Hide left column by default" /> <FormCheckboxField name="dataGrid.hideLeftColumn" label="Hide left column by default" />
<FormTextField name="dataGrid.pageSize" label="Page size (number of rows for incremental loading)" defaultValue="100" /> <FormTextField
name="dataGrid.pageSize"
label="Page size (number of rows for incremental loading)"
defaultValue="100"
/>
<FormCheckboxField name="dataGrid.showHintColumns" label="Show foreign key hints" defaultValue={true} /> <FormCheckboxField name="dataGrid.showHintColumns" label="Show foreign key hints" defaultValue={true} />
<div slot="footer"> <div slot="footer">
@@ -35,7 +50,6 @@
</div> </div>
</ModalBase> </ModalBase>
</FormProvider> </FormProvider>
{/if}
<style> <style>
.heading { .heading {

View File

@@ -51,7 +51,7 @@ export const commandsCustomized = derived([commands, commandsSettings], ([$comma
})) }))
); );
export const visibleToolbar = writableWithStorage(1, 'visibleToolbar'); export const visibleToolbar = writableWithStorage(true, 'visibleToolbar');
export const leftPanelWidth = writable(300); export const leftPanelWidth = writable(300);
export const currentDropDownMenu = writable(null); export const currentDropDownMenu = writable(null);
export const openedModals = writable([]); export const openedModals = writable([]);