Added: Context menu flag setting

This commit is contained in:
Luc Mcgrady 2025-10-22 18:36:42 +01:00
parent 9085154e3d
commit b2fe07462a
No known key found for this signature in database
GPG key ID: 4F3D7A0B17CC3D9C
4 changed files with 20 additions and 7 deletions

View file

@ -745,6 +745,8 @@ exposed_backend_list = [
# DeckConfigService # DeckConfigService
"get_ignored_before_count", "get_ignored_before_count",
"get_retention_workload", "get_retention_workload",
# CardsService
"set_flag",
] ]
@ -812,8 +814,9 @@ def _check_dynamic_request_permissions():
"/_anki/setSchedulingStates", "/_anki/setSchedulingStates",
"/_anki/i18nResources", "/_anki/i18nResources",
"/_anki/congratsInfo", "/_anki/congratsInfo",
# TODO: Unsure about this # TODO: Correctly set the auth token
"/_anki/nextCardData", "/_anki/nextCardData",
"/_anki/setFlag",
): ):
pass pass
else: else:

View file

@ -7,11 +7,14 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
import * as tr from "@generated/ftl"; import * as tr from "@generated/ftl";
import MoreSubmenu from "./MoreSubmenu.svelte"; import MoreSubmenu from "./MoreSubmenu.svelte";
import MoreItem from "./MoreItem.svelte"; import MoreItem from "./MoreItem.svelte";
import { setFlag } from "@generated/backend";
import type { ReviewerState } from "../reviewer";
let showFloating = false; let showFloating = false;
let showFlags = false; let showFlags = false;
export let state: ReviewerState;
let flags = [ const flags = [
{ colour: tr.actionsFlagRed(), shortcut: "Ctrl+1" }, { colour: tr.actionsFlagRed(), shortcut: "Ctrl+1" },
{ colour: tr.actionsFlagOrange(), shortcut: "Ctrl+2" }, { colour: tr.actionsFlagOrange(), shortcut: "Ctrl+2" },
{ colour: tr.actionsFlagGreen(), shortcut: "Ctrl+3" }, { colour: tr.actionsFlagGreen(), shortcut: "Ctrl+3" },
@ -20,6 +23,10 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
{ colour: tr.actionsFlagTurquoise(), shortcut: "Ctrl+6" }, { colour: tr.actionsFlagTurquoise(), shortcut: "Ctrl+6" },
{ colour: tr.actionsFlagPurple(), shortcut: "Ctrl+7" }, { colour: tr.actionsFlagPurple(), shortcut: "Ctrl+7" },
]; ];
function changeFlag(index: number) {
setFlag({ cardIds: [state.currentCard!.card!.id], flag: index });
}
</script> </script>
<MoreSubmenu bind:showFloating> <MoreSubmenu bind:showFloating>
@ -44,8 +51,13 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
{tr.studyingFlagCard()} {tr.studyingFlagCard()}
</DropdownItem> </DropdownItem>
<div slot="items"> <div slot="items">
{#each flags as flag} {#each flags as flag, i}
<MoreItem shortcut={flag.shortcut}>{flag.colour}</MoreItem> <MoreItem
shortcut={flag.shortcut}
onClick={() => changeFlag(i + 1)}
>
{flag.colour}
</MoreItem>
{/each} {/each}
</div> </div>
</MoreSubmenu> </MoreSubmenu>

View file

@ -3,10 +3,8 @@ Copyright: Ankitects Pty Ltd and contributors
License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
--> -->
<script lang="ts"> <script lang="ts">
import DropdownItem from "$lib/components/DropdownItem.svelte";
import Popover from "$lib/components/Popover.svelte"; import Popover from "$lib/components/Popover.svelte";
import WithFloating from "$lib/components/WithFloating.svelte"; import WithFloating from "$lib/components/WithFloating.svelte";
import * as tr from "@generated/ftl";
export let showFloating = false; export let showFloating = false;
</script> </script>

View file

@ -43,7 +43,7 @@ License: GNU AGPL, version 3 or later; http://www.gnu.org/licenses/agpl.html
{/if} {/if}
<span class="disappearing"></span> <span class="disappearing"></span>
<div class="disappearing more"> <div class="disappearing more">
<More></More> <More {state}></More>
</div> </div>
</div> </div>
</div> </div>