drop 1 month period

This commit is contained in:
Damien Elmes 2020-07-06 18:29:35 +10:00
parent 13ebba41da
commit 833d352e54
9 changed files with 32 additions and 79 deletions

View file

@ -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

View file

@ -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>

View file

@ -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;

View file

@ -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);

View file

@ -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}

View file

@ -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.ThreeMonths} />
<input type="radio" bind:group={range} value={ReviewRange.Quarter} /> {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} />

View file

@ -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:

View file

@ -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 {

View file

@ -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: