aboutsummaryrefslogtreecommitdiff
path: root/srcs/phpmyadmin/js/server/variables.js
diff options
context:
space:
mode:
authorCharles <sircharlesaze@gmail.com>2020-01-09 10:55:03 +0100
committerCharles <sircharlesaze@gmail.com>2020-01-09 13:09:38 +0100
commit04d6d5ca99ebfd1cebb8ce06618fb3811fc1a8aa (patch)
tree5c691241355c943a3c68ddb06b8cf8c60aa11319 /srcs/phpmyadmin/js/server/variables.js
parent7e0d85db834d6351ed85d01e5126ac31dc510b86 (diff)
downloadft_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.js118
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('&nbsp;&nbsp;&nbsp;')
+ .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);
+ }
+ });
+ }
+});