Prevent progress text overlapping activity controls

This commit is contained in:
Mikei386
2026-06-15 12:48:54 +02:00
parent 1cdacbcb67
commit 2abfc8eb26
7 changed files with 21 additions and 10 deletions
-1
View File
@@ -1 +0,0 @@
cdee29f4fd8fbd713fb78378f3c6531a46f3a1fb26c50e74f59fe6f1e437b76f urbm-2026.06.15.r015-x86_64-1.txz
+1
View File
@@ -0,0 +1 @@
ad6f334a1648fb9b9f37df61ab061da32605c539e3c1933aff6169115ed65fb5 urbm-2026.06.15.r016-x86_64-1.txz
+6 -2
View File
@@ -2,13 +2,17 @@
<!DOCTYPE PLUGIN [ <!DOCTYPE PLUGIN [
<!ENTITY name "urbm"> <!ENTITY name "urbm">
<!ENTITY author "Michael Roll"> <!ENTITY author "Michael Roll">
<!ENTITY version "2026.06.15.r015"> <!ENTITY version "2026.06.15.r016">
<!ENTITY pluginURL "https://git.casaderoll.de/michael/URBM/raw/branch/main/dist/urbm.plg"> <!ENTITY pluginURL "https://git.casaderoll.de/michael/URBM/raw/branch/main/dist/urbm.plg">
<!ENTITY packageURL "https://git.casaderoll.de/michael/URBM/raw/branch/main/dist/urbm-&version;-x86_64-1.txz"> <!ENTITY packageURL "https://git.casaderoll.de/michael/URBM/raw/branch/main/dist/urbm-&version;-x86_64-1.txz">
<!ENTITY packageSHA256 "cdee29f4fd8fbd713fb78378f3c6531a46f3a1fb26c50e74f59fe6f1e437b76f"> <!ENTITY packageSHA256 "ad6f334a1648fb9b9f37df61ab061da32605c539e3c1933aff6169115ed65fb5">
]> ]>
<PLUGIN name="&name;" author="&author;" version="&version;" pluginURL="&pluginURL;" min="7.0.0" support="https://git.casaderoll.de/michael/URBM/issues" icon="urbm.png"> <PLUGIN name="&name;" author="&author;" version="&version;" pluginURL="&pluginURL;" min="7.0.0" support="https://git.casaderoll.de/michael/URBM/issues" icon="urbm.png">
<CHANGES> <CHANGES>
### 2026.06.15.r016
- Keep long backup progress statistics inside the progress column and wrap them before they can overlap pause or abort controls.
- Stack progress statistics on narrow displays for reliable activity-table layout.
### 2026.06.15.r015 ### 2026.06.15.r015
- Generate compatible UUIDs on browsers and Unraid WebViews that do not provide `crypto.randomUUID()`. - Generate compatible UUIDs on browsers and Unraid WebViews that do not provide `crypto.randomUUID()`.
- Prefer cryptographic random bytes when available and retain a schema-compatible last-resort fallback. - Prefer cryptographic random bytes when available and retain a schema-compatible last-resort fallback.
+5 -1
View File
@@ -2,13 +2,17 @@
<!DOCTYPE PLUGIN [ <!DOCTYPE PLUGIN [
<!ENTITY name "urbm"> <!ENTITY name "urbm">
<!ENTITY author "Michael Roll"> <!ENTITY author "Michael Roll">
<!ENTITY version "2026.06.15.r015"> <!ENTITY version "2026.06.15.r016">
<!ENTITY pluginURL "https://git.casaderoll.de/michael/URBM/raw/branch/main/dist/urbm.plg"> <!ENTITY pluginURL "https://git.casaderoll.de/michael/URBM/raw/branch/main/dist/urbm.plg">
<!ENTITY packageURL "https://git.casaderoll.de/michael/URBM/raw/branch/main/dist/urbm-&version;-x86_64-1.txz"> <!ENTITY packageURL "https://git.casaderoll.de/michael/URBM/raw/branch/main/dist/urbm-&version;-x86_64-1.txz">
<!ENTITY packageSHA256 "REPLACE_DURING_RELEASE"> <!ENTITY packageSHA256 "REPLACE_DURING_RELEASE">
]> ]>
<PLUGIN name="&name;" author="&author;" version="&version;" pluginURL="&pluginURL;" min="7.0.0" support="https://git.casaderoll.de/michael/URBM/issues" icon="urbm.png"> <PLUGIN name="&name;" author="&author;" version="&version;" pluginURL="&pluginURL;" min="7.0.0" support="https://git.casaderoll.de/michael/URBM/issues" icon="urbm.png">
<CHANGES> <CHANGES>
### 2026.06.15.r016
- Keep long backup progress statistics inside the progress column and wrap them before they can overlap pause or abort controls.
- Stack progress statistics on narrow displays for reliable activity-table layout.
### 2026.06.15.r015 ### 2026.06.15.r015
- Generate compatible UUIDs on browsers and Unraid WebViews that do not provide `crypto.randomUUID()`. - Generate compatible UUIDs on browsers and Unraid WebViews that do not provide `crypto.randomUUID()`.
- Prefer cryptographic random bytes when available and retain a schema-compatible last-resort fallback. - Prefer cryptographic random bytes when available and retain a schema-compatible last-resort fallback.
+4 -4
View File
@@ -9,12 +9,12 @@ Tag="URBM Unraid Restic Backup Manager backup snapshots restore"
<?php <?php
$pluginRoot = '/plugins/urbm'; $pluginRoot = '/plugins/urbm';
?> ?>
<link rel="stylesheet" href="<?= $pluginRoot ?>/assets/urbm.css?v=20260615r015"> <link rel="stylesheet" href="<?= $pluginRoot ?>/assets/urbm.css?v=20260615r016">
<div id="urbm-app" data-api="<?= $pluginRoot ?>/api.php"> <div id="urbm-app" data-api="<?= $pluginRoot ?>/api.php">
<header class="bu-header"> <header class="bu-header">
<div class="bu-brand"> <div class="bu-brand">
<img class="bu-logo" src="<?= $pluginRoot ?>/images/urbm.png?v=20260615r015" alt="URBM-Logo"> <img class="bu-logo" src="<?= $pluginRoot ?>/images/urbm.png?v=20260615r016" alt="URBM-Logo">
<div><h1>URBM <span class="bu-version">2026.06.15.r015</span></h1><p>Restic Backup Manager für Unraid</p></div> <div><h1>URBM <span class="bu-version">2026.06.15.r016</span></h1><p>Restic Backup Manager für Unraid</p></div>
</div> </div>
<div id="bu-health" class="bu-health" tabindex="0" data-tooltip="Zeigt, ob die URBM-Hintergrundkomponente erreichbar ist. Beispiel: 'Daemon online' bedeutet, dass Jobs gestartet werden können.">Verbindung wird hergestellt...</div> <div id="bu-health" class="bu-health" tabindex="0" data-tooltip="Zeigt, ob die URBM-Hintergrundkomponente erreichbar ist. Beispiel: 'Daemon online' bedeutet, dass Jobs gestartet werden können.">Verbindung wird hergestellt...</div>
</header> </header>
@@ -32,4 +32,4 @@ $pluginRoot = '/plugins/urbm';
<div id="bu-tooltip" role="tooltip" aria-hidden="true"></div> <div id="bu-tooltip" role="tooltip" aria-hidden="true"></div>
</div> </div>
<script>window.URBM_CSRF = <?= json_encode($var['csrf_token'] ?? '') ?>;</script> <script>window.URBM_CSRF = <?= json_encode($var['csrf_token'] ?? '') ?>;</script>
<script src="<?= $pluginRoot ?>/assets/urbm-2026.06.15.r015.js"></script> <script src="<?= $pluginRoot ?>/assets/urbm-2026.06.15.r016.js"></script>
+5 -2
View File
@@ -100,8 +100,9 @@
.bu-custom-cron { margin-top: 14px; } .bu-custom-cron { margin-top: 14px; }
.bu-event-options { display: flex; flex-wrap: wrap; gap: 10px; } .bu-event-options { display: flex; flex-wrap: wrap; gap: 10px; }
.bu-progress-wrap { min-width: 0; width: 100%; } .bu-progress-wrap { min-width: 0; width: 100%; }
.bu-progress-label { align-items: center; display: flex; font-size: 12px; gap: 8px; justify-content: space-between; margin-bottom: 5px; } .bu-progress-label { align-items: start; display: grid; font-size: 12px; gap: 4px 8px; grid-template-columns: auto minmax(0, 1fr); margin-bottom: 5px; max-width: 100%; }
.bu-progress-label span { color: var(--bu-muted); overflow-wrap: anywhere; text-align: right; } .bu-progress-label strong { white-space: nowrap; }
.bu-progress-label span { color: var(--bu-muted); min-width: 0; overflow-wrap: anywhere; text-align: right; white-space: normal; word-break: normal; }
.bu-progress { background: var(--bu-panel-alt); border: 1px solid var(--bu-border); border-radius: 999px; height: 12px; overflow: hidden; } .bu-progress { background: var(--bu-panel-alt); border: 1px solid var(--bu-border); border-radius: 999px; height: 12px; overflow: hidden; }
.bu-progress span { background: var(--bu-accent); display: block; height: 100%; min-width: 0; transition: width .35s ease; } .bu-progress span { background: var(--bu-accent); display: block; height: 100%; min-width: 0; transition: width .35s ease; }
.bu-progress.indeterminate span { animation: bu-progress-scan 1.2s ease-in-out infinite alternate; } .bu-progress.indeterminate span { animation: bu-progress-scan 1.2s ease-in-out infinite alternate; }
@@ -240,6 +241,8 @@
.bu-schedule-grid { grid-template-columns: 1fr; } .bu-schedule-grid { grid-template-columns: 1fr; }
.bu-form-grid { grid-template-columns: 1fr; } .bu-form-grid { grid-template-columns: 1fr; }
.bu-chart-grid-layout { grid-template-columns: 1fr; } .bu-chart-grid-layout { grid-template-columns: 1fr; }
.bu-progress-label { grid-template-columns: 1fr; }
.bu-progress-label span { text-align: left; }
.bu-header { align-items: flex-start; flex-direction: column; gap: 12px; } .bu-header { align-items: flex-start; flex-direction: column; gap: 12px; }
.bu-table { display: block; overflow-x: auto; } .bu-table { display: block; overflow-x: auto; }
.bu-table-actions { min-width: 240px; } .bu-table-actions { min-width: 240px; }