Nettoyage et construction micro services

This commit is contained in:
Christian CUNAT-BRULE
2026-09-13 13:02:10 +02:00
parent d8eb7f4375
commit 941feb3e96
77 changed files with 4477 additions and 8473 deletions
+4 -3
View File
@@ -9,26 +9,27 @@ export function initCockpit({ storage, toast }) {
document.dispatchEvent(new Event('caria-layout'));
}
$('#rail-toggle').onclick = () => { collapsed = !collapsed; storage.set('railCollapsed', String(collapsed)); rail(); };
document.querySelectorAll('.screen-links a').forEach(link => link.onclick = () => $('#settings').close());
rail();
if (dedicated && !location.hash) location.hash = 'drive';
const time = seconds => Number.isFinite(seconds) ? `${Math.floor(seconds / 60)}:${String(Math.floor(seconds % 60)).padStart(2,'0')}` : '0:00';
let previousPaused, previousSilent;
function updatePlayer() {
const duration = Number.isFinite(audio.duration) ? audio.duration : 0, progress = duration ? audio.currentTime / duration : 0;
$('#track-arc').style.strokeDashoffset = String(100 * (1 - progress));
$('#immersive-current').textContent = time(audio.currentTime); $('#immersive-duration').textContent = time(duration);
$('#immersive-title').textContent = $('#track-title').textContent;
$('#immersive-subtitle').textContent = $('#track-subtitle').textContent;
$('#immersive-play').innerHTML = audio.paused ? '<svg viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="m9 5 11 7-11 7Z"/></svg>' : '<svg viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 5v14M16 5v14"/></svg>';
if (previousPaused !== audio.paused) $('#immersive-play').innerHTML = audio.paused ? '<svg viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="m9 5 11 7-11 7Z"/></svg>' : '<svg viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M9 5v14M16 5v14"/></svg>';
$('#immersive-play').setAttribute('aria-label', audio.paused ? 'Lire la musique' : 'Mettre en pause');
$('#now-playing').classList.toggle('playing', !audio.paused);
$('#immersive-volume').value = audio.muted ? '0' : String(audio.volume);
const silent = audio.muted || audio.volume === 0;
$('#immersive-mute').innerHTML = silent ? '<svg viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4 6 8H3v8h3l5 4Zm5 5 6 6m0-6-6 6"/></svg>' : '<svg viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4 6 8H3v8h3l5 4Zm4 4a6 6 0 0 1 0 8m3-11a10 10 0 0 1 0 14"/></svg>';
if (previousSilent !== silent) $('#immersive-mute').innerHTML = silent ? '<svg viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4 6 8H3v8h3l5 4Zm5 5 6 6m0-6-6 6"/></svg>' : '<svg viewBox="0 0 24 24" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><path d="M11 4 6 8H3v8h3l5 4Zm4 4a6 6 0 0 1 0 8m3-11a10 10 0 0 1 0 14"/></svg>';
$('#immersive-mute').setAttribute('aria-label', silent ? 'Activer le son' : 'Couper le son');
$('#immersive-mute').title = silent ? 'Activer le son' : 'Couper le son';
$('#immersive-mute').setAttribute('aria-pressed', String(silent));
$('#immersive-volume-value').textContent = Math.round((silent ? 0 : audio.volume) * 100) + ' %';
previousPaused = audio.paused; previousSilent = silent;
document.querySelectorAll('[data-audio-control]').forEach(button => button.disabled = !audio.getAttribute('src'));
}
$('#immersive-play').onclick = () => $('#play').click();