PHP 7.4.33
Preview: server_status_processes.js Size: 6.17 KB
/var/www/podiomigration.bitkit.dk/httpdocs/public/phpmyadmin/js/server_status_processes.js
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * Server Status Processes
 *
 * @package PhpMyAdmin
 */

// object to store process list state information
var processList = {

    // denotes whether auto refresh is on or off
    autoRefresh: false,
    // stores the GET request which refresh process list
    refreshRequest: null,
    // stores the timeout id returned by setTimeout
    refreshTimeout: null,
    // the refresh interval in seconds
    refreshInterval: null,
    // the refresh URL (required to save last used option)
    // i.e. full or sorting url
    refreshUrl: null,

    /**
     * Handles killing of a process
     *
     * @return void
     */
    init: function () {
        processList.setRefreshLabel();
        if (processList.refreshUrl === null) {
            processList.refreshUrl = 'server_status_processes.php' +
                PMA_commonParams.get('common_query');
        }
        if (processList.refreshInterval === null) {
            processList.refreshInterval = $('#id_refreshRate').val();
        } else {
            $('#id_refreshRate').val(processList.refreshInterval);
        }
    },

    /**
     * Handles killing of a process
     *
     * @param object the event object
     *
     * @return void
     */
    killProcessHandler: function (event) {
        event.preventDefault();
        var argSep = PMA_commonParams.get('arg_separator');
        var params = $(this).getPostData();
        params += argSep + 'ajax_request=1' + argSep + 'server=' + PMA_commonParams.get('server');
        // Get row element of the process to be killed.
        var $tr = $(this).closest('tr');
        $.post($(this).attr('href'), params, function (data) {
            // Check if process was killed or not.
            if (data.hasOwnProperty('success') && data.success) {
                // remove the row of killed process.
                $tr.remove();
                // As we just removed a row, reapply odd-even classes
                // to keep table stripes consistent
                var $tableProcessListTr = $('#tableprocesslist').find('> tbody > tr');
                $tableProcessListTr.filter(':even').removeClass('odd').addClass('even');
                $tableProcessListTr.filter(':odd').removeClass('even').addClass('odd');
                // Show process killed message
                PMA_ajaxShowMessage(data.message, false);
            } else {
                // Show process error message
                PMA_ajaxShowMessage(data.error, false);
            }
        }, 'json');
    },

    /**
     * Handles Auto Refreshing
     *
     * @param object the event object
     *
     * @return void
     */
    refresh: function (event) {
        // abort any previous pending requests
        // this is necessary, it may go into
        // multiple loops causing unnecessary
        // requests even after leaving the page.
        processList.abortRefresh();
        // if auto refresh is enabled
        if (processList.autoRefresh) {
            var interval = parseInt(processList.refreshInterval, 10) * 1000;
            var urlParams = processList.getUrlParams();
            processList.refreshRequest = $.post(processList.refreshUrl,
                urlParams,
                function (data) {
                    if (data.hasOwnProperty('success') && data.success) {
                        $newTable = $(data.message);
                        $('#tableprocesslist').html($newTable.html());
                        PMA_highlightSQL($('#tableprocesslist'));
                    }
                    processList.refreshTimeout = setTimeout(
                        processList.refresh,
                        interval
                    );
                });
        }
    },

    /**
     * Stop current request and clears timeout
     *
     * @return void
     */
    abortRefresh: function () {
        if (processList.refreshRequest !== null) {
            processList.refreshRequest.abort();
            processList.refreshRequest = null;
        }
        clearTimeout(processList.refreshTimeout);
    },

    /**
     * Set label of refresh button
     * change between play & pause
     *
     * @return void
     */
    setRefreshLabel: function () {
        var img = 'play';
        var label = PMA_messages.strStartRefresh;
        if (processList.autoRefresh) {
            img = 'pause';
            label = PMA_messages.strStopRefresh;
            processList.refresh();
        }
        $('a#toggleRefresh').html(PMA_getImage(img) + escapeHtml(label));
    },

    /**
     * Return the Url Parameters
     * for autorefresh request,
     * includes showExecuting if the filter is checked
     *
     * @return urlParams - url parameters with autoRefresh request
     */
    getUrlParams: function () {
        var urlParams = { 'ajax_request': true, 'refresh': true };
        if ($('#showExecuting').is(':checked')) {
            urlParams.showExecuting = true;
            return urlParams;
        }
        return urlParams;
    }
};

AJAX.registerOnload('server_status_processes.js', function () {
    processList.init();
    // Bind event handler for kill_process
    $('#tableprocesslist').on(
        'click',
        'a.kill_process',
        processList.killProcessHandler
    );
    // Bind event handler for toggling refresh of process list
    $('a#toggleRefresh').on('click', function (event) {
        event.preventDefault();
        processList.autoRefresh = !processList.autoRefresh;
        processList.setRefreshLabel();
    });
    // Bind event handler for change in refresh rate
    $('#id_refreshRate').on('change', function (event) {
        processList.refreshInterval = $(this).val();
        processList.refresh();
    });
    // Bind event handler for table header links
    $('#tableprocesslist').on('click', 'thead a', function () {
        processList.refreshUrl = $(this).attr('href');
    });
});

/**
 * Unbind all event handlers before tearing down a page
 */
AJAX.registerTeardown('server_status_processes.js', function () {
    $('#tableprocesslist').off('click', 'a.kill_process');
    $('a#toggleRefresh').off('click');
    $('#id_refreshRate').off('change');
    $('#tableprocesslist').off('click', 'thead a');
    // stop refreshing further
    processList.abortRefresh();
});

Directory Contents

Dirs: 5 × Files: 58
Name Size Perms Modified Actions
- drwxrwxr-x 2019-06-04 12:06:16
Edit Download
designer DIR
- drwxrwxr-x 2019-06-04 12:06:16
Edit Download
jqplot DIR
- drwxrwxr-x 2019-06-04 12:06:16
Edit Download
- drwxrwxr-x 2019-06-04 12:06:16
Edit Download
vendor DIR
- drwxrwxr-x 2019-06-04 12:06:16
Edit Download
30.51 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
18.08 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
18.75 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
26.88 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
55.94 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
471 B lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
10.86 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
7.85 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
6.21 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
2.15 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
4.39 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
8.56 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
15.43 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
3.57 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
20.16 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
10.58 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
34.24 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
289 B lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
171.07 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
14.42 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
5.51 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
27.01 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
3.25 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
96.42 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
8.12 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
40.02 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
11.32 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
3.21 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
58.58 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
27.47 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
1.71 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
3.13 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
46.57 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
5.56 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
495 B lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
18.40 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
3.63 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
84.47 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
6.17 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
934 B lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
1.96 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
3.19 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
1.34 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
4.17 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
3.19 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
37.54 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
27.89 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
13.80 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
1.54 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
10.70 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
13.88 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
8.75 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
15.44 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
19.41 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
3.85 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
21.81 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
2.47 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
1.26 KB lrwxrwxr-x 2019-06-04 12:06:16
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).