Update in-app Guide for this session's features, extend passing purge to Clear data

The in-app Guide page hadn't been updated for the guided practice
exercises, their mobile self-service controls, the end-of-practice
summary, or the new Resultatarkiv view - none of it was documented
anywhere a user would find it. Added three new Training walkthrough
steps and a new Resultatarkiv section (overview card + 5-step guide).

While correcting guide text that claimed raw SQLite passing rows are
always retained, found the same gap the results-archive work already
fixed for deleting a single event/session also applies to "Rensa data"
(Settings -> Clear data): the drivers/cars/races/all-competition-data
scopes all reset resultsBySession for every current session, not just
ones tied to the cleared scope, so every session's raw rows became
orphaned at once. clearDataScope now purges those sessions' rows too,
through the same /api/passings/purge endpoint.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
larssand
2026-09-09 18:31:03 +02:00
parent 94794350e5
commit bed0dfd9f2
6 changed files with 55 additions and 8 deletions

View File

@@ -33,6 +33,7 @@ export function renderGuideView({ dom, t }) {
${renderGuideOverviewCard("guide.race_day_title", "guide.card_race_day_blurb", { t })}
${renderGuideOverviewCard("guide.team_title", "guide.card_team_blurb", { t })}
${renderGuideOverviewCard("guide.training_title", "guide.card_training_blurb", { t })}
${renderGuideOverviewCard("guide.archive_title", "guide.card_archive_blurb", { t })}
${renderGuideOverviewCard("guide.windows_title", "guide.card_decoder_blurb", { t })}
</div>
</div>
@@ -69,7 +70,11 @@ export function renderGuideView({ dom, t }) {
<div class="guide-section-grid mt-16">
${renderGuidePanel("guide.dashboard_title", ["guide.dashboard_1", "guide.dashboard_2", "guide.dashboard_3", "guide.dashboard_4"], "", { t })}
${renderGuidePanel("guide.training_title", ["guide.training_1", "guide.training_2", "guide.training_3", "guide.training_4", "guide.training_5", "guide.training_6", "guide.training_7", "guide.training_8", "guide.training_9", "guide.training_10", "guide.training_11", "guide.training_12", "guide.training_13", "guide.training_14", "guide.training_15", "guide.training_16", "guide.training_17", "guide.training_18", "guide.training_19", "guide.training_20", "guide.training_21", "guide.training_22", "guide.training_23", "guide.training_24", "guide.training_25", "guide.training_26"], "", { t })}
${renderGuidePanel("guide.training_title", ["guide.training_1", "guide.training_2", "guide.training_3", "guide.training_4", "guide.training_5", "guide.training_6", "guide.training_7", "guide.training_8", "guide.training_9", "guide.training_10", "guide.training_11", "guide.training_12", "guide.training_13", "guide.training_14", "guide.training_15", "guide.training_16", "guide.training_17", "guide.training_18", "guide.training_19", "guide.training_20", "guide.training_21", "guide.training_22", "guide.training_23", "guide.training_24", "guide.training_25", "guide.training_26", "guide.training_27", "guide.training_28", "guide.training_29"], "", { t })}
</div>
<div class="guide-section-grid mt-16">
${renderGuidePanel("guide.archive_title", ["guide.archive_1", "guide.archive_2", "guide.archive_3", "guide.archive_4", "guide.archive_5"], "", { t })}
</div>
<div class="guide-section-grid mt-16">