Calendar events support multiple reminder offsets with presets and per-user defaults. Lists index adds inline task entry and list property editing. Generic entity comments on list detail. New bangs.stats dashboard widget. Closes Gitea #28, #29, #30, #31. Migrations 0022 and 0023.
22 lines
741 B
TypeScript
22 lines
741 B
TypeScript
"use server";
|
|
|
|
import { eq } from "drizzle-orm";
|
|
import { revalidatePath } from "next/cache";
|
|
import { z } from "zod";
|
|
import { db } from "@/lib/db";
|
|
import { getCurrentSession } from "@/lib/session";
|
|
import { normalizeReminderOffsets } from "@/lib/reminder-offsets";
|
|
import { users } from "@/modules/_core/schema";
|
|
|
|
const offsetsSchema = z.array(z.number().int().min(0)).max(20);
|
|
|
|
export async function setDefaultEventReminderOffsets(offsets: number[]) {
|
|
const { user } = await getCurrentSession();
|
|
const parsed = normalizeReminderOffsets(offsetsSchema.parse(offsets));
|
|
|
|
await db.update(users).set({ defaultEventReminderOffsets: parsed }).where(eq(users.id, user.id));
|
|
|
|
revalidatePath("/calendar");
|
|
revalidatePath("/settings");
|
|
}
|