2 * @fileoverview Javascript functions used in server variables page
3 * @name Server Replication
7 * @requires js/functions.js
10 * Unbind all event handlers before tearing down a page
12 AJAX.registerTeardown('server/variables.js', function () {
13 $(document).off('click', 'a.editLink');
14 $('#serverVariables').find('.var-name').find('a img').remove();
17 AJAX.registerOnload('server/variables.js', function () {
18 var $saveLink = $('a.saveLink');
19 var $cancelLink = $('a.cancelLink');
21 $('#serverVariables').find('.var-name').find('a').append(
22 $('#docImage').clone().css('display', 'inline-block')
25 /* Launches the variable editor */
26 $(document).on('click', 'a.editLink', function (event) {
27 event.preventDefault();
31 /* Allows the user to edit a server variable */
32 function editVariable (link) {
34 var $cell = $link.parent();
35 var $valueCell = $link.parents('.var-row').find('.var-value');
36 var varName = $link.data('variable');
38 var $mySaveLink = $saveLink.clone().css('display', 'inline-block');
39 var $myCancelLink = $cancelLink.clone().css('display', 'inline-block');
40 var $msgbox = Functions.ajaxShowMessage();
41 var $myEditLink = $cell.find('a.editLink');
42 $cell.addClass('edit'); // variable is being edited
43 $myEditLink.remove(); // remove edit link
45 $mySaveLink.on('click', function () {
46 var $msgbox = Functions.ajaxShowMessage(Messages.strProcessingRequest);
47 $.post('index.php?route=/server/variables/set/' + encodeURIComponent(varName), {
49 'varValue': $valueCell.find('input').val()
54 .data('content', data.variable);
55 Functions.ajaxRemoveMessage($msgbox);
57 if (data.error === '') {
58 Functions.ajaxShowMessage(Messages.strRequestFailed, false);
60 Functions.ajaxShowMessage(data.error, false);
62 $valueCell.html($valueCell.data('content'));
64 $cell.removeClass('edit').html($myEditLink);
69 $myCancelLink.on('click', function () {
70 $valueCell.html($valueCell.data('content'));
71 $cell.removeClass('edit').html($myEditLink);
75 $.get('index.php?route=/server/variables/get/' + encodeURIComponent(varName), {
78 if (typeof data !== 'undefined' && data.success === true) {
79 var $links = $('<div></div>')
80 .append($myCancelLink)
81 .append(' ')
83 var $editor = $('<div></div>', { 'class': 'serverVariableEditor' })
85 $('<div></div>').append(
86 $('<input>', { type: 'text' }).val(data.message)
89 // Save and replace content
93 .css('display', 'flex');
95 .data('content', $valueCell.html())
99 .on('keydown', function (event) { // Keyboard shortcuts
100 if (event.keyCode === 13) { // Enter key
101 $mySaveLink.trigger('click');
102 } else if (event.keyCode === 27) { // Escape key
103 $myCancelLink.trigger('click');
106 Functions.ajaxRemoveMessage($msgbox);
108 $cell.removeClass('edit').html($myEditLink);
109 Functions.ajaxShowMessage(data.error);