Admin : statut détaillé imprimante + message erreur CUPS traduit

- GET /api/imprimante/statut-detail : statut + dernière erreur log
- Bouton évacuer retourne le vrai message (format papier, bourrage...)
- Bloc d'erreur affiché dans l'onglet Matériel si problème détecté

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-06-04 20:38:48 +02:00
parent 3cd5525981
commit 2b204ddb5e
3 changed files with 98 additions and 4 deletions

View File

@@ -57,6 +57,7 @@ async function chargerMateriel() {
// Imprimantes
await rafraichirImprimantes();
rafraichirStatutImprimante();
if (imp.imprimante) document.getElementById('admin-imprimante').value = imp.imprimante;
if (imp.format) document.getElementById('admin-format-papier').value = imp.format;
const fmt = (imp.format || '15x20').replace('-2up', '');
@@ -94,6 +95,31 @@ function _getOrientations() {
async function evacuerBourrage() {
const r = await apiPost('/api/imprimante/evacuer', {});
afficherStatut(r.message || 'Imprimante réactivée', r.succes ? 'succes' : 'erreur');
const el = document.getElementById('imprimante-erreur-msg');
const bloc = document.getElementById('imprimante-statut-detail');
if (r.message && r.message !== 'Imprimante réactivée') {
el.textContent = '⚠ ' + r.message;
bloc.style.display = 'block';
} else {
bloc.style.display = 'none';
}
}
async function rafraichirStatutImprimante() {
const r = await apiGet('/api/imprimante/statut-detail').catch(() => null);
if (!r) return;
const el = document.getElementById('imprimante-erreur-msg');
const bloc = document.getElementById('imprimante-statut-detail');
if (r.derniere_erreur) {
let msg = r.derniere_erreur;
if (msg.includes('media does not match')) msg = '⚠ Format papier incorrect — vérifiez que le format configuré correspond à la cassette chargée dans l\'imprimante';
else if (msg.includes('jam')) msg = '⚠ Bourrage papier détecté';
else msg = '⚠ ' + msg.split(']').pop().trim();
el.textContent = msg;
bloc.style.display = 'block';
} else {
bloc.style.display = 'none';
}
}
async function sauvegarderMateriel() {