diff options
| author | Charles <sircharlesaze@gmail.com> | 2020-01-09 10:55:03 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2020-01-09 13:09:38 +0100 |
| commit | 04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch) | |
| tree | 5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/js/server/variables.js | |
| parent | 7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff) | |
| download | ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.gz ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.tar.bz2 ft_server-04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa.zip | |
phpmyadmin working
Diffstat (limited to 'srcs/phpmyadmin/js/server/variables.js')
| -rw-r--r-- | srcs/phpmyadmin/js/server/variables.js | 118 |
1 files changed, 118 insertions, 0 deletions
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 = $('<div></div>') + .append($myCancelLink) + .append(' ') + .append($mySaveLink); + var $editor = $('<div></div>', { 'class': 'serverVariableEditor' }) + .append( + $('<div></div>').append( + $('<input>', { 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); + } + }); + } +}); |
