Release URBM 2026.06.15.r006
This commit is contained in:
@@ -1 +0,0 @@
|
||||
8c6fc66fbe80ca1dc06e5bf445a794b749eaca212376e016160e24310deb5e5f urbm-2026.06.15.r005-x86_64-1.txz
|
||||
BIN
Binary file not shown.
@@ -0,0 +1 @@
|
||||
b5bcaefc48ac2258d036822d8e735d85f24384ec185720571c5a3a919c71fd70 urbm-2026.06.15.r006-x86_64-1.txz
|
||||
Vendored
+6
-2
@@ -2,13 +2,17 @@
|
||||
<!DOCTYPE PLUGIN [
|
||||
<!ENTITY name "urbm">
|
||||
<!ENTITY author "Michael Roll">
|
||||
<!ENTITY version "2026.06.15.r005">
|
||||
<!ENTITY version "2026.06.15.r006">
|
||||
<!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 packageSHA256 "8c6fc66fbe80ca1dc06e5bf445a794b749eaca212376e016160e24310deb5e5f">
|
||||
<!ENTITY packageSHA256 "b5bcaefc48ac2258d036822d8e735d85f24384ec185720571c5a3a919c71fd70">
|
||||
]>
|
||||
<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>
|
||||
### 2026.06.15.r006
|
||||
- Place running backup controls directly beside progress instead of beyond an empty message column.
|
||||
- Remove the unnecessary activity-table action column and its horizontal overflow.
|
||||
|
||||
### 2026.06.15.r005
|
||||
- Truncate long activity job names cleanly while keeping the complete name available as a tooltip.
|
||||
- Automatically clear safe stale Restic locks and retry retention once after a successful backup.
|
||||
|
||||
+5
-1
@@ -2,13 +2,17 @@
|
||||
<!DOCTYPE PLUGIN [
|
||||
<!ENTITY name "urbm">
|
||||
<!ENTITY author "Michael Roll">
|
||||
<!ENTITY version "2026.06.15.r005">
|
||||
<!ENTITY version "2026.06.15.r006">
|
||||
<!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 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">
|
||||
<CHANGES>
|
||||
### 2026.06.15.r006
|
||||
- Place running backup controls directly beside progress instead of beyond an empty message column.
|
||||
- Remove the unnecessary activity-table action column and its horizontal overflow.
|
||||
|
||||
### 2026.06.15.r005
|
||||
- Truncate long activity job names cleanly while keeping the complete name available as a tooltip.
|
||||
- Automatically clear safe stale Restic locks and retry retention once after a successful backup.
|
||||
|
||||
+4
-4
@@ -9,12 +9,12 @@ Tag="URBM Unraid Restic Backup Manager backup snapshots restore"
|
||||
<?php
|
||||
$pluginRoot = '/plugins/urbm';
|
||||
?>
|
||||
<link rel="stylesheet" href="<?= $pluginRoot ?>/assets/urbm.css?v=20260615r005">
|
||||
<link rel="stylesheet" href="<?= $pluginRoot ?>/assets/urbm.css?v=20260615r006">
|
||||
<div id="urbm-app" data-api="<?= $pluginRoot ?>/api.php">
|
||||
<header class="bu-header">
|
||||
<div class="bu-brand">
|
||||
<img class="bu-logo" src="<?= $pluginRoot ?>/images/urbm.png?v=20260615r005" alt="URBM-Logo">
|
||||
<div><h1>URBM <span class="bu-version">2026.06.15.r005</span></h1><p>Restic Backup Manager für Unraid</p></div>
|
||||
<img class="bu-logo" src="<?= $pluginRoot ?>/images/urbm.png?v=20260615r006" alt="URBM-Logo">
|
||||
<div><h1>URBM <span class="bu-version">2026.06.15.r006</span></h1><p>Restic Backup Manager für Unraid</p></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>
|
||||
</header>
|
||||
@@ -32,4 +32,4 @@ $pluginRoot = '/plugins/urbm';
|
||||
<div id="bu-tooltip" role="tooltip" aria-hidden="true"></div>
|
||||
</div>
|
||||
<script>window.URBM_CSRF = <?= json_encode($var['csrf_token'] ?? '') ?>;</script>
|
||||
<script src="<?= $pluginRoot ?>/assets/urbm-2026.06.15.r005.js"></script>
|
||||
<script src="<?= $pluginRoot ?>/assets/urbm-2026.06.15.r006.js"></script>
|
||||
|
||||
@@ -143,12 +143,11 @@
|
||||
.bu-table th { color: var(--bu-text); font-size: 13px; font-weight: 700; letter-spacing: .03em; opacity: .76; text-transform: uppercase; }
|
||||
.bu-table-scroll { max-width: 100%; overflow-x: auto; }
|
||||
.bu-runs-table { table-layout: fixed; }
|
||||
.bu-runs-table .bu-run-task { width: 17%; }
|
||||
.bu-runs-table .bu-run-task { width: 18%; }
|
||||
.bu-runs-table .bu-run-status { width: 9%; }
|
||||
.bu-runs-table .bu-run-created { width: 12%; }
|
||||
.bu-runs-table .bu-run-progress { width: 26%; }
|
||||
.bu-runs-table .bu-run-message { width: 30%; }
|
||||
.bu-runs-table .bu-run-actions { width: 6%; }
|
||||
.bu-runs-table .bu-run-progress { width: 27%; }
|
||||
.bu-runs-table .bu-run-message { width: 34%; }
|
||||
.bu-runs-table th, .bu-runs-table td { min-width: 0; overflow-wrap: anywhere; word-break: break-word; }
|
||||
.bu-runs-table .bu-run-message-cell { line-height: 1.45; white-space: normal; }
|
||||
.bu-runs-table .bu-table-actions { min-width: 0; }
|
||||
|
||||
@@ -523,7 +523,7 @@
|
||||
function runsTable(runs) {
|
||||
if(!runs.length) return '<div class="bu-empty">Keine Aktivitäten vorhanden.</div>';
|
||||
const showLiveLog=state.config?.settings?.showLiveLog===true;
|
||||
return `<div class="bu-table-scroll"><table class="bu-table bu-runs-table"><colgroup><col class="bu-run-task"><col class="bu-run-status"><col class="bu-run-created"><col class="bu-run-progress"><col class="bu-run-message"><col class="bu-run-actions"></colgroup><thead><tr><th>Aufgabe</th><th>Status</th><th>Erstellt</th><th>Fortschritt</th><th>Meldung</th><th></th></tr></thead><tbody>${runs.map(r=>{const controls=r.status==='running'?button('Pause',`pause-run:${r.id}`)+button('Abbrechen',`cancel-run:${r.id}`,'danger'):r.status==='paused'?button('Fortsetzen',`resume-run:${r.id}`,'primary')+button('Abbrechen',`cancel-run:${r.id}`,'danger'):r.status==='queued'?button('Abbrechen',`cancel-run:${r.id}`,'danger'):'';const target=runTarget(r);return `<tr><td class="bu-run-task-cell" title="${esc(target)}"><strong>${esc(taskLabels[r.taskType]||r.taskType)}</strong><span>${esc(target)}</span></td><td>${status(r.status)}</td><td>${esc(new Date(r.createdAt).toLocaleString())}</td><td>${progressView(r)}</td><td class="bu-run-message-cell">${esc(displayMessage(r.message))}</td><td>${controls?actionGroup(controls):''}</td></tr>${showLiveLog&&(r.liveLog||[]).length?`<tr class="bu-log-row"><td colspan="6">${liveLogView(r)}</td></tr>`:''}`;}).join('')}</tbody></table></div>`;
|
||||
return `<div class="bu-table-scroll"><table class="bu-table bu-runs-table"><colgroup><col class="bu-run-task"><col class="bu-run-status"><col class="bu-run-created"><col class="bu-run-progress"><col class="bu-run-message"></colgroup><thead><tr><th>Aufgabe</th><th>Status</th><th>Erstellt</th><th>Fortschritt</th><th>Meldung / Aktionen</th></tr></thead><tbody>${runs.map(r=>{const controls=r.status==='running'?button('Pause',`pause-run:${r.id}`)+button('Abbrechen',`cancel-run:${r.id}`,'danger'):r.status==='paused'?button('Fortsetzen',`resume-run:${r.id}`,'primary')+button('Abbrechen',`cancel-run:${r.id}`,'danger'):r.status==='queued'?button('Abbrechen',`cancel-run:${r.id}`,'danger'):'';const target=runTarget(r);return `<tr><td class="bu-run-task-cell" title="${esc(target)}"><strong>${esc(taskLabels[r.taskType]||r.taskType)}</strong><span>${esc(target)}</span></td><td>${status(r.status)}</td><td>${esc(new Date(r.createdAt).toLocaleString())}</td><td>${progressView(r)}</td><td class="bu-run-message-cell">${controls?actionGroup(controls):esc(displayMessage(r.message))}</td></tr>${showLiveLog&&(r.liveLog||[]).length?`<tr class="bu-log-row"><td colspan="5">${liveLogView(r)}</td></tr>`:''}`;}).join('')}</tbody></table></div>`;
|
||||
}
|
||||
|
||||
function renderSettings() {
|
||||
|
||||
Reference in New Issue
Block a user