feat(settings): update default application settings for clean bright look

feat(db): add dayHeaderGap field to persist spacing settings

chore(release): bump version to 1.8.4
This commit is contained in:
mARTin 2026-03-01 15:30:23 +01:00
parent 87cf48e6fd
commit 7f1211a048
5 changed files with 41 additions and 54 deletions

View File

@ -1,6 +1,6 @@
{
"name": "my-weekly-todo-list",
"version": "1.8.3",
"version": "1.8.4",
"description": "A web-based weekly task management application that organizes to-dos and calendar events in a single, intuitive weekly view",
"main": "index.js",
"scripts": {

View File

@ -39,16 +39,16 @@ model User {
showAllDayEvents Boolean @default(true)
showSchedule Boolean @default(true)
cellDuration Int @default(30)
viewStyle String @default("grid")
viewStyle String @default("simple")
viewDays Int @default(7)
fontSize String @default("M")
goalFallbackType String @default("quote")
goalDefaultSentence String @default("goal of the week")
goalFontFamily String? @default("Inter")
goalFontSize String? @default("0.9rem")
goalFontFamily String? @default("Lato")
goalFontSize String? @default("1rem")
goalFontWeight String? @default("500")
headlineFont String @default("Inter")
headlineFontSize String? @default("1.25rem")
headlineFont String @default("Oswald")
headlineFontSize String? @default("1.5rem")
headlineFontWeight String? @default("900")
dateFontFamily String? @default("Inter")
dateFontSize String? @default("0.65rem")
@ -64,11 +64,11 @@ model User {
eventFontSize String? @default("0.85rem")
eventFontWeight String? @default("400")
fontWeight String @default("400")
weekdayColor String? @default("#888888")
weekdayColor String? @default("#0ea5e9")
dateColor String? @default("#888888")
taskColor String? @default("#333333")
todayHighlightColor String? @default("#f0fafa")
weekendColorSat String? @default("#666666")
weekendColorSat String? @default("#ffc107")
weekendColorSun String? @default("#dc2626")
pastDayColor String? @default("#a6a6a7")
goalScope String @default("week")
@ -76,14 +76,15 @@ model User {
dateAlignment String @default("center")
hourLabelFormat String @default("short")
showSubHourSlots Boolean @default(true)
allDayPosition String @default("below")
dayHeaderGap String? @default("0.75em")
allDayPosition String @default("above")
cwColor String? @default("#333333")
cwFontFamily String? @default("Inter")
cwFontSize String? @default("1.125rem")
cwFontFamily String? @default("Oswald")
cwFontSize String? @default("1.5rem")
cwFontWeight String? @default("700")
yearColor String? @default("#333333")
yearFontFamily String? @default("Inter")
yearFontSize String? @default("1.125rem")
yearFontFamily String? @default("Oswald")
yearFontSize String? @default("1.5rem")
yearFontWeight String? @default("700")
showTaskCheckboxes Boolean @default(false)
emailVerificationCode String?

View File

@ -77,6 +77,7 @@ export async function GET(request: NextRequest) {
yearFontSize: true,
yearFontWeight: true,
yearColor: true,
dayHeaderGap: true,
createdAt: true
}
});
@ -117,7 +118,7 @@ export async function PATCH(request: NextRequest) {
hourLabelFormat, showSubHourSlots, allDayPosition,
cwFontFamily, cwFontSize, cwFontWeight, cwColor,
yearFontFamily, yearFontSize, yearFontWeight, yearColor,
showTaskCheckboxes
showTaskCheckboxes, dayHeaderGap
} = body;
const updateData: any = {
@ -185,6 +186,7 @@ export async function PATCH(request: NextRequest) {
...(yearFontSize !== undefined && { yearFontSize }),
...(yearFontWeight !== undefined && { yearFontWeight }),
...(yearColor !== undefined && { yearColor }),
...(dayHeaderGap !== undefined && { dayHeaderGap }),
};
if (password && password.trim() !== "") {
updateData.passwordHash = await bcrypt.hash(password, 10);
@ -260,6 +262,7 @@ export async function PATCH(request: NextRequest) {
yearFontSize: true,
yearFontWeight: true,
yearColor: true,
dayHeaderGap: true,
}
});

View File

@ -660,12 +660,12 @@ export default function WeeklyView() {
dateFormat: "yyyy-MM-dd",
timeFormat: "24h",
startHour: 8,
endHour: 22,
autoRolling: true,
protectEventTimes: true,
endHour: 18,
autoRolling: false,
protectEventTimes: false,
showTimeGrid: true,
cellDuration: 60,
viewStyle: "list",
cellDuration: 30,
viewStyle: "simple",
fontSize: "M",
showNextTask: false,
showSomeday: true,
@ -673,12 +673,15 @@ export default function WeeklyView() {
showSchedule: true,
hourLabelFormat: "short",
showSubHourSlots: true,
allDayPosition: "below",
dayHeaderGap: "0.75em",
showSubHourSlots: true,
allDayPosition: "above",
focusTimerDuration: 25,
focusBreakDuration: 5,
headlineFont: "Inter",
headlineFontSize: "1.25rem",
headlineFont: "Oswald",
headlineFontSize: "1.5rem",
headlineFontWeight: "900",
weekdayColor: "#0ea5e9",
dateFontFamily: "Inter",
dateFontSize: "0.65rem",
dateFontWeight: "400",
@ -693,15 +696,21 @@ export default function WeeklyView() {
eventFontSize: "0.85rem",
eventFontWeight: "400",
goalFallbackType: "quote",
goalFontFamily: "Inter",
goalFontSize: "0.9rem",
goalFontFamily: "Lato",
goalFontSize: "1rem",
goalFontWeight: "500",
goalScope: "week",
dateLayout: "right",
dateAlignment: "center",
weekendColorSat: "#666666",
weekendColorSat: "#ffc107",
weekendColorSun: "#dc2626",
pastDayColor: "#a6a6a7",
cwFontFamily: "Oswald",
cwFontSize: "1.5rem",
cwFontWeight: "700",
yearFontFamily: "Oswald",
yearFontSize: "1.5rem",
yearFontWeight: "700",
quoteSourceUrl: "https://recite.vercel.app/api/random",
quoteSourceUrls: ["https://recite.vercel.app/api/random"],
});
@ -717,7 +726,7 @@ export default function WeeklyView() {
const [syncStatus, setSyncStatus] = useState<"idle" | "syncing" | "synced">(
"idle",
);
const [cellDuration, setCellDuration] = useState<CellDuration>(60);
const [cellDuration, setCellDuration] = useState<CellDuration>(30);
const [draggedTask, setDraggedTask] = useState<Task | null>(null);
const [showTimeGrid, setShowTimeGrid] = useState(true);
const [slideDirection, setSlideDirection] = useState<"next" | "prev" | null>(
@ -739,11 +748,11 @@ export default function WeeklyView() {
slotIdx?: number;
} | null>(null);
const [viewStyle, setViewStyle] = useState<ViewStyle>("simple");
const [protectEventTimes, setProtectEventTimes] = useState(true);
const [protectEventTimes, setProtectEventTimes] = useState(false);
const [unlockedEvents, setUnlockedEvents] = useState<Set<string>>(new Set());
const [startHour, setStartHour] = useState(8);
const [endHour, setEndHour] = useState(22);
const [endHour, setEndHour] = useState(18);
const [weekStartDay, setWeekStartDay] = useState(1); // 1 = Monday, 0 = Sunday
const [showSomeday, setShowSomeday] = useState(true);
const [showAllDay, setShowAllDay] = useState(true);

View File

@ -1,26 +0,0 @@
const nodemailer = require('nodemailer');
const transporter = nodemailer.createTransport({
host: "w00ff033.kasserver.com",
port: 587,
secure: false,
auth: { user: "mail@carrylight.de", pass: "QijU8e2A8p3FE8WS8esR" },
tls: { rejectUnauthorized: false },
});
async function main() {
try {
const info = await transporter.sendMail({
from: '"My Weekly ToDo\'s" <mail@carrylight.de>',
to: "mail@martin-bierschenk.de",
subject: "Test from config",
html: "<p>Test</p>",
});
console.log("Message sent:", info.messageId);
process.exit(0);
} catch (error) {
console.error("Error:", error);
process.exit(1);
}
}
main();