fix issues with /start /restart and status during restore of status
This commit is contained in:
@ -403,7 +403,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
function updateDockerUI(message) {
|
function updateDockerUI(message) {
|
||||||
if (message.error) {
|
if (message.error) {
|
||||||
if (elements.serverStatus) elements.serverStatus.textContent = 'Not Running';
|
if (elements.serverStatus) elements.serverStatus.textContent = 'Not Running';
|
||||||
toggleSections('error');
|
toggleSections('Not Running');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -425,10 +425,10 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const status = message.data?.status || 'Unknown';
|
const status = message.data?.status || 'Unknown';
|
||||||
if (state.serverStatus !== status && elements.serverStatus) {
|
if (elements.serverStatus) {
|
||||||
elements.serverStatus.textContent = status;
|
elements.serverStatus.textContent = status;
|
||||||
state.serverStatus = status;
|
state.serverStatus = status;
|
||||||
toggleSections(status);
|
toggleSections(status); // Always call toggleSections
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1365,10 +1365,14 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
const messageHandler = (event) => {
|
const messageHandler = (event) => {
|
||||||
try {
|
try {
|
||||||
const message = JSON.parse(event.data);
|
const message = JSON.parse(event.data);
|
||||||
if (message.type === 'docker' && message.data?.status === 'running') {
|
if (message.type === 'docker') {
|
||||||
updateNotification(notification, 'Server started successfully', 'success');
|
state.serverStatus = message.data?.status || 'Unknown'; // Force update state
|
||||||
toggleSections('running');
|
elements.serverStatus.textContent = state.serverStatus; // Update UI
|
||||||
ws.removeEventListener('message', messageHandler);
|
toggleSections(state.serverStatus); // Update section visibility
|
||||||
|
if (message.data?.status === 'running') {
|
||||||
|
updateNotification(notification, 'Server started successfully', 'success');
|
||||||
|
ws.removeEventListener('message', messageHandler);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error parsing WebSocket message:', error);
|
console.error('Error parsing WebSocket message:', error);
|
||||||
@ -1380,6 +1384,7 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
ws.removeEventListener('message', messageHandler);
|
ws.removeEventListener('message', messageHandler);
|
||||||
if (state.serverStatus !== 'running') {
|
if (state.serverStatus !== 'running') {
|
||||||
updateNotification(notification, 'Server failed to start', 'error');
|
updateNotification(notification, 'Server failed to start', 'error');
|
||||||
|
toggleSections(state.serverStatus); // Ensure UI reflects failure
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, 30000);
|
}, 30000);
|
||||||
@ -1400,17 +1405,47 @@ document.addEventListener('DOMContentLoaded', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById('restartBtn').addEventListener('click', async () => {
|
document.getElementById('restartBtn').addEventListener('click', async () => {
|
||||||
try {
|
try {
|
||||||
await wsRequest('/restart');
|
const notification = showNotification('Restarting server...');
|
||||||
initializeTerminal();
|
await wsRequest('/restart');
|
||||||
if (ws && ws.readyState === WebSocket.OPEN) {
|
initializeTerminal();
|
||||||
ws.send(JSON.stringify({ type: 'subscribe', endpoints: ['docker-logs'] }));
|
if (ws && ws.readyState === WebSocket.OPEN) {
|
||||||
}
|
ws.send(JSON.stringify({ type: 'subscribe', endpoints: ['docker', 'docker-logs'] }));
|
||||||
} catch (error) {
|
const messageHandler = (event) => {
|
||||||
console.error('Restart server error:', error);
|
try {
|
||||||
|
const message = JSON.parse(event.data);
|
||||||
|
if (message.type === 'docker') {
|
||||||
|
state.serverStatus = message.data?.status || 'Unknown'; // Force update state
|
||||||
|
elements.serverStatus.textContent = state.serverStatus; // Update UI
|
||||||
|
toggleSections(state.serverStatus); // Update section visibility
|
||||||
|
if (message.data?.status === 'running') {
|
||||||
|
updateNotification(notification, 'Server restarted successfully', 'success');
|
||||||
|
ws.removeEventListener('message', messageHandler);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Error parsing WebSocket message:', error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
ws.addEventListener('message', messageHandler);
|
||||||
|
setTimeout(() => {
|
||||||
|
if (ws && ws.readyState === WebSocket.OPEN) {
|
||||||
|
ws.removeEventListener('message', messageHandler);
|
||||||
|
if (state.serverStatus !== 'running') {
|
||||||
|
updateNotification(notification, 'Server failed to restart', 'error');
|
||||||
|
toggleSections(state.serverStatus); // Ensure UI reflects failure
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, 60000); // Increased timeout for restart
|
||||||
|
} else {
|
||||||
|
updateNotification(notification, 'WebSocket not connected', 'error');
|
||||||
}
|
}
|
||||||
});
|
} catch (error) {
|
||||||
|
console.error('Restart server error:', error);
|
||||||
|
showNotification(`Failed to restart server: ${error.message}`, 'error');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
elements.updateModsBtn.addEventListener('click', updateMods);
|
elements.updateModsBtn.addEventListener('click', updateMods);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user