diff --git a/js/vendor/jquery/jquery.sortableTable.js b/js/src/jquery.sortable-table.js similarity index 65% rename from js/vendor/jquery/jquery.sortableTable.js rename to js/src/jquery.sortable-table.js index 25acb1b1df..230565ed5e 100644 --- a/js/vendor/jquery/jquery.sortableTable.js +++ b/js/src/jquery.sortable-table.js @@ -1,4 +1,3 @@ -/* vim: set expandtab sw=4 ts=4 sts=4: */ /** * This file is internal to phpMyAdmin. * @license see the main phpMyAdmin license. @@ -9,41 +8,41 @@ * @name Sortable Table JQuery plugin * * @requires jQuery - * */ -/* Options: +/** + * Options: + * + * $('table').sortableTable({ + * ignoreRect: { top, left, width, height } - Relative coordinates on each element. If the user clicks + * in this area, it is not seen as a drag&drop request. Useful for toolbars etc. + * events: { + * start: callback function when the user starts dragging + * drop: callback function after an element has been dropped + * } + * }) + */ -$('table').sortableTable({ - ignoreRect: { top, left, width, height } - relative coordinates on each element. If the user clicks - in this area, it is not seen as a drag&drop request. Useful for toolbars etc. - events: { - start: callback function when the user starts dragging - drop: callback function after an element has been dropped - } -}) -*/ +/** + * Commands: + * + * $('table').sortableTable('init') - equivalent to $('table').sortableTable() + * $('table').sortableTable('refresh') - if the table has been changed, refresh correctly assigns all events again + * $('table').sortableTable('destroy') - removes all events from the table + */ -/* Commands: - -$('table').sortableTable('init') - equivalent to $('table').sortableTable() -$('table').sortableTable('refresh') - if the table has been changed, refresh correctly assigns all events again -$('table').sortableTable('destroy') - removes all events from the table - -*/ - -/* Setup: - - Can be applied on any table, there is just one convention. - Each cell () has to contain one and only one element (preferably div or span) - which is the actually draggable element. -*/ +/** + * Setup: + * + * Can be applied on any table, there is just one convention. + * Each cell () has to contain one and only one element (preferably div or span) + * which is the actually draggable element. + */ (function ($) { jQuery.fn.sortableTable = function (method) { - var methods = { init: function (options) { - var tb = new sortableTableInstance(this, options); + var tb = new SortableTableInstance(this, options); tb.init(); $(this).data('sortableTable', tb); }, @@ -63,113 +62,124 @@ $('table').sortableTable('destroy') - removes all events from the table $.error('Method ' + method + ' does not exist on jQuery.sortableTable'); } - function sortableTableInstance(table, options) { + function SortableTableInstance (table, options = {}) { var down = false; - var $draggedEl, oldCell, previewMove, id; - - if (!options) options = {}; + var $draggedEl; + var oldCell; + var previewMove; + var id; /* Mouse handlers on the child elements */ var onMouseUp = function (e) { dropAt(e.pageX, e.pageY); - } + }; var onMouseDown = function (e) { $draggedEl = $(this).children(); - if ($draggedEl.length == 0) return; - if (options.ignoreRect && insideRect({ x: e.pageX - $draggedEl.offset().left, y: e.pageY - $draggedEl.offset().top }, options.ignoreRect)) return; + if ($draggedEl.length === 0) { + return; + } + if (options.ignoreRect && insideRect({ x: e.pageX - $draggedEl.offset().left, y: e.pageY - $draggedEl.offset().top }, options.ignoreRect)) { + return; + } down = true; oldCell = this; - //move(e.pageX,e.pageY); - if (options.events && options.events.start) + if (options.events && options.events.start) { options.events.start(this); + } return false; - } + }; var globalMouseMove = function (e) { if (down) { move(e.pageX, e.pageY); if (inside($(oldCell), e.pageX, e.pageY)) { - if (previewMove != null) { + if (previewMove !== null) { moveTo(previewMove); previewMove = null; } - } else + } else { $(table).find('td').each(function () { if (inside($(this), e.pageX, e.pageY)) { - if ($(previewMove).attr('class') != $(this).children().first().attr('class')) { - if (previewMove != null) moveTo(previewMove); + if ($(previewMove).attr('class') !== $(this).children().first().attr('class')) { + if (previewMove !== null) { + moveTo(previewMove); + } previewMove = $(this).children().first(); - if (previewMove.length > 0) + if (previewMove.length > 0) { moveTo($(previewMove), { pos: { top: $(oldCell).offset().top - $(previewMove).parent().offset().top, left: $(oldCell).offset().left - $(previewMove).parent().offset().left } }); + } } return false; } }); + } } return false; - } + }; var globalMouseOut = function () { if (down) { down = false; - if (previewMove) moveTo(previewMove); + if (previewMove) { + moveTo(previewMove); + } moveTo($draggedEl); previewMove = null; } - } + }; // Initialize sortable table this.init = function () { id = 1; // Add some required css to each child element in the s $(table).find('td').children().each(function () { - // Remove any old occurences of our added draggable-num class - $(this).attr('class', $(this).attr('class').replace(/\s*draggable\-\d+/g, '')); + // Remove any old occurrences of our added draggable-num class + $(this).attr('class', $(this).attr('class').replace(/\s*draggable-\d+/g, '')); $(this).addClass('draggable-' + (id++)); }); // Mouse events - $(table).find('td').bind('mouseup', onMouseUp); - $(table).find('td').bind('mousedown', onMouseDown); + $(table).find('td').on('mouseup', onMouseUp); + $(table).find('td').on('mousedown', onMouseDown); - $(document).mousemove(globalMouseMove); - $(document).bind('mouseleave', globalMouseOut); - } + $(document).on('mousemove', globalMouseMove); + $(document).on('mouseleave', globalMouseOut); + }; // Call this when the table has been updated this.refresh = function () { this.destroy(); this.init(); - } + }; this.destroy = function () { // Add some required css to each child element in the s $(table).find('td').children().each(function () { - // Remove any old occurences of our added draggable-num class - $(this).attr('class', $(this).attr('class').replace(/\s*draggable\-\d+/g, '')); + // Remove any old occurrences of our added draggable-num class + $(this).attr('class', $(this).attr('class').replace(/\s*draggable-\d+/g, '')); }); // Mouse events - $(table).find('td').unbind('mouseup', onMouseUp) - $(table).find('td').unbind('mousedown', onMouseDown); + $(table).find('td').off('mouseup', onMouseUp); + $(table).find('td').off('mousedown', onMouseDown); - $(document).unbind('mousemove', globalMouseMove); - $(document).unbind('mouseleave', globalMouseOut); - } + $(document).off('mousemove', globalMouseMove); + $(document).off('mouseleave', globalMouseOut); + }; - function switchElement(drag, dropTo) { + function switchElement (drag, dropTo) { var dragPosDiff = { left: $(drag).children().first().offset().left - $(dropTo).offset().left, top: $(drag).children().first().offset().top - $(dropTo).offset().top @@ -187,16 +197,17 @@ $('table').sortableTable('destroy') - removes all events from the table // Put the element in the way to old place $(drag).append($(dropTo).children().first()).children() .stop(true, true) - .bind('mouseup', onMouseUp); + .on('mouseup', onMouseUp); - if (dropPosDiff) + if (dropPosDiff) { $(drag).append($(dropTo).children().first()).children() .css('left', dropPosDiff.left + 'px') .css('top', dropPosDiff.top + 'px'); + } // Put our dragged element into the space we just freed up $(dropTo).append($(drag).children().first()).children() - .bind('mouseup', onMouseUp) + .on('mouseup', onMouseUp) .css('left', dragPosDiff.left + 'px') .css('top', dragPosDiff.top + 'px'); @@ -208,61 +219,67 @@ $('table').sortableTable('destroy') - removes all events from the table // and vice versa. So the parameters are switched. // Calculate row and column index - colIdx = $(dropTo).prevAll().length; - rowIdx = $(dropTo).parent().prevAll().length; + const colIdx = $(dropTo).prevAll().length; + const rowIdx = $(dropTo).parent().prevAll().length; options.events.drop(drag, dropTo, { col: colIdx, row: rowIdx }); } } - function move(x, y) { + function move (x, y) { $draggedEl.offset({ top: Math.min($(document).height(), Math.max(0, y - $draggedEl.height() / 2)), left: Math.min($(document).width(), Math.max(0, x - $draggedEl.width() / 2)) }); } - function inside($el, x, y) { + function inside ($el, x, y) { var off = $el.offset(); return y >= off.top && x >= off.left && x < off.left + $el.width() && y < off.top + $el.height(); } - function insideRect(pos, r) { + function insideRect (pos, r) { return pos.y > r.top && pos.x > r.left && pos.y < r.top + r.height && pos.x < r.left + r.width; } - function dropAt(x, y) { - if (!down) return; + function dropAt (x, y) { + if (!down) { + return; + } down = false; var switched = false; $(table).find('td').each(function () { - if ($(this).children().first().attr('class') != $(oldCell).children().first().attr('class') && inside($(this), x, y)) { + if ($(this).children().first().attr('class') !== $(oldCell).children().first().attr('class') && inside($(this), x, y)) { switchElement(oldCell, this); switched = true; - return; } }); if (!switched) { - if (previewMove) moveTo(previewMove); + if (previewMove) { + moveTo(previewMove); + } moveTo($draggedEl); } previewMove = null; } - function moveTo(elem, opts) { - if (!opts) opts = {}; - if (!opts.pos) opts.pos = { left: 0, top: 0 }; - if (!opts.duration) opts.duration = 200; + function moveTo (elem, opts = {}) { + if (!opts.pos) { + opts.pos = { left: 0, top: 0 }; + } + if (!opts.duration) { + opts.duration = 200; + } $(elem).css('position', 'relative'); $(elem).animate({ top: opts.pos.top, left: opts.pos.left }, { duration: opts.duration, complete: function () { - if (opts.pos.left == 0 && opts.pos.top == 0) { + if (opts.pos.left === 0 && opts.pos.top === 0) { $(elem) .css('position', '') .css('left', '') @@ -272,6 +289,5 @@ $('table').sortableTable('destroy') - removes all events from the table }); } } - } - -})(jQuery); + }; +}(jQuery)); diff --git a/libraries/classes/Controllers/Server/Status/MonitorController.php b/libraries/classes/Controllers/Server/Status/MonitorController.php index 1543c09391..874d786833 100644 --- a/libraries/classes/Controllers/Server/Status/MonitorController.php +++ b/libraries/classes/Controllers/Server/Status/MonitorController.php @@ -47,7 +47,7 @@ class MonitorController extends AbstractController $this->addScriptFiles([ 'vendor/jquery/jquery.tablesorter.js', - 'vendor/jquery/jquery.sortableTable.js', + 'jquery.sortable-table.js', 'vendor/jqplot/jquery.jqplot.js', 'vendor/jqplot/plugins/jqplot.pieRenderer.js', 'vendor/jqplot/plugins/jqplot.enhancedPieLegendRenderer.js', diff --git a/scripts/sync-js-vendor-files.sh b/scripts/sync-js-vendor-files.sh index cd1626ab39..9077f1e761 100755 --- a/scripts/sync-js-vendor-files.sh +++ b/scripts/sync-js-vendor-files.sh @@ -13,14 +13,12 @@ cd ${ROOT_DIR} # Remove each '-not -path' when a new package can be used from npm echo 'Delete vendor files we can replace from source dists' -# jquery.sortableTable.js is an internal lib find ./js/vendor/ \ -not -path './js/vendor/openlayers/*' \ -not -path './js/vendor/sprintf.js' \ -not -path './js/vendor/jqplot/jquery.jqplot.js' \ -not -path './js/vendor/jqplot/plugins/jqplot.*.js' \ -not -path './js/vendor/jquery/jquery-ui.min.js' \ - -not -path './js/vendor/jquery/jquery.sortableTable.js' \ -not -path './js/vendor/jquery/jquery.svg.js' \ -type f -delete -print