mirror of
https://github.com/ankitects/anki.git
synced 2025-09-18 22:12:21 -04:00
drop 1 month period
This commit is contained in:
parent
13ebba41da
commit
833d352e54
9 changed files with 32 additions and 79 deletions
|
@ -91,7 +91,9 @@ statistics-counts-learning-cards = Learning
|
||||||
statistics-counts-relearning-cards = Relearning
|
statistics-counts-relearning-cards = Relearning
|
||||||
statistics-counts-title = Card Counts
|
statistics-counts-title = Card Counts
|
||||||
|
|
||||||
statistics-range-all-time = deck life
|
statistics-range-all-time = all
|
||||||
|
statistics-range-1-year-history = last 12 months
|
||||||
|
statistics-range-all-history = all history
|
||||||
statistics-range-deck = deck
|
statistics-range-deck = deck
|
||||||
statistics-range-collection = collection
|
statistics-range-collection = collection
|
||||||
statistics-range-search = Search
|
statistics-range-search = Search
|
||||||
|
|
|
@ -9,23 +9,10 @@
|
||||||
|
|
||||||
export let sourceData: pb.BackendProto.GraphsOut | null = null;
|
export let sourceData: pb.BackendProto.GraphsOut | null = null;
|
||||||
export let i18n: I18n;
|
export let i18n: I18n;
|
||||||
export let revlogRange: RevlogRange;
|
|
||||||
|
|
||||||
let svg = null as HTMLElement | SVGElement | null;
|
let svg = null as HTMLElement | SVGElement | null;
|
||||||
let histogramData = null as HistogramData | null;
|
let histogramData = null as HistogramData | null;
|
||||||
let range: AddedRange;
|
let range: AddedRange = AddedRange.Month;
|
||||||
|
|
||||||
$: switch (revlogRange as RevlogRange) {
|
|
||||||
case RevlogRange.Month:
|
|
||||||
range = AddedRange.Month;
|
|
||||||
break;
|
|
||||||
case RevlogRange.Year:
|
|
||||||
range = AddedRange.Year;
|
|
||||||
break;
|
|
||||||
case RevlogRange.All:
|
|
||||||
range = AddedRange.AllTime;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
let addedData: GraphData | null = null;
|
let addedData: GraphData | null = null;
|
||||||
$: if (sourceData) {
|
$: if (sourceData) {
|
||||||
|
@ -53,7 +40,7 @@
|
||||||
{month}
|
{month}
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
<input type="radio" bind:group={range} value={AddedRange.Quarter} />
|
<input type="radio" bind:group={range} value={AddedRange.ThreeMonths} />
|
||||||
{month3}
|
{month3}
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
import { I18n } from "../i18n";
|
import { I18n } from "../i18n";
|
||||||
|
|
||||||
export let sourceData: pb.BackendProto.GraphsOut | null = null;
|
export let sourceData: pb.BackendProto.GraphsOut | null = null;
|
||||||
export let revlogRange: RevlogRange = RevlogRange.Month;
|
export let revlogRange: RevlogRange;
|
||||||
export let i18n: I18n;
|
export let i18n: I18n;
|
||||||
export let nightMode: boolean;
|
export let nightMode: boolean;
|
||||||
|
|
||||||
|
|
|
@ -2,10 +2,9 @@
|
||||||
import { timeSpan, MONTH, YEAR } from "../time";
|
import { timeSpan, MONTH, YEAR } from "../time";
|
||||||
import { I18n } from "../i18n";
|
import { I18n } from "../i18n";
|
||||||
import { HistogramData } from "./histogram-graph";
|
import { HistogramData } from "./histogram-graph";
|
||||||
import { defaultGraphBounds, RevlogRange } from "./graphs";
|
import { defaultGraphBounds } from "./graphs";
|
||||||
import {
|
import {
|
||||||
gatherData,
|
gatherData,
|
||||||
renderFutureDue,
|
|
||||||
GraphData,
|
GraphData,
|
||||||
FutureDueRange,
|
FutureDueRange,
|
||||||
buildHistogram,
|
buildHistogram,
|
||||||
|
@ -15,25 +14,12 @@
|
||||||
|
|
||||||
export let sourceData: pb.BackendProto.GraphsOut | null = null;
|
export let sourceData: pb.BackendProto.GraphsOut | null = null;
|
||||||
export let i18n: I18n;
|
export let i18n: I18n;
|
||||||
export let revlogRange: RevlogRange;
|
|
||||||
|
|
||||||
let graphData = null as GraphData | null;
|
let graphData = null as GraphData | null;
|
||||||
let histogramData = null as HistogramData | null;
|
let histogramData = null as HistogramData | null;
|
||||||
let backlog: boolean = true;
|
let backlog: boolean = true;
|
||||||
let svg = null as HTMLElement | SVGElement | null;
|
let svg = null as HTMLElement | SVGElement | null;
|
||||||
let range: FutureDueRange;
|
let range: FutureDueRange = FutureDueRange.Month;
|
||||||
|
|
||||||
$: switch (revlogRange as RevlogRange) {
|
|
||||||
case RevlogRange.Month:
|
|
||||||
range = FutureDueRange.Month;
|
|
||||||
break;
|
|
||||||
case RevlogRange.Year:
|
|
||||||
range = FutureDueRange.Year;
|
|
||||||
break;
|
|
||||||
case RevlogRange.All:
|
|
||||||
range = FutureDueRange.AllTime;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$: if (sourceData) {
|
$: if (sourceData) {
|
||||||
graphData = gatherData(sourceData);
|
graphData = gatherData(sourceData);
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
let searchRange: SearchRange = SearchRange.Deck;
|
let searchRange: SearchRange = SearchRange.Deck;
|
||||||
let revlogRange: RevlogRange = RevlogRange.Month;
|
let revlogRange: RevlogRange = RevlogRange.Year;
|
||||||
let days: number = 31;
|
let days: number = 31;
|
||||||
let refreshing = false;
|
let refreshing = false;
|
||||||
|
|
||||||
|
@ -66,9 +66,6 @@
|
||||||
|
|
||||||
$: {
|
$: {
|
||||||
switch (revlogRange as RevlogRange) {
|
switch (revlogRange as RevlogRange) {
|
||||||
case RevlogRange.Month:
|
|
||||||
days = 31;
|
|
||||||
break;
|
|
||||||
case RevlogRange.Year:
|
case RevlogRange.Year:
|
||||||
days = 365;
|
days = 365;
|
||||||
break;
|
break;
|
||||||
|
@ -90,12 +87,12 @@
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const month = timeSpan(i18n, 1 * MONTH);
|
const month = timeSpan(i18n, 3 * MONTH);
|
||||||
const year = timeSpan(i18n, 1 * YEAR);
|
const year = i18n.tr(i18n.TR.STATISTICS_RANGE_1_YEAR_HISTORY);
|
||||||
const deck = i18n.tr(i18n.TR.STATISTICS_RANGE_DECK);
|
const deck = i18n.tr(i18n.TR.STATISTICS_RANGE_DECK);
|
||||||
const collection = i18n.tr(i18n.TR.STATISTICS_RANGE_COLLECTION);
|
const collection = i18n.tr(i18n.TR.STATISTICS_RANGE_COLLECTION);
|
||||||
const searchLabel = i18n.tr(i18n.TR.STATISTICS_RANGE_SEARCH);
|
const searchLabel = i18n.tr(i18n.TR.STATISTICS_RANGE_SEARCH);
|
||||||
const all = i18n.tr(i18n.TR.STATISTICS_RANGE_ALL_TIME);
|
const all = i18n.tr(i18n.TR.STATISTICS_RANGE_ALL_HISTORY);
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="range-box">
|
<div class="range-box">
|
||||||
|
@ -125,10 +122,6 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="range-box-inner">
|
<div class="range-box-inner">
|
||||||
<label>
|
|
||||||
<input type="radio" bind:group={revlogRange} value={RevlogRange.Month} />
|
|
||||||
{month}
|
|
||||||
</label>
|
|
||||||
<label>
|
<label>
|
||||||
<input type="radio" bind:group={revlogRange} value={RevlogRange.Year} />
|
<input type="radio" bind:group={revlogRange} value={RevlogRange.Year} />
|
||||||
{year}
|
{year}
|
||||||
|
|
|
@ -9,28 +9,16 @@
|
||||||
import NoDataOverlay from "./NoDataOverlay.svelte";
|
import NoDataOverlay from "./NoDataOverlay.svelte";
|
||||||
|
|
||||||
export let sourceData: pb.BackendProto.GraphsOut | null = null;
|
export let sourceData: pb.BackendProto.GraphsOut | null = null;
|
||||||
export let revlogRange: RevlogRange = RevlogRange.Month;
|
export let revlogRange: RevlogRange;
|
||||||
export let i18n: I18n;
|
export let i18n: I18n;
|
||||||
|
|
||||||
let graphData: GraphData | null = null;
|
let graphData: GraphData | null = null;
|
||||||
|
|
||||||
let bounds = defaultGraphBounds();
|
let bounds = defaultGraphBounds();
|
||||||
let svg = null as HTMLElement | SVGElement | null;
|
let svg = null as HTMLElement | SVGElement | null;
|
||||||
let range: ReviewRange;
|
let range: ReviewRange = ReviewRange.Month;
|
||||||
let showTime = false;
|
let showTime = false;
|
||||||
|
|
||||||
$: switch (revlogRange as RevlogRange) {
|
|
||||||
case RevlogRange.Month:
|
|
||||||
range = ReviewRange.Month;
|
|
||||||
break;
|
|
||||||
case RevlogRange.Year:
|
|
||||||
range = ReviewRange.Year;
|
|
||||||
break;
|
|
||||||
case RevlogRange.All:
|
|
||||||
range = ReviewRange.AllTime;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
$: if (sourceData) {
|
$: if (sourceData) {
|
||||||
graphData = gatherData(sourceData);
|
graphData = gatherData(sourceData);
|
||||||
}
|
}
|
||||||
|
@ -63,20 +51,18 @@
|
||||||
{time}
|
{time}
|
||||||
</label>
|
</label>
|
||||||
|
|
||||||
{#if revlogRange >= RevlogRange.Year}
|
|
||||||
<label>
|
<label>
|
||||||
<input type="radio" bind:group={range} value={ReviewRange.Month} />
|
<input type="radio" bind:group={range} value={ReviewRange.Month} />
|
||||||
{month}
|
{month}
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
<input type="radio" bind:group={range} value={ReviewRange.Quarter} />
|
<input type="radio" bind:group={range} value={ReviewRange.ThreeMonths} />
|
||||||
{month3}
|
{month3}
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
<input type="radio" bind:group={range} value={ReviewRange.Year} />
|
<input type="radio" bind:group={range} value={ReviewRange.Year} />
|
||||||
{year}
|
{year}
|
||||||
</label>
|
</label>
|
||||||
{/if}
|
|
||||||
{#if revlogRange === RevlogRange.All}
|
{#if revlogRange === RevlogRange.All}
|
||||||
<label>
|
<label>
|
||||||
<input type="radio" bind:group={range} value={ReviewRange.AllTime} />
|
<input type="radio" bind:group={range} value={ReviewRange.AllTime} />
|
||||||
|
|
|
@ -16,7 +16,7 @@ import { dayLabel } from "../time";
|
||||||
|
|
||||||
export enum AddedRange {
|
export enum AddedRange {
|
||||||
Month = 0,
|
Month = 0,
|
||||||
Quarter = 1,
|
ThreeMonths = 1,
|
||||||
Year = 2,
|
Year = 2,
|
||||||
AllTime = 3,
|
AllTime = 3,
|
||||||
}
|
}
|
||||||
|
@ -52,7 +52,7 @@ export function buildHistogram(
|
||||||
case AddedRange.Month:
|
case AddedRange.Month:
|
||||||
xMin = -31;
|
xMin = -31;
|
||||||
break;
|
break;
|
||||||
case AddedRange.Quarter:
|
case AddedRange.ThreeMonths:
|
||||||
xMin = -90;
|
xMin = -90;
|
||||||
break;
|
break;
|
||||||
case AddedRange.Year:
|
case AddedRange.Year:
|
||||||
|
|
|
@ -36,9 +36,8 @@ export async function getGraphData(
|
||||||
}
|
}
|
||||||
|
|
||||||
export enum RevlogRange {
|
export enum RevlogRange {
|
||||||
Month = 1,
|
Year = 1,
|
||||||
Year = 2,
|
All = 2,
|
||||||
All = 3,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface GraphsContext {
|
export interface GraphsContext {
|
||||||
|
|
|
@ -40,7 +40,7 @@ export interface GraphData {
|
||||||
|
|
||||||
export enum ReviewRange {
|
export enum ReviewRange {
|
||||||
Month = 0,
|
Month = 0,
|
||||||
Quarter = 1,
|
ThreeMonths = 1,
|
||||||
Year = 2,
|
Year = 2,
|
||||||
AllTime = 3,
|
AllTime = 3,
|
||||||
}
|
}
|
||||||
|
@ -126,7 +126,7 @@ export function renderReviews(
|
||||||
case ReviewRange.Month:
|
case ReviewRange.Month:
|
||||||
xMin = -31;
|
xMin = -31;
|
||||||
break;
|
break;
|
||||||
case ReviewRange.Quarter:
|
case ReviewRange.ThreeMonths:
|
||||||
xMin = -90;
|
xMin = -90;
|
||||||
break;
|
break;
|
||||||
case ReviewRange.Year:
|
case ReviewRange.Year:
|
||||||
|
|
Loading…
Reference in a new issue