From 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 9 Jan 2020 10:55:03 +0100 Subject: phpmyadmin working --- srcs/phpmyadmin/js/server/variables.js | 118 +++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 srcs/phpmyadmin/js/server/variables.js (limited to 'srcs/phpmyadmin/js/server/variables.js') diff --git a/srcs/phpmyadmin/js/server/variables.js b/srcs/phpmyadmin/js/server/variables.js new file mode 100644 index 0000000..523ef06 --- /dev/null +++ b/srcs/phpmyadmin/js/server/variables.js @@ -0,0 +1,118 @@ +/* vim: set expandtab sw=4 ts=4 sts=4: */ +/** + * @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 + */ +AJAX.registerTeardown('server/variables.js', function () { + $(document).off('click', 'a.editLink'); + $('#serverVariables').find('.var-name').find('a img').remove(); +}); + +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($(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); + 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($mySaveLink.attr('href'), { + 'ajax_request': true, + 'type': 'getval', + 'varName': varName + }, function (data) { + if (typeof data !== 'undefined' && data.success === true) { + var $links = $('
') + .append($myCancelLink) + .append('   ') + .append($mySaveLink); + var $editor = $('
', { 'class': 'serverVariableEditor' }) + .append( + $('
').append( + $('', { type: 'text' }).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); + } + }); + } +}); -- cgit