Rename app to JMK RB RaceController

This commit is contained in:
larssand
2026-03-16 15:40:14 +01:00
parent a6c85466ff
commit f64879b6d8
2 changed files with 24 additions and 24 deletions

View File

@@ -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. RC timing app med sponsor-eventflöde (delade bilar/transpondrar mellan olika heat/finaler), AMMC WebSocket och lokal SQLite-lagring på Windows.

View File

@@ -41,8 +41,8 @@ const TRANSLATIONS = {
"nav.guide": "Guide", "nav.guide": "Guide",
"nav.guide_sub": "Dokumentation och uppstart", "nav.guide_sub": "Dokumentation och uppstart",
"ui.language": "Språk", "ui.language": "Språk",
"brand.title": "JMK RB", "brand.title": "JMK RB RaceController",
"brand.subtitle": "Live Event", "brand.subtitle": "RC Timing System",
"ui.no_active_session": "Ingen aktiv session", "ui.no_active_session": "Ingen aktiv session",
"ui.event": "Event", "ui.event": "Event",
"ui.decoder_online": "Decoder online", "ui.decoder_online": "Decoder online",
@@ -606,7 +606,7 @@ const TRANSLATIONS = {
"overlay.subtitle": "Extern leaderboard-skärm", "overlay.subtitle": "Extern leaderboard-skärm",
"overlay.no_active": "Ingen aktiv session vald.", "overlay.no_active": "Ingen aktiv session vald.",
"overlay.last_passings": "Senaste passeringar", "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_leaderboard": "Leaderboard",
"overlay.mode_speaker": "Speaker", "overlay.mode_speaker": "Speaker",
"overlay.mode_results": "Resultat", "overlay.mode_results": "Resultat",
@@ -678,8 +678,8 @@ const TRANSLATIONS = {
"nav.guide": "Guide", "nav.guide": "Guide",
"nav.guide_sub": "Documentation and setup", "nav.guide_sub": "Documentation and setup",
"ui.language": "Language", "ui.language": "Language",
"brand.title": "JMK RB", "brand.title": "JMK RB RaceController",
"brand.subtitle": "Live Event", "brand.subtitle": "RC Timing System",
"ui.no_active_session": "No Active Session", "ui.no_active_session": "No Active Session",
"ui.event": "Event", "ui.event": "Event",
"ui.decoder_online": "Decoder Online", "ui.decoder_online": "Decoder Online",
@@ -1243,7 +1243,7 @@ const TRANSLATIONS = {
"overlay.subtitle": "External leaderboard screen", "overlay.subtitle": "External leaderboard screen",
"overlay.no_active": "No active session selected.", "overlay.no_active": "No active session selected.",
"overlay.last_passings": "Recent passings", "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_leaderboard": "Leaderboard",
"overlay.mode_speaker": "Speaker", "overlay.mode_speaker": "Speaker",
"overlay.mode_results": "Results", "overlay.mode_results": "Results",
@@ -1420,15 +1420,15 @@ function seedDefaultData() {
} }
if (!state.settings.clubName) { if (!state.settings.clubName) {
state.settings.clubName = "JMK RB"; state.settings.clubName = "JMK RB RaceController";
} }
if (!state.settings.clubTagline) { if (!state.settings.clubTagline) {
state.settings.clubTagline = "Live Event"; state.settings.clubTagline = "RC Timing System";
} }
if (!state.settings.pdfFooter) { 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) { if (!state.settings.pdfTheme) {
@@ -1487,9 +1487,9 @@ function loadState() {
speakerBestLapCueEnabled: parsed.settings?.speakerBestLapCueEnabled !== false, speakerBestLapCueEnabled: parsed.settings?.speakerBestLapCueEnabled !== false,
speakerTop3CueEnabled: parsed.settings?.speakerTop3CueEnabled === true, speakerTop3CueEnabled: parsed.settings?.speakerTop3CueEnabled === true,
speakerSessionStartCueEnabled: parsed.settings?.speakerSessionStartCueEnabled !== false, speakerSessionStartCueEnabled: parsed.settings?.speakerSessionStartCueEnabled !== false,
clubName: parsed.settings?.clubName || "JMK RB", clubName: parsed.settings?.clubName || "JMK RB RaceController",
clubTagline: parsed.settings?.clubTagline || "Live Event", clubTagline: parsed.settings?.clubTagline || "RC Timing System",
pdfFooter: parsed.settings?.pdfFooter || "Generated by JMK RB Live Event", pdfFooter: parsed.settings?.pdfFooter || "Generated by JMK RB RaceController",
pdfTheme: parsed.settings?.pdfTheme || "classic", pdfTheme: parsed.settings?.pdfTheme || "classic",
logoDataUrl: parsed.settings?.logoDataUrl || "", logoDataUrl: parsed.settings?.logoDataUrl || "",
racePresets: Array.isArray(parsed.settings?.racePresets) racePresets: Array.isArray(parsed.settings?.racePresets)
@@ -1529,9 +1529,9 @@ function loadState() {
speakerBestLapCueEnabled: true, speakerBestLapCueEnabled: true,
speakerTop3CueEnabled: false, speakerTop3CueEnabled: false,
speakerSessionStartCueEnabled: true, speakerSessionStartCueEnabled: true,
clubName: "JMK RB", clubName: "JMK RB RaceController",
clubTagline: "Live Event", clubTagline: "RC Timing System",
pdfFooter: "Generated by JMK RB Live Event", pdfFooter: "Generated by JMK RB RaceController",
pdfTheme: "classic", pdfTheme: "classic",
logoDataUrl: "", logoDataUrl: "",
racePresets: [], racePresets: [],
@@ -1775,9 +1775,9 @@ function applyPersistedState(persisted) {
speakerBestLapCueEnabled: persisted.settings?.speakerBestLapCueEnabled !== false, speakerBestLapCueEnabled: persisted.settings?.speakerBestLapCueEnabled !== false,
speakerTop3CueEnabled: persisted.settings?.speakerTop3CueEnabled === true, speakerTop3CueEnabled: persisted.settings?.speakerTop3CueEnabled === true,
speakerSessionStartCueEnabled: persisted.settings?.speakerSessionStartCueEnabled !== false, speakerSessionStartCueEnabled: persisted.settings?.speakerSessionStartCueEnabled !== false,
clubName: persisted.settings?.clubName || state.settings.clubName || "JMK RB", clubName: persisted.settings?.clubName || state.settings.clubName || "JMK RB RaceController",
clubTagline: persisted.settings?.clubTagline || state.settings.clubTagline || "Live Event", clubTagline: persisted.settings?.clubTagline || state.settings.clubTagline || "RC Timing System",
pdfFooter: persisted.settings?.pdfFooter || state.settings.pdfFooter || "Generated by JMK RB Live Event", pdfFooter: persisted.settings?.pdfFooter || state.settings.pdfFooter || "Generated by JMK RB RaceController",
pdfTheme: persisted.settings?.pdfTheme || state.settings.pdfTheme || "classic", pdfTheme: persisted.settings?.pdfTheme || state.settings.pdfTheme || "classic",
logoDataUrl: persisted.settings?.logoDataUrl || state.settings.logoDataUrl || "", logoDataUrl: persisted.settings?.logoDataUrl || state.settings.logoDataUrl || "",
racePresets: Array.isArray(persisted.settings?.racePresets) racePresets: Array.isArray(persisted.settings?.racePresets)
@@ -2050,7 +2050,7 @@ function resolveEventBranding(event) {
return { return {
brandName: local.brandName || state.settings.clubName || "JMK RB", brandName: local.brandName || state.settings.clubName || "JMK RB",
brandTagline: local.brandTagline || state.settings.clubTagline || "Live Event", 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", pdfTheme: local.pdfTheme || state.settings.pdfTheme || "classic",
logoDataUrl: local.logoDataUrl || state.settings.logoDataUrl || "", logoDataUrl: local.logoDataUrl || state.settings.logoDataUrl || "",
}; };
@@ -5420,7 +5420,7 @@ function renderOverlay() {
<span class="pill">${escapeHtml(modeLabel)}</span> <span class="pill">${escapeHtml(modeLabel)}</span>
</div> </div>
<h1>${escapeHtml(active.name)}</h1> <h1>${escapeHtml(active.name)}</h1>
<p class="overlay-header-sub">${escapeHtml(branding.brandName || "JMK RB Live Event")}</p> <p class="overlay-header-sub">${escapeHtml(branding.brandName || "JMK RB RaceController")}</p>
</div> </div>
</div> </div>
<div class="overlay-meta"> <div class="overlay-meta">
@@ -6113,9 +6113,9 @@ function renderSettings() {
state.settings.speakerBestLapCueEnabled = form.get("speakerBestLapCueEnabled") === "on"; state.settings.speakerBestLapCueEnabled = form.get("speakerBestLapCueEnabled") === "on";
state.settings.speakerTop3CueEnabled = form.get("speakerTop3CueEnabled") === "on"; state.settings.speakerTop3CueEnabled = form.get("speakerTop3CueEnabled") === "on";
state.settings.speakerSessionStartCueEnabled = form.get("speakerSessionStartCueEnabled") === "on"; state.settings.speakerSessionStartCueEnabled = form.get("speakerSessionStartCueEnabled") === "on";
state.settings.clubName = String(form.get("clubName") || "").trim() || "JMK RB"; state.settings.clubName = String(form.get("clubName") || "").trim() || "JMK RB RaceController";
state.settings.clubTagline = String(form.get("clubTagline") || "").trim() || "Live Event"; state.settings.clubTagline = String(form.get("clubTagline") || "").trim() || "RC Timing System";
state.settings.pdfFooter = String(form.get("pdfFooter") || "").trim() || "Generated by JMK RB Live Event"; 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")) state.settings.pdfTheme = ["classic", "minimal", "motorsport"].includes(String(form.get("pdfTheme") || "classic"))
? String(form.get("pdfTheme")) ? String(form.get("pdfTheme"))
: "classic"; : "classic";