Add noVNC_setting_warn_before_close

Ability to to toggle the warning prompt before closing the tab or window introduced by 63c2c14a50 (PR #2006).

Closes #2014
This commit is contained in:
Daniel Hammerschmidt 2025-11-11 19:21:21 +01:00
parent d44f7e04fc
commit 058f00fe1b
2 changed files with 16 additions and 2 deletions

View File

@ -184,6 +184,7 @@ const UI = {
UI.initSetting('shared', true);
UI.initSetting('bell', 'on');
UI.initSetting('view_only', false);
UI.initSetting('warn_before_close', false);
UI.initSetting('show_dot', false);
UI.initSetting('path', 'websockify');
UI.initSetting('repeaterID', '');
@ -369,6 +370,7 @@ const UI = {
UI.addSettingChangeHandler('shared');
UI.addSettingChangeHandler('view_only');
UI.addSettingChangeHandler('view_only', UI.updateViewOnly);
UI.addSettingChangeHandler('warn_before_close');
UI.addSettingChangeHandler('show_dot');
UI.addSettingChangeHandler('show_dot', UI.updateShowDotCursor);
UI.addSettingChangeHandler('host');
@ -887,6 +889,7 @@ const UI = {
UI.updateSetting('compression');
UI.updateSetting('shared');
UI.updateSetting('view_only');
UI.updateSetting('warn_before_close');
UI.updateSetting('path');
UI.updateSetting('repeaterID');
UI.updateSetting('logging');
@ -1221,8 +1224,10 @@ const UI = {
// preventDefault() or a nonempty returnValue, though the latter is
// considered legacy. The custom string is ignored by modern browsers,
// which display a native message, but older browsers will show it.
if (UI.getSetting('warn_before_close')) {
e.preventDefault();
e.returnValue = _("Are you sure you want to disconnect the session?");
}
},
updateBeforeUnload() {
@ -1769,6 +1774,7 @@ const UI = {
.classList.add('noVNC_hidden');
document.getElementById('noVNC_clipboard_button')
.classList.add('noVNC_hidden');
UI.disableSetting('warn_before_close');
} else {
document.getElementById('noVNC_keyboard_button')
.classList.remove('noVNC_hidden');
@ -1776,6 +1782,7 @@ const UI = {
.classList.remove('noVNC_hidden');
document.getElementById('noVNC_clipboard_button')
.classList.remove('noVNC_hidden');
UI.enableSetting('warn_before_close');
}
},

View File

@ -219,6 +219,13 @@
View only
</label>
</li>
<li>
<label>
<input id="noVNC_setting_warn_before_close" type="checkbox"
class="toggle">
Warn before close
</label>
</li>
<li><hr></li>
<li>
<label>