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(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(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(' ')
.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);
}
});
}
});
|