Compare commits
11 Commits
dbe7d43387
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| f69ba7c016 | |||
| 540f694f01 | |||
| ee2d56b705 | |||
| 53bba10b3e | |||
| 7a97afe046 | |||
| 9d4da39cb6 | |||
| 4450722428 | |||
| 167dbd6d3a | |||
| 30123e5576 | |||
| 6af563793b | |||
| 52f77c814c |
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
"$schema": "../node_modules/@tauri-apps/cli/config.schema.json",
|
||||||
"productName": "ODIAN Launcher",
|
"productName": "ODIAN Launcher",
|
||||||
"version": "0.1.45",
|
"version": "0.1.51",
|
||||||
"identifier": "fr.odian.launcher",
|
"identifier": "fr.odian.launcher",
|
||||||
"build": {
|
"build": {
|
||||||
"frontendDist": "../dist",
|
"frontendDist": "../dist",
|
||||||
|
|||||||
@@ -257,6 +257,20 @@
|
|||||||
Offline: ODIAN <strong>{s?.installed}</strong> runs on local data and map tiles.
|
Offline: ODIAN <strong>{s?.installed}</strong> runs on local data and map tiles.
|
||||||
{/if}
|
{/if}
|
||||||
</p>
|
</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}
|
{#if launcher.syncAttention > 0}
|
||||||
<p class="secondary attention">
|
<p class="secondary attention">
|
||||||
<Icon name="alert" size={14} />
|
<Icon name="alert" size={14} />
|
||||||
@@ -492,8 +506,11 @@
|
|||||||
{#if !devRun}
|
{#if !devRun}
|
||||||
<p class="dev-note">Name the folder that holds <code>ODIAN_Engine</code> and Launch runs from it.</p>
|
<p class="dev-note">Name the folder that holds <code>ODIAN_Engine</code> and Launch runs from it.</p>
|
||||||
{:else if devUser}
|
{:else if devUser}
|
||||||
|
<!-- One line, and ONE flex child: `.attention` is display:flex, so loose text and
|
||||||
|
<strong> each become a column. "no live data" earns its place - the old wording
|
||||||
|
said only "no sync", and the missing tracks were hunted through the whole stack. -->
|
||||||
<p class="dev-note attention">
|
<p class="dev-note attention">
|
||||||
Running as <strong>{devUser}</strong> — this PC will not sync with the DHP.
|
<span>Running as <strong>{devUser}</strong> — no sync, no live data.</span>
|
||||||
</p>
|
</p>
|
||||||
{/if}
|
{/if}
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
+6
-1
@@ -1,7 +1,7 @@
|
|||||||
// Browser-only stand-in for the Rust backend, so the hub can be designed with
|
// 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.
|
// `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 |
|
// offline-not-installed | installing | running | sync-conflicts | error |
|
||||||
// dev (a licensed developer PC: the Dev section of Settings appears)
|
// dev (a licensed developer PC: the Dev section of Settings appears)
|
||||||
// &fail=sign_in | install | restore | launch | notes make that flow fail
|
// &fail=sign_in | install | restore | launch | notes make that flow fail
|
||||||
@@ -265,6 +265,11 @@ function initialStatus(scenario: MockScenario): Status {
|
|||||||
case "ready":
|
case "ready":
|
||||||
Object.assign(s, { installed: CURRENT, operator: OPERATOR, signed_in: true });
|
Object.assign(s, { installed: CURRENT, operator: OPERATOR, signed_in: true });
|
||||||
break;
|
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":
|
case "offline-installed":
|
||||||
Object.assign(s, { online: false, installed: PREVIOUS, operator: OPERATOR });
|
Object.assign(s, { online: false, installed: PREVIOUS, operator: OPERATOR });
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -349,6 +349,7 @@ export const MOCK_SCENARIOS = [
|
|||||||
"first-run",
|
"first-run",
|
||||||
"update-required",
|
"update-required",
|
||||||
"ready",
|
"ready",
|
||||||
|
"new-pc",
|
||||||
"offline-installed",
|
"offline-installed",
|
||||||
"offline-not-installed",
|
"offline-not-installed",
|
||||||
"installing",
|
"installing",
|
||||||
|
|||||||
Reference in New Issue
Block a user