import QtQuick Item { property string status: "needs-setup" property bool stale: false property var events: [] property string setupUrlDraft: "" property string setupUsernameDraft: "" property string setupPasswordDraft: "" property string secretError: "" property int refreshes: 0 property int saves: 0 property bool savedDrafts: false function refresh() { refreshes++; } function saveSetup(url, user, secret) { saves++; savedDrafts = url === "https://fixture.invalid/dav" && user === "fixture-user" && secret === "fixture-only"; secretError = savedDrafts ? "" : "fixture setup rejected"; setupPasswordDraft = ""; if (savedDrafts) status = "ready"; } function gridStartDate() { const now = new Date(); const first = new Date(now.getFullYear(), now.getMonth(), 1); first.setDate(1 - (first.getDay() + 6) % 7); return isoDay(first); } function isoDay(date) { return date.getFullYear() + "-" + String(date.getMonth() + 1).padStart(2, "0") + "-" + String(date.getDate()).padStart(2, "0"); } function updateEvents() { events = [ { date: isoDay(new Date()), allDay: true, color: "#3ec5e3", summary: "fixture appointment", kind: "event" } ]; } }