Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 8 additions & 1 deletion frontend/viewer/src/lib/entry-editor/EditEntryDialog.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import * as Dialog from '$lib/components/ui/dialog';
import {Button} from '$lib/components/ui/button';
import {useViewService} from '$lib/views/view-service.svelte';
import RootFields from '$lib/views/RootFields.svelte';
import {pt} from '$lib/views/view-text';
import {t} from 'svelte-i18n-lingui';
import {AppNotification} from '$lib/notifications/notifications';
Expand Down Expand Up @@ -51,7 +52,13 @@
{#if entryResource.loading}
Loading...
{:else if entry}
<EntryEditor bind:this={editor} autofocus modalMode bind:entry canAddSense={false} canAddExample={false}/>
<!--
RootFields, so that the user is not limited to the fields of a potentially selected custom-view.
Custom-views should perhaps be scoped to the browse-view. I'm not sure.
-->
<RootFields>
<EntryEditor bind:this={editor} autofocus modalMode bind:entry canAddSense={false} canAddExample={false}/>
</RootFields>
{/if}
<Dialog.DialogFooter>
<Button onclick={() => open = false} variant="secondary">{$t`Cancel`}</Button>
Expand Down
12 changes: 3 additions & 9 deletions frontend/viewer/src/lib/entry-editor/NewEntryDialog.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
import {useSaveHandler} from '../services/save-event-service.svelte';
import {useLexboxApi} from '../services/service-provider';
import {defaultEntry, defaultSense} from '../utils';
import OverrideFields from '$lib/views/OverrideFields.svelte';
import RootFields from '$lib/views/RootFields.svelte';
import {useWritingSystemService} from '$project/data';
import {useDialogsService} from '$lib/services/dialogs-service.js';
import {useBackHandler} from '$lib/utils/back-handler.svelte';
Expand Down Expand Up @@ -160,13 +160,7 @@
<Dialog.DialogTitle>{pt($t`New Entry`, $t`New Word`, viewService.currentView)}</Dialog.DialogTitle>
</Dialog.DialogHeader>
<div>
<OverrideFields shownFields={[
'lexemeForm', 'citationForm',
'gloss', 'definition', 'partOfSpeechId',
/* only show semantic domains and publications if the "template" set it */
...(entryTemplate?.publishIn?.length ? ['publishIn'] as const : []),
...(senseTemplate?.semanticDomains?.length ? ['semanticDomains'] as const : [])
]}>
<RootFields>
<Editor.Root bind:this={editor}>
<Editor.Grid>
<EntryEditorPrimitive bind:entry autofocus modalMode
Expand All @@ -187,7 +181,7 @@
{/if}
</Editor.Grid>
</Editor.Root>
</OverrideFields>
</RootFields>
</div>
{#if errors.length}
<div class="text-end space-y-2">
Expand Down
23 changes: 23 additions & 0 deletions frontend/viewer/src/lib/views/RootFields.svelte
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<script lang="ts">
import {initViewService, useViewService} from '$lib/views/view-service.svelte';
import type {Snippet} from 'svelte';

let {children}: {children?: Snippet} = $props();

const viewService = useViewService();
const overrideService = initViewService({persist: false});

$effect.pre(() => {
const rootView = viewService.rootView;
const currentView = viewService.currentView;
// show all root fields, but keep the current view's writing-system selection
overrideService.overrideView({
...currentView,
entryFields: rootView.entryFields,
senseFields: rootView.senseFields,
exampleFields: rootView.exampleFields,
});
});
</script>

{@render children?.()}
Loading