Files
homeproz/wp-content/plugins/all-in-one-wp-security-and-firewall/includes/simba-tfa/includes/frontend-settings.js
T

123 lines
3.5 KiB
JavaScript
Executable File

var tfa_query_leaving = false;
// Prevent accidental leaving if there are unsaved settings
window.onbeforeunload = function(e) {
if (tfa_query_leaving) {
e.returnValue = simba_tfa_frontend.ask;
return simba_tfa_frontend.ask;
}
}
jQuery(function($) {
$(".tfa_settings_form input, .tfa_settings_form textarea, .tfa_settings_form select" ).on('change', function() {
tfa_query_leaving = true;
});
$(".simbatfa_settings_save").on('click', function() {
$.blockUI({ message: '<div style="margin: 8px;font-size:150%;">'+simba_tfa_frontend.saving+'</div>' });
// https://stackoverflow.com/questions/10147149/how-can-i-override-jquerys-serialize-to-include-unchecked-checkboxes
var form_data = $('.tfa_settings_form input, .tfa_settings_form textarea, .tfa_settings_form select').serialize();
// Include unchecked checkboxes. Use filter to only include unchecked boxes.
$.each($('.tfa_settings_form input[type=checkbox]')
.filter(function(idx) {
return $(this).prop('checked') === false
}),
function(idx, el){
// attach matched element names to the form_data with a chosen value.
var emptyVal = '0';
form_data += '&' + $(el).attr('name') + '=' + emptyVal;
}
);
$.post(simba_tfa_frontend.ajax_url, {
action: 'tfa_frontend',
subaction: 'savesettings',
settings: form_data,
nonce: simba_tfa_frontend.nonce
}, function(response) {
var settings_saved = false;
try {
var resp = JSON.parse(response);
if (resp.hasOwnProperty('result')) {
settings_saved = true;
tfa_query_leaving = false;
// Allow user code to respond
$(document).trigger('tfa_settings_saved', resp);
}
if (resp.hasOwnProperty('message')) {
alert(resp.message);
}
if (resp.hasOwnProperty('qr')) {
$('.simbaotp_qr_container').data('qrcode', resp['qr']).empty().qrcode({
"render": "image",
"text": resp['qr'],
});
}
if (resp.hasOwnProperty('al_type_disp')) {
$("#al_type_name").html(resp['al_type_disp']['disp']);
$("#al_type_desc").html(resp['al_type_disp']['desc']);
}
} catch(err) {
console.log(err);
console.log(response);
if ('' === simba_tfa_frontend.also_try) {
alert(simba_tfa_frontend.response+response);
}
}
if ('' != simba_tfa_frontend.also_try) {
if (!settings_saved) {
$.post(simba_tfa_frontend.also_try, {
action: 'tfa_frontend',
subaction: 'savesettings',
settings: form_data,
nonce: simba_tfa_frontend.nonce
}, function(response) {
try {
var resp = JSON.parse(response);
if (resp.hasOwnProperty('result')) {
settings_saved = true;
tfa_query_leaving = false;
// Allow user code to respond
$(document).trigger('tfa_settings_saved', resp);
}
if (resp.hasOwnProperty('message')) {
alert(resp.message);
}
if (resp.hasOwnProperty('qr')) {
$('.simbaotp_qr_container').data('qrcode', resp['qr']).empty().qrcode({
"render": "image",
"text": resp['qr'],
});
}
if (resp.hasOwnProperty('al_type_disp')) {
$("#al_type_name").html(resp['al_type_disp']['disp']);
$("#al_type_desc").html(resp['al_type_disp']['desc']);
}
} catch(err) {
console.log(err);
console.log(response);
alert(simba_tfa_frontend.response+response);
}
$.unblockUI();
});
} else {
$.unblockUI();
}
} else {
$.unblockUI();
}
});
});
});