Add GraphsPreferences endpoint to backend

This commit is contained in:
Henrik Giesel 2021-01-21 03:25:14 +01:00
parent d27167ce86
commit 665a13e378
7 changed files with 37 additions and 2 deletions

View File

@ -34,7 +34,7 @@ LABEL_REPEATED = 3
# messages we don't want to unroll in codegen # messages we don't want to unroll in codegen
SKIP_UNROLL_INPUT = {"TranslateString"} SKIP_UNROLL_INPUT = {"TranslateString"}
SKIP_DECODE = {"Graphs"} SKIP_DECODE = {"Graphs", "GraphsPreferences"}
def python_type(field): def python_type(field):

View File

@ -255,6 +255,10 @@ def graph_data() -> bytes:
return aqt.mw.col.backend.graphs(search=args["search"], days=args["days"]) return aqt.mw.col.backend.graphs(search=args["search"], days=args["days"])
def graph_preferences() -> bytes:
return aqt.mw.col.backend.graphs_preferences()
def congrats_info() -> bytes: def congrats_info() -> bytes:
info = aqt.mw.col.backend.congrats_info() info = aqt.mw.col.backend.congrats_info()
return info.SerializeToString() return info.SerializeToString()
@ -262,6 +266,7 @@ def congrats_info() -> bytes:
post_handlers = dict( post_handlers = dict(
graphData=graph_data, graphData=graph_data,
graphPreferences=graph_preferences,
# pylint: disable=unnecessary-lambda # pylint: disable=unnecessary-lambda
i18nResources=lambda: aqt.mw.col.backend.i18n_resources(), i18nResources=lambda: aqt.mw.col.backend.i18n_resources(),
congratsInfo=congrats_info, congratsInfo=congrats_info,

View File

@ -116,6 +116,7 @@ service BackendService {
rpc CardStats(CardID) returns (String); rpc CardStats(CardID) returns (String);
rpc Graphs(GraphsIn) returns (GraphsOut); rpc Graphs(GraphsIn) returns (GraphsOut);
rpc GraphsPreferences(Empty) returns (GraphsPreferencesOut);
// media // media
@ -1099,6 +1100,18 @@ message GraphsOut {
Weekday first_weekday = 8; Weekday first_weekday = 8;
} }
message GraphsPreferencesOut {
enum Weekday {
SUNDAY = 0;
MONDAY = 1;
FRIDAY = 5;
SATURDAY = 6;
}
Weekday calendar_first_day_of_week = 1;
bool card_counts_separate_inactive = 2;
}
message RevlogEntry { message RevlogEntry {
enum ReviewKind { enum ReviewKind {
LEARNING = 0; LEARNING = 0;

View File

@ -676,6 +676,10 @@ impl BackendService for Backend {
self.with_col(|col| col.graph_data_for_search(&input.search, input.days)) self.with_col(|col| col.graph_data_for_search(&input.search, input.days))
} }
fn graphs_preferences(&self, _input: pb::Empty) -> BackendResult<pb::GraphsPreferencesOut> {
self.with_col(|col| col.graphs_preferences())
}
// decks // decks
//----------------------------------------------- //-----------------------------------------------

View File

@ -45,6 +45,13 @@ impl Collection {
first_weekday: self.get_first_weekday() as i32, first_weekday: self.get_first_weekday() as i32,
}) })
} }
pub(crate) fn graphs_preferences(&self) -> Result<pb::GraphsPreferencesOut> {
Ok(pb::GraphsPreferencesOut {
calendar_first_day_of_week: self.get_first_weekday() as i32,
card_counts_separate_inactive: true,
})
}
} }
impl From<RevlogEntry> for pb::RevlogEntry { impl From<RevlogEntry> for pb::RevlogEntry {

View File

@ -5,7 +5,7 @@
import type { SvelteComponent } from "svelte/internal"; import type { SvelteComponent } from "svelte/internal";
import type { I18n } from "anki/i18n"; import type { I18n } from "anki/i18n";
import type pb from "anki/backend_proto"; import type pb from "anki/backend_proto";
import { getGraphData, RevlogRange } from "./graph-helpers"; import { getGraphData, getGraphPreferences, RevlogRange } from "./graph-helpers";
export let i18n: I18n; export let i18n: I18n;
export let nightMode: boolean; export let nightMode: boolean;

View File

@ -19,6 +19,12 @@ export async function getGraphData(
); );
} }
export async function getGraphPreferences(): Promise<pb.BackendProto.GraphsPreferencesOut> {
return pb.BackendProto.GraphsPreferencesOut.decode(
await postRequest("/_anki/graphPreferences", JSON.stringify({}))
);
}
// amount of data to fetch from backend // amount of data to fetch from backend
export enum RevlogRange { export enum RevlogRange {
Year = 1, Year = 1,