Add debug logging to RDP page to trace button click issues

- Added console.log statements throughout RDP page JavaScript
- Log WebAssembly module loading progress
- Log event listener attachment
- Log button click events (connect, disconnect, window controls)
- Log function calls (showRdpConfig, startRdpConnection, connect)
- This will help identify where the execution stops when buttons are clicked
parent 11ca85ae
......@@ -309,6 +309,8 @@
</div>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script>
console.log('RDP page script starting...');
// init kbdlayout_input
let defaultLayoutId;
for (let i = 0; i < layouts.length; ++i) {
......@@ -323,11 +325,47 @@ for (let i = 0; i < layouts.length; ++i) {
}
// Since we don't have kbdlayout_input in this simplified version, we'll use default
}
console.log('Keyboard layouts initialized, defaultLayoutId:', defaultLayoutId);
let kbdInputLayoutEvent = () => {};
let _Module = null;
console.log('Starting WebAssembly module loading...');
WallixModule({
// INITIAL_MEMORY: 16777216, // 16**6
// INITIAL_MEMORY: 268435456, // 16**7
}).then((Module) => {
console.log('WebAssembly module loaded successfully');
_Module = Module;
// optional
const LogLevel = Module.LogLevel;
Module.log = function(priority, msg) {
const logger = (priority === LogLevel.Info) ? console.log
: (priority === LogLevel.Warning) ? console.warn
: (priority === LogLevel.Error) ? console.error
: (priority === LogLevel.Debug) ? (s) => {
console.debug("%c%s", 'color:yellow', s)
}
: console.info;
logger(msg);
};
// Set constants now that module is loaded
RdpClient = _Module.RdpClient;
ClipboardChannel = _Module.ClipboardChannel;
MouseFlags = _Module.MouseFlags;
InputFlags = _Module.InputFlags;
console.log('WebAssembly constants set:', { RdpClient: !!RdpClient, MouseFlags: !!MouseFlags, InputFlags: !!InputFlags });
}).catch((e) => {
console.error('Failed to load WebAssembly module:', e);
showNotification('Failed to load RDP WebAssembly module', 'danger');
});
// Constants will be set after module loads
let RdpClient, ClipboardChannel, MouseFlags, InputFlags;
......@@ -728,16 +766,44 @@ const onMouseWheel = (evt) => {
}
};
document.getElementById('connectBtn').addEventListener('click', showRdpConfig);
document.getElementById('disconnectBtn').addEventListener('click', disconnect);
document.getElementById('cancelConnectBtn').addEventListener('click', cancelConnect);
document.getElementById('startRdpBtn').addEventListener('click', startRdpConnection);
console.log('Attaching event listeners...');
document.getElementById('connectBtn').addEventListener('click', function(e) {
console.log('Connect button clicked');
showRdpConfig();
});
document.getElementById('disconnectBtn').addEventListener('click', function(e) {
console.log('Disconnect button clicked');
disconnect();
});
document.getElementById('cancelConnectBtn').addEventListener('click', function(e) {
console.log('Cancel connect button clicked');
cancelConnect();
});
document.getElementById('startRdpBtn').addEventListener('click', function(e) {
console.log('Start RDP button clicked');
startRdpConnection();
});
// Window control buttons
document.querySelector('.close-btn').addEventListener('click', disconnect);
document.querySelector('.maximize-btn').addEventListener('click', toggleFullscreen);
document.querySelector('.minimize-btn').addEventListener('click', toggleFullscreen);
document.getElementById('zoomBtn').addEventListener('click', toggleZoom);
document.querySelector('.close-btn').addEventListener('click', function(e) {
console.log('Close button clicked');
disconnect();
});
document.querySelector('.maximize-btn').addEventListener('click', function(e) {
console.log('Maximize button clicked');
toggleFullscreen();
});
document.querySelector('.minimize-btn').addEventListener('click', function(e) {
console.log('Minimize button clicked');
toggleFullscreen();
});
document.getElementById('zoomBtn').addEventListener('click', function(e) {
console.log('Zoom button clicked');
toggleZoom();
});
console.log('Event listeners attached');
// Input event handlers
let ecanvas = document.getElementById('canvas');
......@@ -811,6 +877,7 @@ function toggleZoom() {
}
function showRdpConfig() {
console.log('showRdpConfig called, connected:', connected);
if (connected) return;
// Show the RDP configuration modal
......@@ -819,6 +886,7 @@ function showRdpConfig() {
}
function startRdpConnection() {
console.log('startRdpConnection called');
// Hide the modal
const modal = bootstrap.Modal.getInstance(document.getElementById('rdpConfigModal'));
modal.hide();
......@@ -828,10 +896,12 @@ function startRdpConnection() {
}
function connect() {
console.log('connect called, connected:', connected);
if (connected) return;
// Check if WebAssembly module is loaded
if (!_Module) {
console.log('WebAssembly module not loaded yet');
showNotification('WebAssembly module not loaded yet. Please wait.', 'warning');
return;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment