HEX
Server: nginx/1.22.1
System: Linux iZuf67d4hh2ssx30nkok6dZ 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
User: www (1000)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,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,imap_open,apache_setenv
Upload Files
File: /www/server/phpmyadmin/phpmyadmin_09ebd1f1eecc8873/js/server_variables.js
/* vim: set expandtab sw=4 ts=4 sts=4: */

/**
 * Unbind all event handlers before tearing down a page
 */
AJAX.registerTeardown('server_variables.js', function() {
    $('#serverVariables .var-row').unbind('hover');
    $('#filterText').unbind('keyup');
    $('a.editLink').die('click');
    $('#serverVariables').find('.var-name').find('a img').remove();
});

AJAX.registerOnload('server_variables.js', function() {
    var $editLink = $('a.editLink');
    var $saveLink = $('a.saveLink');
    var $cancelLink = $('a.cancelLink');
    var $filterField = $('#filterText');

    /* Show edit link on hover */
    $('#serverVariables').delegate('.var-row', 'hover', function(event) {
        if (event.type === 'mouseenter') {
            var $elm = $(this).find('.var-value');
            // Only add edit element if the element is not being edited
            if ($elm.hasClass('editable') && ! $elm.hasClass('edit')) {
                $elm.prepend($editLink.clone().show());
            }
        } else {
            $(this).find('a.editLink').remove();
        }
    }).find('.var-name').find('a').append(
        $('#docImage').clone().show()
    );

    /* Launches the variable editor */
    $editLink.live('click', function (event) {
        event.preventDefault();
        editVariable(this);
    });

    /* Event handler for variables filter */
    $filterField.keyup(function() {
        var textFilter = null, val = $(this).val();
        if (val.length !== 0) {
            textFilter = new RegExp("(^| )"+val.replace(/_/g,' '),'i');
        }
        filterVariables(textFilter);
    });

    /* Trigger filtering of the list based on incoming variable name */
    if ($filterField.val()) {
        $filterField.trigger('keyup').select();
    }

    /* Filters the rows by the user given regexp */
    function filterVariables(textFilter) {
        var mark_next = false, $row, odd_row = false;
        $('#serverVariables .var-row').not('.var-header').each(function() {
            $row = $(this);
            if (   mark_next
                || textFilter === null
                || textFilter.exec($row.find('.var-name').text())
            ) {
                // If current global value is different from session value
                // (has class diffSession), then display that one too
                mark_next = $row.hasClass('diffSession') && ! mark_next;

                odd_row = ! odd_row;
                $row.css('display', '');
                if (odd_row) {
                    $row.addClass('odd').removeClass('even');
                } else {
                    $row.addClass('even').removeClass('odd');
                }
            } else {
                $row.css('display', 'none');
            }
        });
    }

    /* Allows the user to edit a server variable */
    function editVariable(link) {
        var $cell = $(link).parent();
        var varName = $cell.parent().find('.var-name').text().replace(/ /g,'_');
        var $mySaveLink = $saveLink.clone().show();
        var $myCancelLink = $cancelLink.clone().show();
        var $msgbox = PMA_ajaxShowMessage();

        $cell
            .addClass('edit') // variable is being edited
            .find('a.editLink')
            .remove(); // remove edit link

        $mySaveLink.click(function() {
            var $msgbox = PMA_ajaxShowMessage(PMA_messages.strProcessingRequest);
            $.get($(this).attr('href'), {
                    ajax_request: true,
                    type: 'setval',
                    varName: varName,
                    varValue: $cell.find('input').val()
                }, function(data) {
                    if (data.success) {
                        $cell
                            .html(data.variable)
                            .data('content', data.variable);
                        PMA_ajaxRemoveMessage($msgbox);
                    } else {
                        PMA_ajaxShowMessage(data.error, false);
                        $cell.html($cell.data('content'));
                    }
                    $cell.removeClass('edit');
                });
            return false;
        });

        $myCancelLink.click(function() {
            $cell
                .html($cell.data('content'))
                .removeClass('edit');
            return false;
        });

        $.get($mySaveLink.attr('href'), {
                ajax_request: true,
                type: 'getval',
                varName: varName
            }, function(data) {
                if (data.success === true) {
                    var $editor = $('<div />', {'class':'serverVariableEditor'})
                        .append($myCancelLink)
                        .append(' ')
                        .append($mySaveLink)
                        .append(' ')
                        .append(
                            $('<div/>').append(
                                $('<input />', {type: 'text'}).val(data.message)
                            )
                        );
                    // Save and replace content
                    $cell
                    .data('content', $cell.html())
                    .html($editor)
                    .find('input')
                    .focus()
                    .keydown(function(event) { // Keyboard shortcuts
                        if (event.keyCode === 13) { // Enter key
                            $mySaveLink.trigger('click');
                        } else if (event.keyCode === 27) { // Escape key
                            $myCancelLink.trigger('click');
                        }
                    });
                    PMA_ajaxRemoveMessage($msgbox);
                } else {
                    $cell.removeClass('edit');
                    PMA_ajaxShowMessage(data.error);
                }
            });
    }
});