Desktop: first-run setup wizard + FlyWithLua/Web-API/Lua-status guidance
Adds the four onboarding pieces that were missing:
- flywithlua_present Tauri command + wizard step that checks the plugin and
links the FlyWithLua NG+ download when it's absent.
- Wizard step explaining how to enable X-Plane's Web/REST API (Settings>Network).
- FlyWithLua-Sync status row in the live diagnostics, from /api/health.lua
('N Skripte aktiv' / 'FlyWithLua fehlt' / 'kein X-Plane').
- 4-step guided wizard (X-Plane folder → FlyWithLua → Web-API → install+start)
that auto-opens on first launch and is reachable via the header Einrichten
button; the final step hands off to the normal server start (auto-installs Lua).
Verified the wizard DOM flow + the dLua status against a live bridge.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+28
-1
@@ -76,7 +76,7 @@ input:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px r
|
||||
.diag { margin-top: 10px; border-top: 1px solid var(--line-soft); padding-top: 8px; display: flex; flex-direction: column; gap: 5px; }
|
||||
.diag-row { display: flex; justify-content: space-between; font-size: 12px; color: var(--mut); }
|
||||
.diag-row b { color: var(--txt2); font-weight: 600; }
|
||||
.diag-row b.ok { color: var(--green); } .diag-row b.warn { color: var(--amber); }
|
||||
.diag-row b.ok { color: var(--green); } .diag-row b.warn { color: var(--amber); } .diag-row b.bad { color: #ff6b6b; }
|
||||
|
||||
.log-wrap { background: var(--bg2); border: 1px solid var(--line-soft); border-radius: 12px; padding: 6px 12px; }
|
||||
.log-wrap summary { color: var(--mut); font-size: 12px; cursor: pointer; padding: 4px 0; }
|
||||
@@ -104,3 +104,30 @@ input:focus { outline: none; border-color: var(--green); box-shadow: 0 0 0 3px r
|
||||
.asp-name { color: var(--txt2); font-size: 13px; }
|
||||
.asp-name em { color: var(--mut); font-style: normal; font-size: 11px; }
|
||||
.asp-count { color: var(--mut); font-size: 12px; min-width: 56px; text-align: right; }
|
||||
|
||||
/* header setup button sits between brand and status */
|
||||
.hd { display: flex; align-items: center; gap: 10px; }
|
||||
.hd #setupBtn { margin-left: auto; }
|
||||
.hd #status { margin-left: 8px; }
|
||||
|
||||
/* first-run setup wizard */
|
||||
.wiz { position: fixed; inset: 0; background: rgba(0,0,0,.55); display: flex; align-items: center; justify-content: center; z-index: 50; }
|
||||
.wiz.hidden { display: none; }
|
||||
.wiz-box { width: min(440px, 92vw); background: var(--bg2); border: 1px solid var(--line); border-radius: 14px; padding: 18px; box-shadow: 0 20px 60px rgba(0,0,0,.5); }
|
||||
.wiz-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
|
||||
.wiz-head b { font-size: 15px; }
|
||||
.wiz-steps { display: flex; gap: 6px; margin-left: auto; }
|
||||
.wiz-steps span { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: 11px; background: var(--bg3); color: var(--mut); }
|
||||
.wiz-steps span.on { background: var(--green); color: #042b10; font-weight: 700; }
|
||||
.wiz-x { background: none; border: none; color: var(--mut); font-size: 16px; cursor: pointer; }
|
||||
.wiz-step h3 { margin: 0 0 8px; font-size: 14px; color: var(--txt); }
|
||||
.wiz-step p { margin: 0 0 10px; color: var(--txt2); font-size: 13px; line-height: 1.45; }
|
||||
.wiz-step .wiz-sub { color: var(--mut); font-size: 12px; }
|
||||
.wiz-step a { color: var(--green); }
|
||||
.wiz-step code { background: var(--bg3); padding: 1px 5px; border-radius: 4px; font-size: 12px; }
|
||||
.wiz-ol { margin: 0 0 10px; padding-left: 20px; color: var(--txt2); font-size: 13px; line-height: 1.6; }
|
||||
.wiz-status { background: var(--bg3); border: 1px solid var(--line-soft); border-radius: 8px; padding: 8px 10px; font-size: 13px; margin: 8px 0; }
|
||||
.wiz-status.ok { color: var(--green); border-color: #1d4a2c; }
|
||||
.wiz-status.bad { color: #ff6b6b; border-color: #5a2424; }
|
||||
.wiz-foot { display: flex; justify-content: space-between; gap: 10px; margin-top: 16px; }
|
||||
.wiz-foot .btn { flex: 1; }
|
||||
|
||||
Reference in New Issue
Block a user