feat: diff viewer backups — point 6 (backups, diff, restore)
- Backend: 3 nouveaux endpoints
- GET /api/file/{vault}/backups — liste les backups horodatés
- GET /api/file/{vault}/diff — diff unifié entre versions
- POST /api/file/{vault}/restore — restaure une version (backup auto avant)
- Frontend: module backups.js — UI modale avec:
- Sélecteur gauche (backup) / droite (version actuelle ou autre backup)
- Diff coloré: vert pour ajouts, rouge pour suppressions
- Bouton Restaurer avec confirmation
- Menu contextuel: clic droit fichier → 'Backups / Versions'
- CSS: styles complets pour la modale, toolbar, table de diff
- ROADMAP: point 6 marqué comme complété
This commit is contained in:
@@ -1675,6 +1675,8 @@ export const ContextMenuManager = {
|
||||
this._addItem('trash-2', 'Supprimer', () => this._deleteFile(), isReadonly);
|
||||
this._addSeparator();
|
||||
this._addItem('bookmark-plus', 'Ajouter aux bookmarks', () => this._toggleBookmark(), false);
|
||||
this._addSeparator();
|
||||
this._addItem('history', 'Backups / Versions', () => this._openBackupViewer(), false);
|
||||
}
|
||||
|
||||
this._menu.classList.add('active');
|
||||
@@ -1800,6 +1802,16 @@ export const ContextMenuManager = {
|
||||
DashboardBookmarkWidget.load();
|
||||
}
|
||||
} catch (err) { showToast("Erreur: " + err.message, "error"); }
|
||||
},
|
||||
|
||||
_openBackupViewer() {
|
||||
// Dynamically import the backup viewer module to avoid circular deps
|
||||
import('./backups.js').then(mod => {
|
||||
mod.openBackupViewer(this._targetVault, this._targetPath);
|
||||
}).catch(err => {
|
||||
showToast("Erreur lors du chargement du viewer: " + err.message, "error");
|
||||
});
|
||||
this.hide();
|
||||
}
|
||||
};
|
||||
export const TabManager = {
|
||||
|
||||
Reference in New Issue
Block a user