Right sidebar nav: Library / Reports / Documentation tabs (WebView2)

The body of the launcher is now a 2-column layout:
- Left : swappable content area
- Right (200px) : sidebar with 3 nav buttons + active-state highlighting

Three pages, all under the same window chrome / footer:

1. **Library** (default) — the existing main view (featured version,
   other versions list, floating "Vérifier les MAJ" button, copyright).
2. **Reports** — embedded WebView2 navigated to a configurable URL.
   Default http://localhost/ProserveReport/ which matches the local
   stats tool installed on each customer machine alongside XAMPP.
3. **Documentation** — WebView2 with a configurable URL, falls back
   to a placeholder explaining where to set it if empty.

Implementation
- LocalConfig gains ReportUrl + DocumentationUrl (string).
- MainViewModel gains LauncherPage enum + CurrentPage state with
  Navigate{Library,Report,Documentation}Command. ReportUri /
  DocumentationUri parse the strings to Uri for WebView2.Source.
- Theme.xaml: NavButton style (transparent, left-aligned, hover
  darken, active state highlighted via Tag bool + accent left-border).
- InverseBoolToVisibilityConverter added (true → Collapsed) for the
  documentation placeholder fallback.
- Microsoft.Web.WebView2 NuGet (1.0.2792.45). Runtime is pre-installed
  on Win11 and auto-pushed via Windows Update on Win10. If absent,
  WebView2 surfaces an error which the user sees inline.
- Settings → Avancés → Serveur extended with the two URL fields.
- Strings.cs: NavLibrary / NavReport / NavDocumentation,
  SettingsReportUrl / SettingsDocsUrl, DocsPlaceholder, WebViewLoadError.
  Sidebar localized in 5 languages.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-03 08:52:51 +02:00
parent f62b212fc1
commit 288cad585a
9 changed files with 237 additions and 1 deletions

View File

@@ -28,6 +28,21 @@ public sealed class LocalConfig
/// </summary>
public bool VerifyDownloadHash { get; set; } = true;
/// <summary>
/// URL de l'outil de reporting local (page web embarquée dans le launcher,
/// onglet "Report"). Par défaut pointe vers l'install standard ASTERION
/// dans XAMPP. Surchargeable dans Settings → Avancés.
/// </summary>
public string ReportUrl { get; set; } = "http://localhost/ProserveReport/";
/// <summary>
/// URL de la documentation locale (onglet "Documentation"). Vide par défaut :
/// l'utilisateur peut pointer vers une URL locale ou web. Si vide, l'onglet
/// affiche un placeholder avec les liens vers les fichiers .pptx du dossier
/// d'install du launcher.
/// </summary>
public string DocumentationUrl { get; set; } = string.Empty;
public LicenseConfig License { get; set; } = new();
/// <summary>