feat: onglet Réparation dans paramètres — gestion modules fantômes
- GET /api/repair/modules : liste les modules non-core en DB
- DELETE /api/repair/modules/{id} : supprime un module de la DB
- settings.html : onglet Réparation avec liste + bouton Supprimer
- app.js : loadRepair() + resetModule() dans settingsPage
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
ab834600ba
commit
3bc55a4c6f
4 changed files with 132 additions and 1 deletions
|
|
@ -71,6 +71,9 @@
|
|||
<button class="tab-btn" :class="{ active: tab === 'shortcuts' }" @click="tab = 'shortcuts'">
|
||||
<i class="lnid-link-1"></i> Raccourcis
|
||||
</button>
|
||||
<button class="tab-btn" :class="{ active: tab === 'repair' }" @click="tab = 'repair'; loadRepair()">
|
||||
<i class="lnid-wrench-1"></i> Réparation
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Général -->
|
||||
|
|
@ -175,8 +178,45 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Réparation -->
|
||||
<div class="tab-panel" x-show="tab === 'repair'">
|
||||
<p class="form-hint" style="margin-bottom:1rem">
|
||||
Les <strong>modules fantômes</strong> sont des modules présents en base de données
|
||||
mais dont le code n'est pas chargé. Les supprimer permet de les réinstaller proprement.
|
||||
</p>
|
||||
<div class="loading-state" x-show="repairLoading">
|
||||
<div class="spinner-lg"></div><span>Chargement…</span>
|
||||
</div>
|
||||
<div x-show="!repairLoading">
|
||||
<p class="empty-state" x-show="repairModules.length === 0">Aucun module non-core en base de données.</p>
|
||||
<div class="modules-grid" x-show="repairModules.length > 0">
|
||||
<template x-for="mod in repairModules" :key="mod.id">
|
||||
<div class="neu-card module-card">
|
||||
<div class="module-header">
|
||||
<div class="module-icon"><i class="lnid-puzzle"></i></div>
|
||||
<div class="module-info">
|
||||
<span class="module-name" x-text="mod.name || mod.id"></span>
|
||||
<span class="module-version" x-text="mod.is_enabled ? 'Activé' : 'Désactivé'"></span>
|
||||
<span class="module-desc" x-text="mod.installed_at ? 'Installé le ' + mod.installed_at.slice(0,10) : 'Date inconnue'"></span>
|
||||
</div>
|
||||
<div class="module-toggle">
|
||||
<button class="neu-btn neu-btn--sm neu-btn--danger"
|
||||
@click="resetModule(mod)"
|
||||
:disabled="resetting[mod.id]">
|
||||
<span x-show="resetting[mod.id]" class="spinner-sm"></span>
|
||||
<i x-show="!resetting[mod.id]" class="lnid-trash-1"></i>
|
||||
Supprimer de la DB
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Save actions -->
|
||||
<div class="save-bar" x-show="tab !== 'shortcuts'">
|
||||
<div class="save-bar" x-show="tab !== 'shortcuts' && tab !== 'repair'">
|
||||
<div class="save-feedback">
|
||||
<span class="save-success" x-show="saved">
|
||||
<i class="lnid-check-circle-1"></i> Paramètres sauvegardés
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue