From f64879b6d88d102642277fa11964a375f61df92d Mon Sep 17 00:00:00 2001 From: larssand Date: Mon, 16 Mar 2026 15:40:14 +0100 Subject: [PATCH] Rename app to JMK RB RaceController --- README.md | 2 +- src/app.js | 46 +++++++++++++++++++++++----------------------- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index c23868f..056d3f4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# JMK RB RC RaceController +# JMK RB RaceController RC timing app med sponsor-eventflöde (delade bilar/transpondrar mellan olika heat/finaler), AMMC WebSocket och lokal SQLite-lagring på Windows. diff --git a/src/app.js b/src/app.js index 21e2df8..c8f4cc2 100644 --- a/src/app.js +++ b/src/app.js @@ -41,8 +41,8 @@ const TRANSLATIONS = { "nav.guide": "Guide", "nav.guide_sub": "Dokumentation och uppstart", "ui.language": "Språk", - "brand.title": "JMK RB", - "brand.subtitle": "Live Event", + "brand.title": "JMK RB RaceController", + "brand.subtitle": "RC Timing System", "ui.no_active_session": "Ingen aktiv session", "ui.event": "Event", "ui.decoder_online": "Decoder online", @@ -606,7 +606,7 @@ const TRANSLATIONS = { "overlay.subtitle": "Extern leaderboard-skärm", "overlay.no_active": "Ingen aktiv session vald.", "overlay.last_passings": "Senaste passeringar", - "overlay.window_title": "JMK RB Live Event Overlay", + "overlay.window_title": "JMK RB RaceController Overlay", "overlay.mode_leaderboard": "Leaderboard", "overlay.mode_speaker": "Speaker", "overlay.mode_results": "Resultat", @@ -678,8 +678,8 @@ const TRANSLATIONS = { "nav.guide": "Guide", "nav.guide_sub": "Documentation and setup", "ui.language": "Language", - "brand.title": "JMK RB", - "brand.subtitle": "Live Event", + "brand.title": "JMK RB RaceController", + "brand.subtitle": "RC Timing System", "ui.no_active_session": "No Active Session", "ui.event": "Event", "ui.decoder_online": "Decoder Online", @@ -1243,7 +1243,7 @@ const TRANSLATIONS = { "overlay.subtitle": "External leaderboard screen", "overlay.no_active": "No active session selected.", "overlay.last_passings": "Recent passings", - "overlay.window_title": "JMK RB Live Event Overlay", + "overlay.window_title": "JMK RB RaceController Overlay", "overlay.mode_leaderboard": "Leaderboard", "overlay.mode_speaker": "Speaker", "overlay.mode_results": "Results", @@ -1420,15 +1420,15 @@ function seedDefaultData() { } if (!state.settings.clubName) { - state.settings.clubName = "JMK RB"; + state.settings.clubName = "JMK RB RaceController"; } if (!state.settings.clubTagline) { - state.settings.clubTagline = "Live Event"; + state.settings.clubTagline = "RC Timing System"; } if (!state.settings.pdfFooter) { - state.settings.pdfFooter = "Generated by JMK RB Live Event"; + state.settings.pdfFooter = "Generated by JMK RB RaceController"; } if (!state.settings.pdfTheme) { @@ -1487,9 +1487,9 @@ function loadState() { speakerBestLapCueEnabled: parsed.settings?.speakerBestLapCueEnabled !== false, speakerTop3CueEnabled: parsed.settings?.speakerTop3CueEnabled === true, speakerSessionStartCueEnabled: parsed.settings?.speakerSessionStartCueEnabled !== false, - clubName: parsed.settings?.clubName || "JMK RB", - clubTagline: parsed.settings?.clubTagline || "Live Event", - pdfFooter: parsed.settings?.pdfFooter || "Generated by JMK RB Live Event", + clubName: parsed.settings?.clubName || "JMK RB RaceController", + clubTagline: parsed.settings?.clubTagline || "RC Timing System", + pdfFooter: parsed.settings?.pdfFooter || "Generated by JMK RB RaceController", pdfTheme: parsed.settings?.pdfTheme || "classic", logoDataUrl: parsed.settings?.logoDataUrl || "", racePresets: Array.isArray(parsed.settings?.racePresets) @@ -1529,9 +1529,9 @@ function loadState() { speakerBestLapCueEnabled: true, speakerTop3CueEnabled: false, speakerSessionStartCueEnabled: true, - clubName: "JMK RB", - clubTagline: "Live Event", - pdfFooter: "Generated by JMK RB Live Event", + clubName: "JMK RB RaceController", + clubTagline: "RC Timing System", + pdfFooter: "Generated by JMK RB RaceController", pdfTheme: "classic", logoDataUrl: "", racePresets: [], @@ -1775,9 +1775,9 @@ function applyPersistedState(persisted) { speakerBestLapCueEnabled: persisted.settings?.speakerBestLapCueEnabled !== false, speakerTop3CueEnabled: persisted.settings?.speakerTop3CueEnabled === true, speakerSessionStartCueEnabled: persisted.settings?.speakerSessionStartCueEnabled !== false, - clubName: persisted.settings?.clubName || state.settings.clubName || "JMK RB", - clubTagline: persisted.settings?.clubTagline || state.settings.clubTagline || "Live Event", - pdfFooter: persisted.settings?.pdfFooter || state.settings.pdfFooter || "Generated by JMK RB Live Event", + clubName: persisted.settings?.clubName || state.settings.clubName || "JMK RB RaceController", + clubTagline: persisted.settings?.clubTagline || state.settings.clubTagline || "RC Timing System", + pdfFooter: persisted.settings?.pdfFooter || state.settings.pdfFooter || "Generated by JMK RB RaceController", pdfTheme: persisted.settings?.pdfTheme || state.settings.pdfTheme || "classic", logoDataUrl: persisted.settings?.logoDataUrl || state.settings.logoDataUrl || "", racePresets: Array.isArray(persisted.settings?.racePresets) @@ -2050,7 +2050,7 @@ function resolveEventBranding(event) { return { brandName: local.brandName || state.settings.clubName || "JMK RB", brandTagline: local.brandTagline || state.settings.clubTagline || "Live Event", - pdfFooter: local.pdfFooter || state.settings.pdfFooter || "Generated by JMK RB Live Event", + pdfFooter: local.pdfFooter || state.settings.pdfFooter || "Generated by JMK RB RaceController", pdfTheme: local.pdfTheme || state.settings.pdfTheme || "classic", logoDataUrl: local.logoDataUrl || state.settings.logoDataUrl || "", }; @@ -5420,7 +5420,7 @@ function renderOverlay() { ${escapeHtml(modeLabel)}

${escapeHtml(active.name)}

-

${escapeHtml(branding.brandName || "JMK RB Live Event")}

+

${escapeHtml(branding.brandName || "JMK RB RaceController")}

@@ -6113,9 +6113,9 @@ function renderSettings() { state.settings.speakerBestLapCueEnabled = form.get("speakerBestLapCueEnabled") === "on"; state.settings.speakerTop3CueEnabled = form.get("speakerTop3CueEnabled") === "on"; state.settings.speakerSessionStartCueEnabled = form.get("speakerSessionStartCueEnabled") === "on"; - state.settings.clubName = String(form.get("clubName") || "").trim() || "JMK RB"; - state.settings.clubTagline = String(form.get("clubTagline") || "").trim() || "Live Event"; - state.settings.pdfFooter = String(form.get("pdfFooter") || "").trim() || "Generated by JMK RB Live Event"; + state.settings.clubName = String(form.get("clubName") || "").trim() || "JMK RB RaceController"; + state.settings.clubTagline = String(form.get("clubTagline") || "").trim() || "RC Timing System"; + state.settings.pdfFooter = String(form.get("pdfFooter") || "").trim() || "Generated by JMK RB RaceController"; state.settings.pdfTheme = ["classic", "minimal", "motorsport"].includes(String(form.get("pdfTheme") || "classic")) ? String(form.get("pdfTheme")) : "classic";