Prüfung / Lint, Typen, Tests (push) Canceled after 0s
Prüfung / Images bauen (pdf) (push) Canceled after 0s
Prüfung / Images bauen (web) (push) Canceled after 0s
Prüfung / Images bauen (worker) (push) Canceled after 0s
Images / bauen (pdf, docker/pdf.Dockerfile) (push) Canceled after 0s
Images / bauen (web, docker/web.Dockerfile) (push) Canceled after 0s
Images / bauen (worker, docker/worker.Dockerfile) (push) Canceled after 0s
375 Vorkommen in 210 Dateien. Betrifft Kommentare, Oberflaechentexte und die README; an keiner Stelle Bedeutung, nur Zeichensetzung.
41 lines
1.4 KiB
TypeScript
41 lines
1.4 KiB
TypeScript
import { toSearchParams } from '@/lib/search/query'
|
|
|
|
/**
|
|
* Die mitgelieferten Ansichten aus docs/08-suche-und-export.md.
|
|
*
|
|
* Sie stehen im Programm und nicht in der Datenbank, weil sie von der
|
|
* **Gegenwart** abhängen: „diese Woche" und „seit 14 Tagen" wären als
|
|
* gespeicherte Zeitpunkte schon am nächsten Tag falsch. Selbst angelegte
|
|
* Ansichten sind dagegen genau das - ein Lesezeichen auf eine Adresse.
|
|
*/
|
|
export type BuiltinView = { key: string; params: string }
|
|
|
|
export function builtinViews(now: Date = new Date()): BuiltinView[] {
|
|
const inTagen = (tage: number): string => {
|
|
const datum = new Date(now)
|
|
datum.setDate(datum.getDate() + tage)
|
|
return datum.toISOString().slice(0, 10)
|
|
}
|
|
|
|
return [
|
|
{ key: 'mine', params: toSearchParams({ mine: true }) },
|
|
{ key: 'dueThisWeek', params: toSearchParams({ dueBefore: inTagen(7) }) },
|
|
{
|
|
key: 'idle',
|
|
params: toSearchParams({
|
|
idleSince: new Date(now.getTime() - 14 * 86_400_000).toISOString(),
|
|
status: 'OPEN',
|
|
}),
|
|
},
|
|
{ key: 'open', params: toSearchParams({ status: 'OPEN' }) },
|
|
]
|
|
}
|
|
|
|
/**
|
|
* „Seit deinem letzten Besuch geändert" braucht die Lesemarke und steht
|
|
* deshalb nicht in der Liste oben - die Seite ergänzt sie, wenn es eine gibt.
|
|
*/
|
|
export function sinceLastVisitView(lastReadAt: Date): BuiltinView {
|
|
return { key: 'sinceLastVisit', params: toSearchParams({ changedSince: lastReadAt.toISOString() }) }
|
|
}
|