Files
p2ns/includes/admin/admin-frontend/ui/logs.js
T
2025-12-17 20:05:50 -05:00

45 lines
1.3 KiB
JavaScript

// Logs UI functions - terminal rendering
function renderLogs() {
if (!window.terminalInitialized) {
// Check if Terminal is available (from xterm.js CDN)
if (typeof Terminal === 'undefined' || typeof FitAddon === 'undefined') {
console.error('Terminal or FitAddon not loaded. Make sure xterm.js scripts are loaded.');
return;
}
window.term = new Terminal();
window.fitAddon = new FitAddon.FitAddon();
window.term.loadAddon(window.fitAddon);
const terminalEl = document.getElementById('terminal');
if (terminalEl) {
window.term.open(terminalEl);
window.terminalInitialized = true;
} else {
console.error('Terminal element not found');
return;
}
}
if (window.term) {
window.term.reset();
if (window.logBuffer && window.logBuffer.length > 0) {
window.logBuffer.forEach(line => window.term.writeln(line));
}
if (window.fitAddon) {
window.fitAddon.fit();
}
}
}
// Handle window resize for terminal
window.addEventListener('resize', () => {
if (window.activeTab === 'logs' && window.fitAddon) {
window.fitAddon.fit();
}
const holesailLogModal = document.getElementById('holesailLogModal');
if (holesailLogModal && holesailLogModal.open && window.holesailFitAddon) {
window.holesailFitAddon.fit();
}
});
window.renderLogs = renderLogs;