This commit is contained in:
Kelorastus
2026-10-02 13:10:50 +02:00
3 changed files with 21 additions and 1 deletions
+14
View File
@@ -257,6 +257,20 @@
Offline: ODIAN <strong>{s?.installed}</strong> runs on local data and map tiles.
{/if}
</p>
{#if s?.online && !s.signed_in && !checking}
<!-- The operator is remembered with the install (launcher.json travels with a drive),
the DHP sign-in is not (Credential Manager, per PC). So a drive on another PC offers
Launch as if nothing were missing, and ODIAN then runs on that PC's own data: no live
aircraft, no tiles from the site. Launch stays the button - a sign-in that cannot
complete must not stop ODIAN - but the gap is said here, with the way out. -->
<p class="secondary attention">
<Icon name="alert" size={14} />
<span>
Not signed in on this PC: ODIAN will run on this PC's own data, without live aircraft.
<button class="btn-link" disabled={blocked} onclick={() => launcher.signIn()}>Sign in</button>
</span>
</p>
{/if}
{#if launcher.syncAttention > 0}
<p class="secondary attention">
<Icon name="alert" size={14} />
+6 -1
View File
@@ -1,7 +1,7 @@
// Browser-only stand-in for the Rust backend, so the hub can be designed with
// `npm run dev`. Same shapes as docs/CONTRACT.md, driven by timers.
//
// ?scenario=first-run | update-required | ready | offline-installed |
// ?scenario=first-run | update-required | ready | new-pc | offline-installed |
// offline-not-installed | installing | running | sync-conflicts | error |
// dev (a licensed developer PC: the Dev section of Settings appears)
// &fail=sign_in | install | restore | launch | notes make that flow fail
@@ -265,6 +265,11 @@ function initialStatus(scenario: MockScenario): Status {
case "ready":
Object.assign(s, { installed: CURRENT, operator: OPERATOR, signed_in: true });
break;
case "new-pc":
// A drive on a PC it has never been on: the install and its operator came with it,
// the DHP sign-in (per PC) did not. Online, launchable, and not signed in.
Object.assign(s, { installed: CURRENT, operator: OPERATOR, signed_in: false });
break;
case "offline-installed":
Object.assign(s, { online: false, installed: PREVIOUS, operator: OPERATOR });
break;
+1
View File
@@ -349,6 +349,7 @@ export const MOCK_SCENARIOS = [
"first-run",
"update-required",
"ready",
"new-pc",
"offline-installed",
"offline-not-installed",
"installing",