client: make warn-on-close optional, default false
This commit is contained in:
parent
aa8d89d14b
commit
763f5030d1
@ -682,6 +682,7 @@ menu.reset = function() {
|
||||
this.clear();
|
||||
this.add(joinparts_getstr(), toggle_joinparts);
|
||||
this.add(desktop_notifications_fmtstr(), desktop_notifications_toggle);
|
||||
this.add(warnonclose_fmtstr(), warnonclose_toggle);
|
||||
this.add(timestamp_display(), timestamp_toggle);
|
||||
};
|
||||
|
||||
@ -810,6 +811,8 @@ var timestamp_format_index = 0;
|
||||
|
||||
var mainchat_unread_count = 0;
|
||||
|
||||
var should_warn_on_close = false;
|
||||
|
||||
var timestamp_display = function() {
|
||||
return "Timestamp format: " + timestamp_names[timestamp_format_index];
|
||||
};
|
||||
@ -821,6 +824,17 @@ var timestamp_toggle = function(ev) {
|
||||
$el.innerHTML = timestamp_display();
|
||||
};
|
||||
|
||||
var warnonclose_fmtstr = function() {
|
||||
return (should_warn_on_close ? "☑" : "☐") + " Confirm closing window";
|
||||
};
|
||||
|
||||
var warnonclose_toggle = function(ev) {
|
||||
var $el = ev.target || ev.srcElement;
|
||||
should_warn_on_close = !should_warn_on_close;
|
||||
persistence_set("warnonclose", should_warn_on_close);
|
||||
$el.innerHTML = warnonclose_fmtstr();
|
||||
};
|
||||
|
||||
var desktop_notifications_enabled = false;
|
||||
|
||||
var desktop_notifications_fmtstr = function() {
|
||||
@ -982,7 +996,7 @@ window.onload = function() {
|
||||
};
|
||||
|
||||
window.onbeforeunload = function (e) {
|
||||
if (hub_state === STATE_ACTIVE) {
|
||||
if (should_warn_on_close && hub_state === STATE_ACTIVE) {
|
||||
// n.b. recent Firefox / Chrome don't display the custom message here.
|
||||
var confirmationMessage = "Still connected to the hub \"" + hub_hubname + "\".\nAre you sure you want to close?";
|
||||
e.returnValue = confirmationMessage;
|
||||
@ -993,6 +1007,8 @@ window.onload = function() {
|
||||
|
||||
timestamp_format_index = persistence_get("timestamps", 0);
|
||||
|
||||
should_warn_on_close = persistence_get("warnonclose");
|
||||
|
||||
desktop_notifications_enabled = persistence_get("popups");
|
||||
if (desktop_notifications_enabled) {
|
||||
// prompt for permissions
|
||||
|
Loading…
Reference in New Issue
Block a user