Initial commit
This commit is contained in:
160
#pma/js/server_variables.js
Normal file
160
#pma/js/server_variables.js
Normal file
@ -0,0 +1,160 @@
|
||||
/* vim: set expandtab sw=4 ts=4 sts=4: */
|
||||
|
||||
/**
|
||||
* Unbind all event handlers before tearing down a page
|
||||
*/
|
||||
AJAX.registerTeardown('server_variables.js', function () {
|
||||
$('#filterText').unbind('keyup');
|
||||
$(document).off('click', 'a.editLink');
|
||||
$('#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');
|
||||
|
||||
|
||||
$('#serverVariables').find('.var-name').find('a').append(
|
||||
$('#docImage').clone().show()
|
||||
);
|
||||
|
||||
/* Launches the variable editor */
|
||||
$(document).on('click', 'a.editLink', function (event) {
|
||||
event.preventDefault();
|
||||
editVariable(this);
|
||||
});
|
||||
|
||||
/* Event handler for variables filter */
|
||||
$filterField.keyup(function () {
|
||||
var textFilter = null, val = $(this).val();
|
||||
if (val.length !== 0) {
|
||||
try {
|
||||
textFilter = new RegExp("(^| )" + val.replace(/_/g, ' '), 'i');
|
||||
$(this).removeClass('error');
|
||||
} catch(e) {
|
||||
if (e instanceof SyntaxError) {
|
||||
$(this).addClass('error');
|
||||
textFilter = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
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').find('.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 $link = $(link);
|
||||
var $cell = $link.parent();
|
||||
var $valueCell = $link.parents('.var-row').find('.var-value');
|
||||
var varName = $link.data('variable');
|
||||
var $mySaveLink = $saveLink.clone().show();
|
||||
var $myCancelLink = $cancelLink.clone().show();
|
||||
var $msgbox = PMA_ajaxShowMessage();
|
||||
var $myEditLink = $cell.find('a.editLink');
|
||||
|
||||
$cell.addClass('edit'); // variable is being edited
|
||||
$myEditLink.remove(); // remove edit link
|
||||
|
||||
$mySaveLink.click(function () {
|
||||
var $msgbox = PMA_ajaxShowMessage(PMA_messages.strProcessingRequest);
|
||||
$.post($(this).attr('href'), {
|
||||
ajax_request: true,
|
||||
type: 'setval',
|
||||
varName: varName,
|
||||
varValue: $valueCell.find('input').val()
|
||||
}, function (data) {
|
||||
if (data.success) {
|
||||
$valueCell
|
||||
.html(data.variable)
|
||||
.data('content', data.variable);
|
||||
PMA_ajaxRemoveMessage($msgbox);
|
||||
} else {
|
||||
if (data.error == '') {
|
||||
PMA_ajaxShowMessage(PMA_messages.strRequestFailed, false);
|
||||
} else {
|
||||
PMA_ajaxShowMessage(data.error, false);
|
||||
}
|
||||
$valueCell.html($valueCell.data('content'));
|
||||
}
|
||||
$cell.removeClass('edit').html($myEditLink);
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$myCancelLink.click(function () {
|
||||
$valueCell.html($valueCell.data('content'));
|
||||
$cell.removeClass('edit').html($myEditLink);
|
||||
return false;
|
||||
});
|
||||
|
||||
$.get($mySaveLink.attr('href'), {
|
||||
ajax_request: true,
|
||||
type: 'getval',
|
||||
varName: varName
|
||||
}, function (data) {
|
||||
if (typeof data !== 'undefined' && data.success === true) {
|
||||
var $links = $('<div />')
|
||||
.append($myCancelLink)
|
||||
.append(' ')
|
||||
.append($mySaveLink);
|
||||
var $editor = $('<div />', {'class': 'serverVariableEditor'})
|
||||
.append(
|
||||
$('<div/>').append(
|
||||
$('<input />', {type: 'text'}).val(data.message)
|
||||
)
|
||||
);
|
||||
// Save and replace content
|
||||
$cell
|
||||
.html($links);
|
||||
$valueCell
|
||||
.data('content', $valueCell.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').html($myEditLink);
|
||||
PMA_ajaxShowMessage(data.error);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
Reference in New Issue
Block a user