Auto-commit local changes before build (2026-01-06 14:19:41)
This commit is contained in:
parent
9ebfecc4bb
commit
e23e194e40
@ -1 +1 @@
|
|||||||
v20260106-15-jobrun-popup-objects-sort
|
v20260106-16-reset
|
||||||
|
|||||||
@ -932,17 +932,8 @@ def try_parse_veeam(msg: MailMessage) -> Tuple[bool, Dict, List[Dict]]:
|
|||||||
|
|
||||||
# Keep detailed overall message for non-success states, and always keep
|
# Keep detailed overall message for non-success states, and always keep
|
||||||
# the "Processing <object>" marker when present (used for overrides/rules).
|
# the "Processing <object>" marker when present (used for overrides/rules).
|
||||||
# Veeam Backup for Microsoft 365 can include a meaningful overall warning/info
|
|
||||||
# even when the run is reported as Success (e.g. missing application
|
|
||||||
# permissions/roles). Store it so it becomes visible in details and can be
|
|
||||||
# used for overrides.
|
|
||||||
is_m365 = (backup_type or "") == "Veeam Backup for Microsoft 365"
|
|
||||||
if overall_message:
|
if overall_message:
|
||||||
if (
|
if status_word != "Success" or overall_message.lower().startswith("processing "):
|
||||||
status_word != "Success"
|
|
||||||
or overall_message.lower().startswith("processing ")
|
|
||||||
or is_m365
|
|
||||||
):
|
|
||||||
result["overall_message"] = overall_message
|
result["overall_message"] = overall_message
|
||||||
|
|
||||||
return True, result, objects
|
return True, result, objects
|
||||||
|
|||||||
@ -283,36 +283,16 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Sort: objects with an error_message first (alphabetically by name), then the rest (also by name).
|
|
||||||
var sorted = (objects || []).slice().sort(function (a, b) {
|
|
||||||
a = a || {};
|
|
||||||
b = b || {};
|
|
||||||
var aHasErr = !!(a.error_message && a.error_message.toString().trim());
|
|
||||||
var bHasErr = !!(b.error_message && b.error_message.toString().trim());
|
|
||||||
if (aHasErr !== bHasErr) return aHasErr ? -1 : 1;
|
|
||||||
|
|
||||||
var an = (a.name || "").toString().toLowerCase();
|
|
||||||
var bn = (b.name || "").toString().toLowerCase();
|
|
||||||
if (an < bn) return -1;
|
|
||||||
if (an > bn) return 1;
|
|
||||||
return 0;
|
|
||||||
});
|
|
||||||
|
|
||||||
var html = "<div class=\"table-responsive\"><table class=\"table table-sm table-bordered mb-0\">";
|
var html = "<div class=\"table-responsive\"><table class=\"table table-sm table-bordered mb-0\">";
|
||||||
html += "<thead><tr><th>Object</th><th>Type</th><th>Status</th><th>Error</th></tr></thead><tbody>";
|
html += "<thead><tr><th>Object</th><th>Type</th><th>Status</th><th>Error</th></tr></thead><tbody>";
|
||||||
for (var i = 0; i < sorted.length; i++) {
|
for (var i = 0; i < objects.length; i++) {
|
||||||
var o = sorted[i] || {};
|
var o = objects[i] || {};
|
||||||
html += "<tr>";
|
html += "<tr>";
|
||||||
html += "<td>" + escapeHtml(o.name || "") + "</td>";
|
html += "<td>" + (o.name || "") + "</td>";
|
||||||
html += "<td>" + escapeHtml(o.type || "") + "</td>";
|
html += "<td>" + (o.type || "") + "</td>";
|
||||||
|
|
||||||
var d = statusDotClass(o.status);
|
var d = statusDotClass(o.status);
|
||||||
html += "<td class=\"status-text " + statusClass(o.status) + "\">" +
|
html += "<td class=\"status-text " + statusClass(o.status) + "\">" + (d ? ('<span class=\\\"status-dot ' + d + ' me-2\\\" aria-hidden=\\\"true\\\"></span>') : '') + escapeHtml(o.status || "") + "</td>";
|
||||||
(d ? ("<span class=\"status-dot " + d + " me-2\" aria-hidden=\"true\"></span>") : "") +
|
html += "<td>" + (o.error_message || "") + "</td>";
|
||||||
escapeHtml(o.status || "") +
|
|
||||||
"</td>";
|
|
||||||
|
|
||||||
html += "<td>" + escapeHtml(o.error_message || "") + "</td>";
|
|
||||||
html += "</tr>";
|
html += "</tr>";
|
||||||
}
|
}
|
||||||
html += "</tbody></table></div>";
|
html += "</tbody></table></div>";
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user