feat(calendar_view): allow rendering by custom attribute

This commit is contained in:
Elian Doran 2025-02-15 11:13:44 +02:00
parent 8111352300
commit 10b2d19710
No known key found for this signature in database

View File

@ -1,6 +1,7 @@
import type { EventSourceInput } from "@fullcalendar/core";
import froca from "../../services/froca.js";
import ViewMode, { type ViewModeArgs } from "./view_mode.js";
import type FNote from "../../entities/fnote.js";
const TPL = `
<div class="calendar-view">
@ -58,12 +59,14 @@ export default class CalendarView extends ViewMode {
for (const note of notes) {
const startDate = note.getAttributeValue("label", "startDate");
const customTitle = note.getAttributeValue("label", "calendar:title");
if (!startDate) {
continue;
}
const eventData: typeof events[0] = {
title: note.title,
title: CalendarView.#parseCustomTitle(customTitle, note),
start: startDate
};
@ -80,4 +83,15 @@ export default class CalendarView extends ViewMode {
return events;
}
static #parseCustomTitle(customTitleValue: string | null, note: FNote) {
if (customTitleValue && customTitleValue.startsWith("#")) {
const labelValue = note.getAttributeValue("label", customTitleValue.substring(1));
if (labelValue) {
return labelValue;
}
}
return note.title;
}
}