optimize gui loader

This commit is contained in:
team2
2026-02-23 20:55:13 +01:00
parent c047c401df
commit 0aff4d5f3b
3 changed files with 34 additions and 29 deletions

View File

@@ -24,27 +24,27 @@
if (status === 'RUNNING') { if (status === 'RUNNING') {
el.innerHTML = ` el.innerHTML = `
<div class="alert alert-info d-flex justify-content-between align-items-center"> <div class="alert alert-info d-flex justify-content-between align-items-center">
<div><strong>Rebuild läuft…</strong></div> <div><strong>Dokument-Tag-Rebuild läuft…</strong></div>
<div class="spinner-border spinner-border-sm"></div> <div class="spinner-border spinner-border-sm"></div>
</div> </div>
`; `;
} else if (status === 'QUEUED') { } else if (status === 'QUEUED') {
el.innerHTML = ` el.innerHTML = `
<div class="alert alert-secondary"> <div class="alert alert-secondary">
Rebuild in Warteschlange… Dokument-Tag-Rebuild in Warteschlange…
</div> </div>
`; `;
} else if (status === 'COMPLETED') { } else if (status === 'COMPLETED') {
el.innerHTML = ` el.innerHTML = `
<div class="alert alert-success"> <div class="alert alert-success fw-bold">
Rebuild abgeschlossen. Dokument-Tag-Rebuild erfolgreich abgeschlossen.
</div> </div>
`; `;
stopPolling(); stopPolling();
} else if (status === 'FAILED') { } else if (status === 'FAILED') {
el.innerHTML = ` el.innerHTML = `
<div class="alert alert-danger"> <div class="alert alert-danger">
Rebuild fehlgeschlagen. Dokument-Tag-Rebuild fehlgeschlagen.
</div> </div>
`; `;
stopPolling(); stopPolling();

View File

@@ -81,7 +81,10 @@
{# Fehlerbereich #} {# Fehlerbereich #}
<div id="job-error" <div id="job-error"
class="alert alert-danger mt-3 d-none"> class="alert alert-danger mt-3 {% if not job.errorMessage %}d-none{% endif %}">
{% if job.errorMessage %}
{{ job.errorMessage }}
{% endif %}
</div> </div>
</div> </div>
@@ -160,7 +163,7 @@
// Initial render from server state // Initial render from server state
renderBadge("{{ job.status|upper }}"); renderBadge("{{ job.status|upper }}");
if (["QUEUED","RUNNING"].includes("{{ job.status|upper }}")) { if (["QUEUED", "RUNNING"].includes("{{ job.status|upper }}")) {
loaderEl.classList.remove('d-none'); loaderEl.classList.remove('d-none');
timer = setInterval(poll, 2000); timer = setInterval(poll, 2000);
} }

View File

@@ -11,12 +11,20 @@
{# ========================================================= #} {# ========================================================= #}
{# Flash Messages #} {# Flash Messages #}
{# ========================================================= #} {# ========================================================= #}
{% for message in app.flashes('success') %} {#{% if app.flashes('success') %}
<div class="alert alert-success shadow-sm">{{ message }}</div> <ul class="alert alert-success shadow-sm">
{% endfor %} {% for message in app.flashes('success') %}
{% for message in app.flashes('danger') %} <li>{{ message }}</li>
<div class="alert alert-danger shadow-sm">{{ message }}</div> {% endfor %}
{% endfor %} </ul>
{% endif %}
{% if app.flashes('danger') %}
<ul class="alert alert-danger shadow-sm">
{% for message in app.flashes('danger') %}
<li>{{ message }}</li>
{% endfor %}
</ul>
{% endif %}#}
{# ========================================================= #} {# ========================================================= #}
{# LIVE REBUILD STATUS (SSE) #} {# LIVE REBUILD STATUS (SSE) #}
@@ -44,34 +52,28 @@
html = ` html = `
<div class="alert alert-info shadow-sm d-flex justify-content-between align-items-center"> <div class="alert alert-info shadow-sm d-flex justify-content-between align-items-center">
<div> <div>
<strong>Rebuild läuft</strong><br> <strong>Tag-Rebuild läuft</strong><br>
${data.startedAt ? 'Gestartet: ' + new Date(data.startedAt).toLocaleString() : ''} ${data.startedAt ? 'Gestartet: ' + new Date(data.startedAt).toLocaleString() : ''}
</div> </div>
<div class="spinner-border spinner-border-sm"></div> <div class="spinner-border spinner-border-sm"></div>
</div> </div>
`; `;
} } else if (data.status === '{{ statusQueued }}') {
else if (data.status === '{{ statusQueued }}') {
html = ` html = `
<div class="alert alert-secondary shadow-sm"> <div class="alert alert-secondary shadow-sm">
<strong>Rebuild in Warteschlange</strong> <strong>Tag-Rebuild in Warteschlange</strong>
</div> </div>
`; `;
} } else if (data.status === '{{ statusCompleted }}') {
else if (data.status === '{{ statusCompleted }}') {
html = ` html = `
<div class="alert alert-success shadow-sm"> <div class="alert alert-success shadow-sm">
<strong>Rebuild erfolgreich abgeschlossen</strong> <strong>Tag-Rebuild erfolgreich abgeschlossen</strong>
</div> </div>
`; `;
} } else if (data.status === '{{ statusFailed }}') {
else if (data.status === '{{ statusFailed }}') {
html = ` html = `
<div class="alert alert-danger shadow-sm"> <div class="alert alert-danger shadow-sm">
<strong>Rebuild fehlgeschlagen</strong><br> <strong>Tag-Rebuild fehlgeschlagen</strong><br>
${data.error ? '<code>' + data.error + '</code>' : ''} ${data.error ? '<code>' + data.error + '</code>' : ''}
</div> </div>
`; `;
@@ -100,7 +102,7 @@
<input class="form-control form-control-sm" <input class="form-control form-control-sm"
name="label" name="label"
placeholder="z. B. Testomat 808" placeholder="z. B. Testomat 808"
required /> required/>
</div> </div>
<div class="col-md-3"> <div class="col-md-3">
@@ -108,14 +110,14 @@
<input class="form-control form-control-sm" <input class="form-control form-control-sm"
name="slug" name="slug"
placeholder="z. B. testomat-808" placeholder="z. B. testomat-808"
required /> required/>
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
<label class="form-label small text-muted">Beschreibung</label> <label class="form-label small text-muted">Beschreibung</label>
<input class="form-control form-control-sm" <input class="form-control form-control-sm"
name="description" name="description"
placeholder="Optional" /> placeholder="Optional"/>
</div> </div>
<div class="col-md-2 d-grid align-items-end"> <div class="col-md-2 d-grid align-items-end">