Compare commits

..

No commits in common. "1cb0da05e25777979eb304d6f7d0a94c182f04c0" and "e0e8bb35b61460c10943d8f33b8b0fd53492e847" have entirely different histories.

2 changed files with 9 additions and 26 deletions

View file

@ -272,7 +272,6 @@
<div id="queueRow" class="card" hidden> <div id="queueRow" class="card" hidden>
<span id="queueInfo" class="muted"></span> <span id="queueInfo" class="muted"></span>
<span class="queue-actions"> <span class="queue-actions">
<button id="queueRetry" type="button" class="btn secondary" hidden>Tout réessayer</button>
<button id="queuePause" type="button" class="btn secondary">Tout mettre en pause</button> <button id="queuePause" type="button" class="btn secondary">Tout mettre en pause</button>
<button id="queueCancel" type="button" class="btn secondary">Tout annuler</button> <button id="queueCancel" type="button" class="btn secondary">Tout annuler</button>
</span> </span>
@ -288,7 +287,6 @@
const queueInfo = document.getElementById('queueInfo'); const queueInfo = document.getElementById('queueInfo');
const queueCancel = document.getElementById('queueCancel'); const queueCancel = document.getElementById('queueCancel');
const queuePause = document.getElementById('queuePause'); const queuePause = document.getElementById('queuePause');
const queueRetry = document.getElementById('queueRetry');
const list = document.getElementById('list'); const list = document.getElementById('list');
const MAX_PARALLEL = 3; // dépôts directs (petits fichiers) simultanés const MAX_PARALLEL = 3; // dépôts directs (petits fichiers) simultanés
@ -378,8 +376,6 @@
job.state = state; job.state = state;
if (state === 'done' || state === 'failed' || state === 'cancelled') jobs.delete(job); if (state === 'done' || state === 'failed' || state === 'cancelled') jobs.delete(job);
else jobs.add(job); else jobs.add(job);
if (state === 'failed') failedJobs.add(job);
else failedJobs.delete(job);
updateQueueRow(); updateQueueRow();
const { pauseBtn, retryBtn, cancelBtn } = job.ui; const { pauseBtn, retryBtn, cancelBtn } = job.ui;
pauseBtn.hidden = state !== 'running' && state !== 'paused'; pauseBtn.hidden = state !== 'running' && state !== 'paused';
@ -397,7 +393,6 @@
const active = new Set(); const active = new Set();
const jobs = new Set(); // jobs non terminés (en attente, en cours ou en pause) const jobs = new Set(); // jobs non terminés (en attente, en cours ou en pause)
const failedJobs = new Set(); // jobs en échec, relançables (« Réessayer » / « Tout réessayer »)
let allPaused = false; // « Tout mettre en pause » actif : la file ne démarre plus rien let allPaused = false; // « Tout mettre en pause » actif : la file ne démarre plus rien
function updateQueueRow() { function updateQueueRow() {
@ -409,24 +404,18 @@
else if (job.state === 'paused') paused += 1; else if (job.state === 'paused') paused += 1;
else waiting += 1; else waiting += 1;
} }
const failed = failedJobs.size; if (jobs.size === 0) {
const hasJobs = jobs.size > 0; queueRow.hidden = true;
if (!hasJobs) {
allPaused = false; allPaused = false;
queuePause.textContent = 'Tout mettre en pause'; queuePause.textContent = 'Tout mettre en pause';
return;
} }
queueRow.hidden = !hasJobs && failed === 0; queueRow.hidden = false;
queuePause.hidden = !hasJobs; queueInfo.textContent =
queueCancel.hidden = !hasJobs; running +
queueRetry.hidden = failed === 0; ' en cours' +
queueInfo.textContent = [ (paused ? ' · ' + paused + ' en pause' : '') +
hasJobs ? running + ' en cours' : '', (waiting ? ' · ' + waiting + ' en attente' : '');
paused ? paused + ' en pause' : '',
waiting ? waiting + ' en attente' : '',
failed ? failed + ' en échec' : '',
]
.filter(Boolean)
.join(' · ');
} }
function pump() { function pump() {
@ -919,12 +908,7 @@
pump(); pump();
} }
function retryAll() {
for (const job of Array.from(failedJobs)) retryJob(job);
}
queuePause.addEventListener('click', toggleAllPaused); queuePause.addEventListener('click', toggleAllPaused);
queueRetry.addEventListener('click', retryAll);
queueCancel.addEventListener('click', cancelAll); queueCancel.addEventListener('click', cancelAll);
// items : tableau de { file, path } — path '' = fichier simple, sinon dépôt de dossier. // items : tableau de { file, path } — path '' = fichier simple, sinon dépôt de dossier.

View file

@ -95,7 +95,6 @@ describe('GET /', () => {
}); });
expect(res.body).toContain('id="zones"'); expect(res.body).toContain('id="zones"');
expect(res.body).toContain('id="queuePause"'); expect(res.body).toContain('id="queuePause"');
expect(res.body).toContain('id="queueRetry"');
expect(res.body).not.toContain('targetSelect'); expect(res.body).not.toContain('targetSelect');
expect(res.body).not.toContain('dirPicker'); expect(res.body).not.toContain('dirPicker');
}); });