Files
EverShelf/test.html
T
morgane 450095376c
CI / PHP Syntax Check (push) Has been cancelled
CI / JavaScript Lint (push) Has been cancelled
CI / Docker Build Test (push) Has been cancelled
CI / Validate Translation Files (push) Has been cancelled
CI / Auto-merge develop → main (push) Has been cancelled
CI / Create GitHub Release (push) Has been cancelled
Actualiser test.html
2026-06-17 17:25:31 +00:00

81 lines
3.5 KiB
HTML

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>⚡ Sandbox - Récupération Dynamique</title>
<style>
body { font-family: sans-serif; background: #333; padding: 50px; color: white; }
.modal { background: white; padding: 20px; border-radius: 12px; width: 400px; margin: 0 auto; color: black; box-shadow: 0 4px 15px rgba(0,0,0,0.3); }
.debug-panel { margin-top: 20px; padding: 15px; background: #222; border-radius: 8px; border: 1px solid #444; font-size: 12px; }
.btn { padding: 10px 20px; border-radius: 8px; border: none; cursor: pointer; margin: 5px; font-weight: bold; }
.btn-blue { background: #1976d2; color: white; }
</style>
</head>
<body>
<div class="modal" id="app-container">
<h3>Produit : Jus Ananas</h3>
<p>Catégorie actuelle : <b>Boissons</b></p>
<button class="btn btn-blue" onclick="initForm()">✏️ Modifier la catégorie</button>
</div>
<div class="debug-panel">
<strong>Debug - État :</strong>
<pre id="debug-log">Prêt à charger les données...</pre>
</div>
<script>
let GLOBAL_CATEGORY_LABELS = {};
// 1. Récupération dynamique depuis le fichier source de l'app
async function fetchCategories() {
try {
const response = await fetch('/assets/js/app.js');
const text = await response.text();
// Extrait le bloc CATEGORY_LABELS du fichier app.js
const match = text.match(/const CATEGORY_LABELS = ({[\s\S]*?});/);
if (match) {
// Nettoyage et conversion en objet JS
const jsonStr = match[1].replace(/(\w+):/g, '"$1":'); // Ajoute des guillemets aux clés
GLOBAL_CATEGORY_LABELS = JSON.parse(jsonStr);
document.getElementById('debug-log').innerText = "Succès : " + Object.keys(GLOBAL_CATEGORY_LABELS).length + " catégories chargées.";
return true;
}
} catch (e) {
document.getElementById('debug-log').innerText = "Erreur : Impossible de lire app.js (" + e.message + ")";
}
return false;
}
// 2. Initialisation du formulaire
async function initForm() {
const loaded = await fetchCategories();
if (!loaded) return;
const container = document.getElementById('app-container');
const entries = Object.entries(GLOBAL_CATEGORY_LABELS);
container.innerHTML = `
<h3>Changer la catégorie</h3>
<select id="cat-select" style="width:100%; padding:10px; margin: 10px 0;">
${entries.map(([key, label]) => `<option value="${key}">${label}</option>`).join('')}
</select>
<br>
<button class="btn btn-blue" onclick="save()">Enregistrer</button>
<button class="btn" onclick="location.reload()">Annuler</button>
`;
}
// 3. Sauvegarde
function save() {
const selectedKey = document.getElementById('cat-select').value;
const selectedLabel = GLOBAL_CATEGORY_LABELS[selectedKey];
alert("Réconciliation réussie : Envoi de la clé '" + selectedKey + "' vers EverShelf.");
console.log("Donnée API :", { category: selectedKey });
location.reload();
}
</script>
</body>
</html>