Presets: Added flag for making it "exclusive"

This will make it so only one tag will be active from marked preset.
This can be useful for some tags that cannot be together in the editor,
for example, rating tags.
This commit is contained in:
koloml committed 2026-03-22 04:09:18 +04:00
1 parent f0083169f3
commit 83c7608e99
7 files changed
+84 -1

No files matched your search

@@ -10,6 +10,7 @@
import FormControl from "$components/ui/forms/FormControl.svelte";
import TextField from "$components/ui/forms/TextField.svelte";
import TagsEditor from "$components/tags/TagsEditor.svelte";
import CheckboxField from "$components/ui/forms/CheckboxField.svelte";
let presetId = $derived(page.params.id);
@@ -23,6 +24,7 @@
let presetName = $state('');
let tagsList = $state<string[]>([]);
let isExclusive = $state(false);
$effect(() => {
if (presetId === 'new') {
@@ -39,6 +41,7 @@
presetName = targetPreset.settings.name;
tagsList = [...targetPreset.settings.tags].sort((a, b) => a.localeCompare(b));
isExclusive = targetPreset.settings.exclusive;
});
async function savePreset() {
@@ -49,6 +52,7 @@
targetPreset.settings.name = presetName;
targetPreset.settings.tags = [...tagsList];
targetPreset.settings.exclusive = isExclusive;
await targetPreset.save();
await goto(`/features/presets/${targetPreset.id}`);
@@ -67,6 +71,11 @@
<FormControl label="Tags">
<TagsEditor bind:tags={tagsList}></TagsEditor>
</FormControl>
<FormControl>
<CheckboxField bind:checked={isExclusive}>
Keep only one tag from this preset active at a time.
</CheckboxField>
</FormControl>
</FormContainer>
<Menu>
<hr>