Welcome to mirror list, hosted at ThFree Co, Russian Federation.

variables.js « server « src « js - github.com/phpmyadmin/phpmyadmin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 40e98662f2c4261439ed6d3a6cd592e492d5a330 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
/**
 * @fileoverview    Javascript functions used in server variables page
 * @name            Server Replication
 *
 * @requires    jQuery
 * @requires    jQueryUI
 * @requires    js/functions.js
 */
/**
 * Unbind all event handlers before tearing down a page
 */
window.AJAX.registerTeardown('server/variables.js', function () {
    $(document).off('click', 'a.editLink');
    $('#serverVariables').find('.var-name').find('a img').remove();
});

window.AJAX.registerOnload('server/variables.js', function () {
    var $saveLink = $('a.saveLink');
    var $cancelLink = $('a.cancelLink');

    $('#serverVariables').find('.var-name').find('a').append(
        $('#docImage').clone().css('display', 'inline-block')
    );

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

    /* Allows the user to edit a server variable */
    function editVariable (link) {
        var $link = $(link);
        var $cell = $link.parent();
        var $valueCell = $link.parents('.var-row').find('.var-value');
        var varName = $link.data('variable');

        var $mySaveLink = $saveLink.clone().css('display', 'inline-block');
        var $myCancelLink = $cancelLink.clone().css('display', 'inline-block');
        var $msgbox = Functions.ajaxShowMessage();
        var $myEditLink = $cell.find('a.editLink');
        $cell.addClass('edit'); // variable is being edited
        $myEditLink.remove(); // remove edit link

        $mySaveLink.on('click', function () {
            var $msgbox = Functions.ajaxShowMessage(window.Messages.strProcessingRequest);
            $.post('index.php?route=/server/variables/set/' + encodeURIComponent(varName), {
                'ajax_request': true,
                'server': window.CommonParams.get('server'),
                'varValue': $valueCell.find('input').val()
            }, function (data) {
                if (data.success) {
                    $valueCell
                        .html(data.variable)
                        .data('content', data.variable);
                    Functions.ajaxRemoveMessage($msgbox);
                } else {
                    if (data.error === '') {
                        Functions.ajaxShowMessage(window.Messages.strRequestFailed, false);
                    } else {
                        Functions.ajaxShowMessage(data.error, false);
                    }
                    $valueCell.html($valueCell.data('content'));
                }
                $cell.removeClass('edit').html($myEditLink);
            });
            return false;
        });

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

        $.get('index.php?route=/server/variables/get/' + encodeURIComponent(varName), {
            'ajax_request': true,
            'server': window.CommonParams.get('server')
        }, function (data) {
            if (typeof data !== 'undefined' && data.success === true) {
                var $links = $('<div></div>')
                    .append($myCancelLink)
                    .append('&nbsp;&nbsp;&nbsp;')
                    .append($mySaveLink);
                var $editor = $('<div></div>', { 'class': 'serverVariableEditor' })
                    .append(
                        $('<div></div>').append(
                            $('<input>', { type: 'text', 'class': 'form-control form-control-sm' }).val(data.message)
                        )
                    );
                    // Save and replace content
                $cell
                    .html($links)
                    .children()
                    .css('display', 'flex');
                $valueCell
                    .data('content', $valueCell.html())
                    .html($editor)
                    .find('input')
                    .trigger('focus')
                    .on('keydown', function (event) { // Keyboard shortcuts
                        if (event.keyCode === 13) { // Enter key
                            $mySaveLink.trigger('click');
                        } else if (event.keyCode === 27) { // Escape key
                            $myCancelLink.trigger('click');
                        }
                    });
                Functions.ajaxRemoveMessage($msgbox);
            } else {
                $cell.removeClass('edit').html($myEditLink);
                Functions.ajaxShowMessage(data.error);
            }
        });
    }
});