|
Server : Apache/2.4.18 (Ubuntu) System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 User : oppastar ( 1041) PHP Version : 7.0.33-0ubuntu0.16.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, Directory : /var/www/andreassugianto.com/public_html/media/com_admintools/js/ |
Upload File : |
/**
* @package AdminTools
* @copyright Copyright (c)2010-2013 Nicholas K. Dionysopoulos
* @license GNU General Public License version 3, or later
* @version $Id$
*/
/** @var The AJAX proxy URL */
var admintools_ajax_url = "";
/** @var The callback function to call on error */
var admintools_error_callback = dummy_error_handler;
/** @var The password sent to the restoration script */
var admintools_update_password = '';
var admintools_update_stat_inbytes = 0;
var admintools_update_stat_outbytes = 0;
var admintools_update_stat_files = 0;
var admintools_update_factory = null;
/**
* An extremely simple error handler, dumping error messages to screen
* @param error The error message string
*/
function dummy_error_handler(error)
{
alert("ERROR:\n"+error);
}
/**
* Performs an AJAX request and returns the parsed JSON output.
* The global akeeba_ajax_url is used as the AJAX proxy URL.
* If there is no errorCallback, the global akeeba_error_callback is used.
* @param data An object with the query data, e.g. a serialized form
* @param successCallback A function accepting a single object parameter, called on success
* @param errorCallback A function accepting a single string parameter, called on failure
*/
function doAjax(data, successCallback, errorCallback)
{
var json = JSON.stringify(data);
if( admintools_update_password.length > 0 )
{
json = AesCtr.encrypt( json, admintools_update_password, 128 );
}
var post_data = 'json='+encodeURIComponent(json);
var structure =
{
onSuccess: function(msg, responseXML)
{
// Initialize
var junk = null;
var message = "";
// Get rid of junk before the data
var valid_pos = msg.indexOf('###');
if( valid_pos == -1 ) {
// Valid data not found in the response
msg = 'Invalid AJAX data:\n' + msg;
if(errorCallback == null)
{
if(admintools_error_callback != null)
{
admintools_error_callback(msg);
}
}
else
{
errorCallback(msg);
}
return;
} else if( valid_pos != 0 ) {
// Data is prefixed with junk
junk = msg.substr(0, valid_pos);
message = msg.substr(valid_pos);
}
else
{
message = msg;
}
message = message.substr(3); // Remove triple hash in the beginning
// Get of rid of junk after the data
var valid_pos = message.lastIndexOf('###');
message = message.substr(0, valid_pos); // Remove triple hash in the end
// Decrypt if required
if( admintools_update_password.length > 0 )
{
try {
var data = JSON.parse(message);
} catch(err) {
message = AesCtr.decrypt(message, admintools_update_password, 128);
}
}
try {
var data = JSON.parse(message);
} catch(err) {
var msg = err.message + "\n<br/>\n<pre>\n" + message + "\n</pre>";
if(errorCallback == null)
{
if(admintools_error_callback != null)
{
admintools_error_callback(msg);
}
}
else
{
errorCallback(msg);
}
return;
}
// Call the callback function
successCallback(data);
},
onFailure: function(req) {
var message = 'AJAX Loading Error: '+req.statusText;
if(errorCallback == null)
{
if(admintools_error_callback != null)
{
admintools_error_callback(message);
}
}
else
{
errorCallback(message);
}
}
};
var ajax_object = null;
// Damn you, Internet Explorer!!!
var randomJunk = new Date().getTime();
var url = admintools_ajax_url+'?randomJunk='+randomJunk;
if(typeof(XHR) == 'undefined') {
structure.url = url;
ajax_object = new Request(structure);
ajax_object.send(post_data);
} else {
ajax_object = new XHR(structure);
ajax_object.send(url, post_data);
}
}
/**
* Pings the update script (making sure its executable!!)
* @return
*/
function pingUpdate()
{
// Reset variables
admintools_update_stat_files = 0;
admintools_update_stat_inbytes = 0;
admintools_update_stat_outbytes = 0;
// Do AJAX post
var post = {task : 'ping'};
doAjax(post, function(data){
startUpdate(data);
});
}
/**
* Starts the update
* @return
*/
function startUpdate()
{
// Reset variables
admintools_update_stat_files = 0;
admintools_update_stat_inbytes = 0;
admintools_update_stat_outbytes = 0;
var post = { task : 'startRestore' };
doAjax(post, function(data){
processUpdateStep(data);
});
}
/**
* Steps through the update
* @param data
* @return
*/
function processUpdateStep(data)
{
if(data.status == false)
{
// handle failure
admintools_error_callback(data.message);
}
else
{
if(data.done)
{
admintools_update_factory = data.factory;
finalizeUpdate();
}
else
{
// Add data to variables
admintools_update_stat_inbytes += data.bytesIn;
admintools_update_stat_outbytes += data.bytesOut;
admintools_update_stat_files += data.files;
// Display data
document.getElementById('extbytesin').innerHTML = admintools_update_stat_inbytes;
document.getElementById('extbytesout').innerHTML = admintools_update_stat_outbytes;
document.getElementById('extfiles').innerHTML = admintools_update_stat_files;
// Do AJAX post
post = {
task: 'stepRestore',
factory: data.factory
};
doAjax(post, function(data){
processUpdateStep(data);
});
}
}
}
function finalizeUpdate()
{
// Do AJAX post
var post = { task : 'finalizeRestore', factory: admintools_update_factory };
doAjax(post, function(data){
updateFinished(data);
});
}
function updateFinished()
{
window.location = 'index.php?option=com_admintools&view=jupdate&task=finalize&file='+admintools_file;
}
function showWhatthis()
{
if(document.getElementById('admintools-whatsthis-info').style.display == 'block') {
document.getElementById('admintools-whatsthis-info').style.display = 'none';
} else {
document.getElementById('admintools-whatsthis-info').style.display = 'block';
}
}
function hideWhatthis()
{
document.getElementById('admintools-whatsthis-info').style.display = 'none';
}