v0.12.0 — Report tool auto-deploy from PROSERVE ZIP
Each PROSERVE ZIP can ship a _report/ subfolder alongside _migrations/.
After install + DB migration, the launcher copies _report/ to the local
XAMPP htdocs (default C:\xampp\htdocs\ProserveReport\) so the Reports
tab in the sidebar always serves the matching version.
Service (PSLauncher.Core/ReportTool)
- IReportToolDeployer + ReportToolDeployer.
- Atomic deploy: copy to {target}.new/ → rename current to .old/ →
rename .new → final → cleanup .old. Apache never sees a half-state.
- Skip silencieux si _report/ absent du ZIP (PROSERVE release qui ne
touche pas au Report).
- DeployStatus enum (SkippedNoSourceFolder, XamppNotFound, Failed,
Deployed) renvoyé pour gestion UI claire.
Config (LocalConfig)
- ReportToolConfig (HtdocsRoot, FolderName, AutoDeploy). Defaults
matchent l'install standard ASTERION (C:\xampp\htdocs\ProserveReport).
Install pipeline (MainViewModel)
- Étape 6 après extraction + migrations. Progress reporté via le footer
Library : « 📂 Déploiement Report : 47/120 — assets/main.js ».
XAMPP introuvable → dialog avec lien vers Settings → Avancés.
Settings UI (SettingsDialog → Avancés)
- Nouveau bloc « OUTIL REPORT (XAMPP htdocs) » : 2 champs path + checkbox
AutoDeploy + bouton « 📂 Re-déployer maintenant » qui rejoue le deploy
sur la dernière version installée. Utile après changement de chemin
htdocs ou si l'auto-deploy avait foiré (XAMPP éteint).
Versions bumped to 0.12.0 (App + Updater + installer .iss).
Côté release : tu ajoutes _report/ dans le source de PROSERVE, tu zippes,
tu uploades. Les clients récupèrent ZIP + migrations + Report en une
seule install.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -45,6 +45,14 @@ public sealed class LocalConfig
|
||||
|
||||
public LicenseConfig License { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Configuration du déploiement de l'outil Report (page web locale embarquée
|
||||
/// dans l'onglet "Statistiques") vers la racine XAMPP htdocs.
|
||||
/// Le launcher copie le dossier <c>_report/</c> bundled dans chaque ZIP
|
||||
/// PROSERVE vers <c>{HtdocsRoot}\{FolderName}</c> à chaque install.
|
||||
/// </summary>
|
||||
public ReportToolConfig ReportTool { get; set; } = new();
|
||||
|
||||
/// <summary>
|
||||
/// Connexion à la base MySQL locale (XAMPP) utilisée par PROSERVE pour ses
|
||||
/// statistiques. Le launcher s'en sert pour appliquer les migrations bundled
|
||||
@@ -87,6 +95,20 @@ public sealed class DatabaseConfig
|
||||
public bool AutoApplyMigrations { get; set; } = true;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Paramètres de déploiement de l'outil Report local.
|
||||
/// Le launcher cherche un sous-dossier <c>_report/</c> dans chaque ZIP PROSERVE
|
||||
/// installé et le copie vers <c>{HtdocsRoot}\{FolderName}</c> via un rename
|
||||
/// atomique (deploy en .new puis swap). L'URL de l'onglet Statistiques pointe
|
||||
/// vers <c>http://localhost/{FolderName}/</c> ; les deux doivent matcher.
|
||||
/// </summary>
|
||||
public sealed class ReportToolConfig
|
||||
{
|
||||
public string HtdocsRoot { get; set; } = @"C:\xampp\htdocs";
|
||||
public string FolderName { get; set; } = "ProserveReport";
|
||||
public bool AutoDeploy { get; set; } = true;
|
||||
}
|
||||
|
||||
public sealed class LicenseConfig
|
||||
{
|
||||
public string? EncryptedKey { get; set; }
|
||||
|
||||
Reference in New Issue
Block a user