45 lines
1.3 KiB
JavaScript
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;
|
|
|