feat: système de mise à jour via Gitea Releases

- Vérification auto au démarrage (après 5s) via API /releases/latest
- Dialog optionnel avec snooze : 1j / 2j / 5j / 1sem / 2sem / indéfiniment
- Bouton "Mises à jour" dans la topbar (ignore le snooze)
- tools/release.js : script pour publier une release et uploader les binaires

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
s
2026-06-30 11:16:56 +02:00
parent 1a5afcfd6d
commit c4f7c9714a
4 changed files with 283 additions and 3 deletions

View File

@@ -301,6 +301,7 @@
<div class="spacer"></div>
<button class="btn-ghost" id="homeBtn" hidden>🏠 Accueil</button>
<button class="btn-ghost" id="changeFolderBtn" hidden>Changer de dossier</button>
<button class="btn-ghost small" id="checkUpdateBtn" title="Vérifier les mises à jour">Mises à jour</button>
</div>
<!-- ============ ÉCRAN 1 : choix du dossier (une seule fois, global) ============ -->
@@ -707,6 +708,23 @@
showScreen('hub');
});
homeBtn.addEventListener('click', () => showScreen('hub'));
// ---------- Bouton "Mises à jour" ----------
const checkUpdateBtn = $('checkUpdateBtn');
checkUpdateBtn.addEventListener('click', async () => {
checkUpdateBtn.disabled = true;
checkUpdateBtn.textContent = 'Vérification...';
const result = await window.api.checkUpdateManual();
checkUpdateBtn.disabled = false;
checkUpdateBtn.textContent = 'Mises à jour';
if (!result.checked) return;
if (!result.hasUpdate) {
checkUpdateBtn.textContent = 'A jour ✓';
setTimeout(() => { checkUpdateBtn.textContent = 'Mises à jour'; }, 3000);
}
// Si hasUpdate: la dialog native s'est affichée côté main.js
});
$('tileFarmTracker').addEventListener('click', () => showScreen('farmTracker'));
$('tileDropBoard').addEventListener('click', () => { showScreen('dropBoard'); renderDropBoard(); });
$('tileHistory').addEventListener('click', () => { showScreen('history'); renderHistoryScreen(); });