Auto-commit local changes before build (2026-01-08 13:31:57)
This commit is contained in:
parent
b8f86c183c
commit
60f6f8e3d6
@ -219,84 +219,92 @@
|
||||
|
||||
<script>
|
||||
(function () {
|
||||
var table = document.getElementById('mailAuditTable');
|
||||
var modalEl = document.getElementById('mailMessageModal');
|
||||
if (!table || !modalEl) return;
|
||||
function initAdminAllMailPopup() {
|
||||
var table = document.getElementById('mailAuditTable');
|
||||
var modalEl = document.getElementById('mailMessageModal');
|
||||
if (!table || !modalEl) return;
|
||||
|
||||
var modal = new bootstrap.Modal(modalEl);
|
||||
// base.html loads Bootstrap JS after the page content. Initialize after DOMContentLoaded
|
||||
// so bootstrap.Modal is guaranteed to be available.
|
||||
if (typeof bootstrap === 'undefined' || !bootstrap.Modal) return;
|
||||
|
||||
function setText(id, value) {
|
||||
var el = document.getElementById(id);
|
||||
if (el) el.textContent = value || '';
|
||||
}
|
||||
var modal = new bootstrap.Modal(modalEl);
|
||||
|
||||
function renderObjects(objects) {
|
||||
var container = document.getElementById('msg_objects_container');
|
||||
if (!container) return;
|
||||
container.innerHTML = '';
|
||||
|
||||
if (!objects || !objects.length) {
|
||||
container.innerHTML = '<div class="text-muted">No objects stored.</div>';
|
||||
return;
|
||||
function setText(id, value) {
|
||||
var el = document.getElementById(id);
|
||||
if (el) el.textContent = value || '';
|
||||
}
|
||||
|
||||
var tableHtml = '<div class="table-responsive"><table class="table table-sm table-hover align-middle">' +
|
||||
'<thead class="table-light"><tr><th>Name</th><th>Type</th><th>Status</th><th>Error</th></tr></thead><tbody>';
|
||||
function renderObjects(objects) {
|
||||
var container = document.getElementById('msg_objects_container');
|
||||
if (!container) return;
|
||||
container.innerHTML = '';
|
||||
|
||||
for (var i = 0; i < objects.length; i++) {
|
||||
var o = objects[i] || {};
|
||||
tableHtml += '<tr>' +
|
||||
'<td>' + (o.name || '') + '</td>' +
|
||||
'<td>' + (o.type || '') + '</td>' +
|
||||
'<td>' + (o.status || '') + '</td>' +
|
||||
'<td style="white-space: pre-wrap;">' + (o.error_message || '') + '</td>' +
|
||||
'</tr>';
|
||||
if (!objects || !objects.length) {
|
||||
container.innerHTML = '<div class="text-muted">No objects stored.</div>';
|
||||
return;
|
||||
}
|
||||
|
||||
var tableHtml = '<div class="table-responsive"><table class="table table-sm table-hover align-middle">' +
|
||||
'<thead class="table-light"><tr><th>Name</th><th>Type</th><th>Status</th><th>Error</th></tr></thead><tbody>';
|
||||
|
||||
for (var i = 0; i < objects.length; i++) {
|
||||
var o = objects[i] || {};
|
||||
tableHtml += '<tr>' +
|
||||
'<td>' + (o.name || '') + '</td>' +
|
||||
'<td>' + (o.type || '') + '</td>' +
|
||||
'<td>' + (o.status || '') + '</td>' +
|
||||
'<td style="white-space: pre-wrap;">' + (o.error_message || '') + '</td>' +
|
||||
'</tr>';
|
||||
}
|
||||
|
||||
tableHtml += '</tbody></table></div>';
|
||||
container.innerHTML = tableHtml;
|
||||
}
|
||||
|
||||
tableHtml += '</tbody></table></div>';
|
||||
container.innerHTML = tableHtml;
|
||||
}
|
||||
|
||||
function setIframeHtml(html) {
|
||||
var iframe = document.getElementById('msg_body_container_iframe');
|
||||
if (!iframe) return;
|
||||
iframe.srcdoc = html || '<p>No message content stored.</p>';
|
||||
}
|
||||
|
||||
async function openMessage(messageId) {
|
||||
try {
|
||||
var res = await fetch('{{ url_for('main.inbox_message_detail', message_id=0) }}'.replace('/0', '/' + messageId));
|
||||
if (!res.ok) throw new Error('Failed to load message');
|
||||
var data = await res.json();
|
||||
if (!data || data.status !== 'ok') throw new Error('Invalid response');
|
||||
|
||||
var meta = data.meta || {};
|
||||
setText('msg_from', meta.from_address);
|
||||
setText('msg_backup', meta.backup_software);
|
||||
setText('msg_type', meta.backup_type);
|
||||
setText('msg_job', meta.job_name);
|
||||
setText('msg_overall', meta.overall_status);
|
||||
setText('msg_customer', meta.customer_name);
|
||||
setText('msg_received', meta.received_at);
|
||||
setText('msg_parsed', meta.parsed_at);
|
||||
setText('msg_overall_message', meta.overall_message);
|
||||
|
||||
setIframeHtml(data.body_html);
|
||||
renderObjects(data.objects);
|
||||
|
||||
modal.show();
|
||||
} catch (e) {
|
||||
alert('Unable to open message details.');
|
||||
function setIframeHtml(html) {
|
||||
var iframe = document.getElementById('msg_body_container_iframe');
|
||||
if (!iframe) return;
|
||||
iframe.srcdoc = html || '<p>No message content stored.</p>';
|
||||
}
|
||||
|
||||
async function openMessage(messageId) {
|
||||
try {
|
||||
var res = await fetch('{{ url_for('main.inbox_message_detail', message_id=0) }}'.replace('/0', '/' + messageId));
|
||||
if (!res.ok) throw new Error('Failed to load message');
|
||||
var data = await res.json();
|
||||
if (!data || data.status !== 'ok') throw new Error('Invalid response');
|
||||
|
||||
var meta = data.meta || {};
|
||||
setText('msg_from', meta.from_address);
|
||||
setText('msg_backup', meta.backup_software);
|
||||
setText('msg_type', meta.backup_type);
|
||||
setText('msg_job', meta.job_name);
|
||||
setText('msg_overall', meta.overall_status);
|
||||
setText('msg_customer', meta.customer_name);
|
||||
setText('msg_received', meta.received_at);
|
||||
setText('msg_parsed', meta.parsed_at);
|
||||
setText('msg_overall_message', meta.overall_message);
|
||||
|
||||
setIframeHtml(data.body_html);
|
||||
renderObjects(data.objects);
|
||||
|
||||
modal.show();
|
||||
} catch (e) {
|
||||
alert('Unable to open message details.');
|
||||
}
|
||||
}
|
||||
|
||||
table.addEventListener('click', function (e) {
|
||||
var tr = e.target.closest('tr.mail-row');
|
||||
if (!tr) return;
|
||||
var id = tr.getAttribute('data-message-id');
|
||||
if (!id) return;
|
||||
openMessage(id);
|
||||
});
|
||||
}
|
||||
|
||||
table.addEventListener('click', function (e) {
|
||||
var tr = e.target.closest('tr.mail-row');
|
||||
if (!tr) return;
|
||||
var id = tr.getAttribute('data-message-id');
|
||||
if (!id) return;
|
||||
openMessage(id);
|
||||
});
|
||||
document.addEventListener('DOMContentLoaded', initAdminAllMailPopup);
|
||||
})();
|
||||
</script>
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user