diff --git a/data/n8n/.n8n/n8nEventLog.log b/data/n8n/.n8n/n8nEventLog.log index 5b6de1d..e69de29 100644 --- a/data/n8n/.n8n/n8nEventLog.log +++ b/data/n8n/.n8n/n8nEventLog.log @@ -1,40 +0,0 @@ -{"__type":"$$EventMessageAudit","id":"ceb1be9f-9fdb-4f19-a9e2-3c945b499605","ts":"2026-04-29T19:56:50.025+02:00","eventName":"n8n.audit.user.login.success","message":"n8n.audit.user.login.success","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","authenticationMethod":"email"}} -{"__type":"$$EventMessageConfirm","confirm":"ceb1be9f-9fdb-4f19-a9e2-3c945b499605","ts":"2026-04-29T19:56:50.040+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageAudit","id":"7f5edda4-5a8a-48d6-838f-e4a4e58171dd","ts":"2026-04-29T19:56:57.617+02:00","eventName":"n8n.audit.user.credentials.created","message":"n8n.audit.user.credentials.created","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","credentialType":"postgres","credentialId":"846yS75jh8skSnX2","publicApi":false,"projectId":"julyz3yhfTK4pMNd","projectType":"personal","isDynamic":false,"usesExternalSecrets":false}} -{"__type":"$$EventMessageConfirm","confirm":"7f5edda4-5a8a-48d6-838f-e4a4e58171dd","ts":"2026-04-29T19:56:57.617+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageAudit","id":"c23fc82f-477e-4e86-878f-5a599448b1b8","ts":"2026-04-29T19:57:09.092+02:00","eventName":"n8n.audit.user.credentials.created","message":"n8n.audit.user.credentials.created","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","credentialType":"supabaseApi","credentialId":"cgEX1vWw0IkStuoU","publicApi":false,"projectId":"julyz3yhfTK4pMNd","projectType":"personal","isDynamic":false,"usesExternalSecrets":false}} -{"__type":"$$EventMessageConfirm","confirm":"c23fc82f-477e-4e86-878f-5a599448b1b8","ts":"2026-04-29T19:57:09.093+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageAudit","id":"6900ba6a-ddcc-4fda-a24b-528648bfa010","ts":"2026-04-29T19:57:23.157+02:00","eventName":"n8n.audit.workflow.created","message":"n8n.audit.workflow.created","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification"}} -{"__type":"$$EventMessageConfirm","confirm":"6900ba6a-ddcc-4fda-a24b-528648bfa010","ts":"2026-04-29T19:57:23.157+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageAudit","id":"241da235-3a1b-4c07-a3f5-814004b9e0da","ts":"2026-04-29T19:57:40.542+02:00","eventName":"n8n.audit.user.login.success","message":"n8n.audit.user.login.success","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","authenticationMethod":"email"}} -{"__type":"$$EventMessageConfirm","confirm":"241da235-3a1b-4c07-a3f5-814004b9e0da","ts":"2026-04-29T19:57:40.542+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageAudit","id":"b6800e1b-dc8e-49bc-94ef-230b602c6df0","ts":"2026-04-29T19:58:10.640+02:00","eventName":"n8n.audit.user.login.success","message":"n8n.audit.user.login.success","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","authenticationMethod":"email"}} -{"__type":"$$EventMessageConfirm","confirm":"b6800e1b-dc8e-49bc-94ef-230b602c6df0","ts":"2026-04-29T19:58:10.640+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageAudit","id":"6a1a6709-c254-4c1e-bb9e-2f634b90498a","ts":"2026-04-29T19:58:18.234+02:00","eventName":"n8n.audit.workflow.executed","message":"n8n.audit.workflow.executed","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"1","source":"user-manual"}} -{"__type":"$$EventMessageConfirm","confirm":"6a1a6709-c254-4c1e-bb9e-2f634b90498a","ts":"2026-04-29T19:58:18.234+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageWorkflow","id":"412e9165-2cef-4628-9dd4-b58c18c7d236","ts":"2026-04-29T19:58:18.234+02:00","eventName":"n8n.workflow.started","message":"n8n.workflow.started","payload":{"executionId":"1","workflowId":"MiEBjJYxhUVm6sl3","isManual":false,"mode":"manual","workflowName":"New Lead Notification","projectId":"julyz3yhfTK4pMNd","projectName":"MC Cars "}} -{"__type":"$$EventMessageConfirm","confirm":"412e9165-2cef-4628-9dd4-b58c18c7d236","ts":"2026-04-29T19:58:18.234+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageNode","id":"e0e05a15-933e-4370-8bcf-55da83f2a683","ts":"2026-04-29T19:58:18.240+02:00","eventName":"n8n.node.started","message":"n8n.node.started","payload":{"workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"1","nodeType":"n8n-nodes-base.postgresTrigger","nodeName":"Check New Leads","nodeId":"trigger1"}} -{"__type":"$$EventMessageConfirm","confirm":"e0e05a15-933e-4370-8bcf-55da83f2a683","ts":"2026-04-29T19:58:18.240+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageNode","id":"5e59bc80-0096-4f44-94e1-0ed813cf8a3d","ts":"2026-04-29T19:59:18.261+02:00","eventName":"n8n.node.finished","message":"n8n.node.finished","payload":{"workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"1","nodeType":"n8n-nodes-base.postgresTrigger","nodeName":"Check New Leads","nodeId":"trigger1"}} -{"__type":"$$EventMessageConfirm","confirm":"5e59bc80-0096-4f44-94e1-0ed813cf8a3d","ts":"2026-04-29T19:59:18.261+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageWorkflow","id":"2629e130-478d-400b-814a-6004b414f004","ts":"2026-04-29T19:59:18.269+02:00","eventName":"n8n.workflow.failed","message":"n8n.workflow.failed","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","executionId":"1","success":false,"isManual":true,"mode":"manual","workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","projectId":"julyz3yhfTK4pMNd","projectName":"MC Cars ","lastNodeExecuted":"Check New Leads","errorMessage":"Aborted, no data received within 30secs. This 30sec timeout is only set for \"manually triggered execution\". Active Workflows will listen indefinitely."}} -{"__type":"$$EventMessageConfirm","confirm":"2629e130-478d-400b-814a-6004b414f004","ts":"2026-04-29T19:59:18.270+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageAudit","id":"e106259d-47a0-41fa-97e2-a384ebe82015","ts":"2026-04-29T20:02:00.788+02:00","eventName":"n8n.audit.workflow.executed","message":"n8n.audit.workflow.executed","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"2","source":"user-manual"}} -{"__type":"$$EventMessageConfirm","confirm":"e106259d-47a0-41fa-97e2-a384ebe82015","ts":"2026-04-29T20:02:00.788+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageWorkflow","id":"d904b8f4-87ee-40f3-ba88-55293d0eada8","ts":"2026-04-29T20:02:00.788+02:00","eventName":"n8n.workflow.started","message":"n8n.workflow.started","payload":{"executionId":"2","workflowId":"MiEBjJYxhUVm6sl3","isManual":false,"mode":"manual","workflowName":"New Lead Notification","projectId":"julyz3yhfTK4pMNd","projectName":"MC Cars "}} -{"__type":"$$EventMessageConfirm","confirm":"d904b8f4-87ee-40f3-ba88-55293d0eada8","ts":"2026-04-29T20:02:00.788+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageNode","id":"4c4896ef-4dde-4ac6-9746-91886e6c434a","ts":"2026-04-29T20:02:00.795+02:00","eventName":"n8n.node.started","message":"n8n.node.started","payload":{"workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"2","nodeType":"n8n-nodes-base.postgresTrigger","nodeName":"Check New Leads","nodeId":"trigger1"}} -{"__type":"$$EventMessageConfirm","confirm":"4c4896ef-4dde-4ac6-9746-91886e6c434a","ts":"2026-04-29T20:02:00.796+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageNode","id":"dd1e3736-5352-4a60-ac25-48edf7f7c814","ts":"2026-04-29T20:02:02.383+02:00","eventName":"n8n.node.finished","message":"n8n.node.finished","payload":{"workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"2","nodeType":"n8n-nodes-base.postgresTrigger","nodeName":"Check New Leads","nodeId":"trigger1"}} -{"__type":"$$EventMessageConfirm","confirm":"dd1e3736-5352-4a60-ac25-48edf7f7c814","ts":"2026-04-29T20:02:02.383+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageNode","id":"18332840-312c-400f-8efa-ba9b00161d5e","ts":"2026-04-29T20:02:02.384+02:00","eventName":"n8n.node.started","message":"n8n.node.started","payload":{"workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"2","nodeType":"n8n-nodes-base.set","nodeName":"Format Lead Data","nodeId":"set1"}} -{"__type":"$$EventMessageConfirm","confirm":"18332840-312c-400f-8efa-ba9b00161d5e","ts":"2026-04-29T20:02:02.384+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageNode","id":"eb33d71c-ab1e-45e7-b8a1-c2f4233db4cc","ts":"2026-04-29T20:02:02.388+02:00","eventName":"n8n.node.finished","message":"n8n.node.finished","payload":{"workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","executionId":"2","nodeType":"n8n-nodes-base.set","nodeName":"Format Lead Data","nodeId":"set1"}} -{"__type":"$$EventMessageConfirm","confirm":"eb33d71c-ab1e-45e7-b8a1-c2f4233db4cc","ts":"2026-04-29T20:02:02.388+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageWorkflow","id":"0da331f2-66a0-45fd-b691-d4c28a01598c","ts":"2026-04-29T20:02:02.404+02:00","eventName":"n8n.workflow.success","message":"n8n.workflow.success","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","executionId":"2","success":true,"isManual":true,"mode":"manual","workflowId":"MiEBjJYxhUVm6sl3","workflowName":"New Lead Notification","projectId":"julyz3yhfTK4pMNd","projectName":"MC Cars "}} -{"__type":"$$EventMessageConfirm","confirm":"0da331f2-66a0-45fd-b691-d4c28a01598c","ts":"2026-04-29T20:02:02.404+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageAudit","id":"a0ac56d7-5dd2-4d92-ba16-9480f5d7be4e","ts":"2026-04-29T21:40:47.656+02:00","eventName":"n8n.audit.workflow.created","message":"n8n.audit.workflow.created","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","workflowId":"5254P6wnxXA4bhWf","workflowName":"Lead Qualified → Payment Email"}} -{"__type":"$$EventMessageConfirm","confirm":"a0ac56d7-5dd2-4d92-ba16-9480f5d7be4e","ts":"2026-04-29T21:40:47.656+02:00","source":{"id":"0","name":"eventBus"}} -{"__type":"$$EventMessageAudit","id":"8b319e39-54c7-41d6-a1f6-4a28fcc9f340","ts":"2026-04-29T21:41:00.236+02:00","eventName":"n8n.audit.workflow.created","message":"n8n.audit.workflow.created","payload":{"userId":"aeec9612-50f4-4124-889e-83325fb5af8a","_email":"admin@mccars.local","_firstName":"MC","_lastName":"Cars","globalRole":"global:owner","workflowId":"40NOffvLouMXkVPO","workflowName":"Lead Qualified → Mietvertrag PDF"}} -{"__type":"$$EventMessageConfirm","confirm":"8b319e39-54c7-41d6-a1f6-4a28fcc9f340","ts":"2026-04-29T21:41:00.236+02:00","source":{"id":"0","name":"eventBus"}} diff --git a/frontend/admin.html b/frontend/admin.html index 67decfb..ba19149 100644 --- a/frontend/admin.html +++ b/frontend/admin.html @@ -4,6 +4,8 @@ Admin · MC Cars + + diff --git a/frontend/agb.html b/frontend/agb.html new file mode 100644 index 0000000..53c6a7e --- /dev/null +++ b/frontend/agb.html @@ -0,0 +1,93 @@ + + + + + + AGB · MC Cars + + + + + + + + + + + +
+
+

Allgemeine Geschäftsbedingungen (AGB)

+
+

+ Diese Seite wird in Kürze mit den vollständigen AGB aktualisiert. +

+

+ Die AGB definieren die rechtlichen Bedingungen für die Vermietung von Fahrzeugen durch MC Cars. +

+

+ Bitte wenden Sie sich an hello@mccars.at für weitere Informationen. +

+
+
+
+ + + + + + diff --git a/frontend/app.js b/frontend/app.js index 36c34fb..c1330fc 100644 --- a/frontend/app.js +++ b/frontend/app.js @@ -52,7 +52,7 @@ const bpfSubmitBtn = document.querySelector("#bpfSubmit"); const bpfSidebar = document.querySelector("#bpfSidebar"); const bpfSidebarContent = document.querySelector("#bpfSidebarContent"); const bpfSidebarPlaceholder = document.querySelector(".bpf-sidebar-placeholder"); -let bpfDurationMode = "custom"; // "day" | "weekend" | "custom" +let bpfDurationMode = ""; // "day" | "weekend" | "custom" | "" let bpfSubmitting = false; function formatYmdLocal(d) { @@ -96,6 +96,17 @@ const today = formatYmdLocal(new Date()); document.querySelector("#year").textContent = new Date().getFullYear(); +// ----------------Toast Notification ---------------- +function showToast(message, duration = 3000) { + const toast = document.querySelector("#toast"); + if (!toast) return; + toast.textContent = message; + toast.classList.add("show"); + setTimeout(() => { + toast.classList.remove("show"); + }, duration); +} + // ---------------- Vehicles ---------------- async function loadVehicles() { const { data, error } = await supabase @@ -287,7 +298,7 @@ bpfFileIncome.addEventListener("change", () => { // ---------------- Duration Presets ---------------- function setDurationMode(mode) { - bpfDurationMode = mode; + bpfDurationMode = mode || ""; document.querySelectorAll(".bpf-preset").forEach(b => b.classList.toggle("active", b.dataset.preset === mode)); document.querySelector("#bpfDateDay").style.display = mode === "day" ? "block" : "none"; document.querySelector("#bpfDateWeekend").style.display = mode === "weekend" ? "block" : "none"; @@ -295,6 +306,9 @@ function setDurationMode(mode) { updateSidebar(); } +// Fresh page load: no duration selected, so no date inputs are visible. +setDurationMode(""); + document.querySelectorAll(".bpf-preset").forEach(btn => { btn.addEventListener("click", () => setDurationMode(btn.dataset.preset)); }); @@ -452,7 +466,8 @@ document.querySelector("#bpfSubmit").addEventListener("click", async () => { await Promise.all(uploads); bookingFeedback.className = "form-feedback"; - bookingFeedback.textContent = t("bookingSuccess"); + bookingFeedback.textContent = ""; + showToast(t("bookingSuccess"), 4000); showBpfStep(1); bpfCar.value = ""; bpfFrom.value = ""; @@ -465,7 +480,7 @@ document.querySelector("#bpfSubmit").addEventListener("click", async () => { bpfMessage.value = ""; document.querySelector("#bpfFileIdName").textContent = ""; document.querySelector("#bpfFileIncomeName").textContent = ""; - setDurationMode("custom"); + setDurationMode(""); updateSidebar(); bpfSubmitting = false; if (bpfSubmitBtn) bpfSubmitBtn.disabled = false; diff --git a/frontend/datenschutz.html b/frontend/datenschutz.html index 6a76965..d7ee906 100644 --- a/frontend/datenschutz.html +++ b/frontend/datenschutz.html @@ -4,16 +4,80 @@ Datenschutz · MC Cars (GmbH) + + -
-

Rechtliches

-

Datenschutz

-

Buchungsanfragen werden aktuell zu Demozwecken lokal im Browser gespeichert. Fahrzeugdaten werden über ein selbstgehostetes Supabase verwaltet.

-

Ansprechpartner: hello@mccars.at

-

← Startseite

+ + +
+
+

Datenschutz

+
+

Buchungsanfragen werden aktuell zu Demozwecken lokal im Browser gespeichert. Fahrzeugdaten werden über ein selbstgehostetes Supabase verwaltet.

+

Ansprechpartner: hello@mccars.at

+
+
+ + + + diff --git a/frontend/i18n.js b/frontend/i18n.js index 95d4345..3d3d45e 100644 --- a/frontend/i18n.js +++ b/frontend/i18n.js @@ -118,7 +118,8 @@ export const translations = { footerNav: "Navigation", imprint: "Impressum", privacy: "Datenschutz", - footerTerms: "Mietbedingungen", + terms: "AGB", + rentalTerms: "Mietbedingungen", copyright: "Alle Rechte vorbehalten.", close: "Schließen", @@ -352,7 +353,8 @@ export const translations = { footerNav: "Navigation", imprint: "Imprint", privacy: "Privacy", - footerTerms: "Rental conditions", + terms: "Terms", + rentalTerms: "Rental Terms", copyright: "All rights reserved.", close: "Close", diff --git a/frontend/images/mc-cars-logo-full.png b/frontend/images/mc-cars-logo-full.png new file mode 100644 index 0000000..1e15352 Binary files /dev/null and b/frontend/images/mc-cars-logo-full.png differ diff --git a/frontend/images/mc-cars-logo.png b/frontend/images/mc-cars-logo.png new file mode 100644 index 0000000..0dcae67 Binary files /dev/null and b/frontend/images/mc-cars-logo.png differ diff --git a/frontend/impressum.html b/frontend/impressum.html index eba9832..46e4071 100644 --- a/frontend/impressum.html +++ b/frontend/impressum.html @@ -4,19 +4,83 @@ Impressum · MC Cars (GmbH) + + -
-

Rechtliches

-

Impressum

-

MC Cars (GmbH)

-

Standort: Steiermark (TBD)

-

E-Mail: hello@mccars.at

-

Telefon: +43 316 880000

-

Firmenbuch und UID werden nachgereicht.

-

← Startseite

+ + +
+
+

Impressum

+
+

MC Cars (GmbH)

+

Standort: Steiermark (TBD)

+

E-Mail: hello@mccars.at

+

Telefon: +43 316 880000

+

Firmenbuch und UID werden nachgereicht.

+
+
+ + + + diff --git a/frontend/index.html b/frontend/index.html index 04d2b24..20daa4b 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -5,6 +5,8 @@ MC Cars · Sportwagenvermietung Steiermark + + @@ -15,7 +17,7 @@