109 lines
4.7 KiB
JavaScript
109 lines
4.7 KiB
JavaScript
// Gestion du localStorage pour la page de diagnostic
|
|
function initLocalStorageDiagnostic() {
|
|
const localStorageInfo = document.getElementById('local-storage-info');
|
|
const clearLocalStorageBtn = document.getElementById('clear-localstorage');
|
|
|
|
function updateLocalStorageInfo() {
|
|
let html = '<ul class="list-unstyled mb-0">';
|
|
|
|
// Vérifier les favoris
|
|
try {
|
|
const favoritesData = localStorage.getItem('favmastokey_favorites');
|
|
if (favoritesData) {
|
|
const favorites = JSON.parse(favoritesData);
|
|
html += '<li><strong>Favoris stockés:</strong> ' + (Array.isArray(favorites) ? favorites.length : '?') + ' URLs</li>';
|
|
} else {
|
|
html += '<li><strong>Favoris stockés:</strong> <span class="text-muted">Aucun</span></li>';
|
|
}
|
|
} catch (e) {
|
|
html += '<li><strong>Favoris stockés:</strong> <span class="text-danger">Erreur</span></li>';
|
|
}
|
|
|
|
// Vérifier la migration
|
|
try {
|
|
const migrationData = localStorage.getItem('favmastokey_migration');
|
|
if (migrationData) {
|
|
const migration = JSON.parse(migrationData);
|
|
html += '<li><strong>État de la migration:</strong> ' + (migration.status || 'Non défini') + '</li>';
|
|
|
|
if (migration.progress) {
|
|
html += '<li><strong>Progression:</strong> ' +
|
|
migration.progress.current + '/' +
|
|
migration.progress.total + ' (' +
|
|
(migration.progress.percentage || 0).toFixed(1) + '%)</li>';
|
|
}
|
|
|
|
if (migration.lastUpdateTime) {
|
|
const date = new Date(migration.lastUpdateTime);
|
|
html += '<li><strong>Dernière mise à jour:</strong> ' + date.toLocaleString() + '</li>';
|
|
}
|
|
} else {
|
|
html += '<li><strong>État de la migration:</strong> <span class="text-muted">Aucune migration en cours</span></li>';
|
|
}
|
|
} catch (e) {
|
|
html += '<li><strong>État de la migration:</strong> <span class="text-danger">Erreur</span></li>';
|
|
}
|
|
|
|
// Autres données
|
|
const additionalKeys = [
|
|
{key: 'favmastokey_federated_cache', label: 'Cache fédéré'},
|
|
{key: 'favmastokey_ratelimit_queue', label: 'File d\'attente rate-limit'},
|
|
{key: 'favmastokey_api_performance', label: 'Statistiques API'},
|
|
{key: 'favmastokey_multitoken_migration', label: 'Migration mode filou'}
|
|
];
|
|
|
|
for (const item of additionalKeys) {
|
|
try {
|
|
const dataStr = localStorage.getItem(item.key);
|
|
if (dataStr) {
|
|
const data = JSON.parse(dataStr);
|
|
const size = typeof data === 'object' ?
|
|
(Array.isArray(data) ? data.length : Object.keys(data).length) : 1;
|
|
html += `<li><strong>${item.label}:</strong> ${size} entrées</li>`;
|
|
}
|
|
} catch (e) {
|
|
// Ignorer les erreurs
|
|
}
|
|
}
|
|
|
|
html += '</ul>';
|
|
localStorageInfo.innerHTML = html;
|
|
}
|
|
|
|
// Mettre à jour au chargement
|
|
updateLocalStorageInfo();
|
|
|
|
// Gérer le bouton d'effacement
|
|
if (clearLocalStorageBtn) {
|
|
clearLocalStorageBtn.addEventListener('click', function() {
|
|
if (confirm('Êtes-vous sûr de vouloir effacer toutes les données de migration stockées localement ?')) {
|
|
// Liste des clés connues
|
|
const keysToRemove = [
|
|
'favmastokey_favorites',
|
|
'favmastokey_migration',
|
|
'favmastokey_federated_cache',
|
|
'favmastokey_ratelimit_queue',
|
|
'favmastokey_api_performance',
|
|
'favmastokey_multitoken_migration'
|
|
];
|
|
|
|
// Supprimer toutes les clés connues
|
|
keysToRemove.forEach(key => localStorage.removeItem(key));
|
|
|
|
// Rechercher d'autres clés potentielles
|
|
for (let i = 0; i < localStorage.length; i++) {
|
|
const key = localStorage.key(i);
|
|
if (key && key.startsWith('favmastokey_')) {
|
|
localStorage.removeItem(key);
|
|
}
|
|
}
|
|
|
|
updateLocalStorageInfo();
|
|
alert('Données localStorage effacées avec succès.');
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
// Exécuter après chargement du DOM
|
|
document.addEventListener('DOMContentLoaded', initLocalStorageDiagnostic); |