diff --git a/libraries.txt b/libraries.txt index 7e0bd5b72..32effda4e 100644 --- a/libraries.txt +++ b/libraries.txt @@ -1,36 +1,36 @@ This is a list of the third party libraries/code used in the application, not including Python modules installed via Pip which are listed in requirements.txt. -Library Version Licence URL -======= ======= ======= === -QT 4.6.2+ LGPL v2.1/3 http://www.qt.io/ -Bootstrap 3.3.4 MIT http://getbootstrap.com/ -jQuery 1.11.1 MIT http://jquery.com/ -Modernizr 2.6.2 MIT/BSD http://modernizr.com/ -AlertifyJS 1.7.1 MIT http://alertifyjs.com/ *** Do not update - changed to GPL3 in 1.8.0 *** -CodeMirror 5.14.2 MIT http://codemirror.net/ -aciTree 4.5.0-rc.7 MIT/GPL http://acoderinsights.ro/en/aciTree-tree-view-with-jQuery -contextMenu 2.1.0 MIT https://github.com/swisnl/jQuery-contextMenu -wcDocker 0f5690318c MIT/GPL https://github.com/WebCabin/wcDocker -Require.js 2.1.18 BSD/MIT http://requirejs.org/ -Underscore.js 1.8.3 MIT http://underscorejs.org/ -Underscore.string 387ab72d49 MIT http://epeli.github.io/underscore.string/ -Backform.js 5859b4f9db MIT https://github.com/AmiliaApp/backform -Backbone 1.1.2 MIT http://backbonejs.org -font-Awesome 4.5 SIL OFL http://fortawesome.github.io/Font-Awesome/ -font-mfizz 2.3 MIT http://fizzed.com/oss/font-mfizz -backgrid.js 0.3.5 MIT http://backgridjs.com/ -backbone.undo 0.2 MIT http://backbone.undojs.com/ -bootstrap-switch 3.3.2 MIT http://www.bootstrap-switch.org/ -select2 4.0.1 MIT https://select2.github.io/ -backgrid-filter 01b2b21 MIT https://github.com/wyuenho/backgrid-filter -backbone.paginator 2.0.3 MIT http://github.com/backbone-paginator/backbone.paginator -backgrid-paginator 03632df MIT https://github.com/wyuenho/backgrid-paginator -backgrid-select-all 1a00053 MIT https://github.com/wyuenho/backgrid-select-all -dropzone 4e20bd4 MIT https://github.com/enyo/dropzone -Filemanager 7e060c2 MIT https://github.com/simogeo/Filemanager -Unit (Length) d8e6237 MIT https://github.com/heygrady/Units/blob/master/Length.min.js -Natural Sort 9565816 MIT https://github.com/javve/natural-sort/blob/master/index.js -SlickGrid 2.2.4 MIT https://github.com/6pac/SlickGrid -jQuery-UI 1.11.3 MIT https://jqueryui.com/ -BigNumber 3.0.1 MIT http://mikemcl.github.io/bignumber.js \ No newline at end of file +Library Version Licence URL +======= ======= ======= === +QT 4.6.2+ LGPL v2.1/3 http://www.qt.io/ +Bootstrap 3.3.4 MIT http://getbootstrap.com/ +jQuery 1.11.1 MIT http://jquery.com/ +Modernizr 2.6.2 MIT/BSD http://modernizr.com/ +AlertifyJS 1.7.1 MIT http://alertifyjs.com/ *** Do not update - changed to GPL3 in 1.8.0 *** +CodeMirror 5.14.2 MIT http://codemirror.net/ +aciTree 4.5.0-rc.7 MIT/GPL http://acoderinsights.ro/en/aciTree-tree-view-with-jQuery +contextMenu 2.1.0 MIT https://github.com/swisnl/jQuery-contextMenu +wcDocker 0f5690318c MIT/GPL https://github.com/WebCabin/wcDocker +Require.js 2.1.18 BSD/MIT http://requirejs.org/ +Underscore.js 1.8.3 MIT http://underscorejs.org/ +Underscore.string 387ab72d49 MIT http://epeli.github.io/underscore.string/ +Backform.js 5859b4f9db MIT https://github.com/AmiliaApp/backform +Backbone 1.1.2 MIT http://backbonejs.org +font-Awesome 4.5 SIL OFL http://fortawesome.github.io/Font-Awesome/ +font-mfizz 2.3 MIT http://fizzed.com/oss/font-mfizz +backgrid.js 0.3.5 MIT http://backgridjs.com/ +backbone.undo 0.2 MIT http://backbone.undojs.com/ +bootstrap-switch 3.3.2 MIT http://www.bootstrap-switch.org/ +select2 4.0.1 MIT https://select2.github.io/ +backgrid-filter 01b2b21 MIT https://github.com/wyuenho/backgrid-filter +backbone.paginator 2.0.3 MIT http://github.com/backbone-paginator/backbone.paginator +backgrid-paginator 03632df MIT https://github.com/wyuenho/backgrid-paginator +backgrid-select-all 1a00053 MIT https://github.com/wyuenho/backgrid-select-all +dropzone 4e20bd4 MIT https://github.com/enyo/dropzone +Filemanager 7e060c2 MIT https://github.com/simogeo/Filemanager +Unit (Length) d8e6237 MIT https://github.com/heygrady/Units/blob/master/Length.min.js +Natural Sort 9565816 MIT https://github.com/javve/natural-sort/blob/master/index.js +SlickGrid 2.3.7-8ff6814 MIT https://github.com/6pac/SlickGrid +jQuery-UI 1.11.3 MIT https://jqueryui.com/ +BigNumber 3.0.1 MIT http://mikemcl.github.io/bignumber.js \ No newline at end of file diff --git a/web/karma.conf.js b/web/karma.conf.js index 713b9f056..39697ca7b 100644 --- a/web/karma.conf.js +++ b/web/karma.conf.js @@ -17,6 +17,7 @@ module.exports = function (config) { {pattern: 'pgadmin/browser/static/js/**/*.js', included: false}, 'regression/javascript/**/*.jsx', 'regression/javascript/**/*.js', + 'pgadmin/static/bundle/slickgrid.js', ], // list of files to exclude @@ -30,6 +31,7 @@ module.exports = function (config) { preprocessors: { 'regression/javascript/**/*.js': ['webpack'], 'regression/javascript/**/*.jsx': ['webpack'], + 'pgadmin/static/bundle/slickgrid.js': ['webpack'], }, webpack: webpackConfig, diff --git a/web/package.json b/web/package.json index b58af2e92..8df8097fa 100644 --- a/web/package.json +++ b/web/package.json @@ -4,6 +4,7 @@ "babel-loader": "~6.4.1", "babel-preset-es2015": "~6.24.0", "babel-preset-react": "~6.23.0", + "css-loader": "^0.28.4", "enzyme": "~2.8.2", "enzyme-matchers": "^3.1.0", "eslint": "^3.19.0", @@ -19,7 +20,9 @@ "karma-requirejs": "~1.1.0", "karma-sourcemap-loader": "~0.3.7", "karma-webpack": "~2.0.3", + "raw-loader": "^0.5.1", "react-addons-test-utils": "~15.4.2", + "style-loader": "^0.18.2", "webpack": "~2.3.1" }, "dependencies": { @@ -36,12 +39,13 @@ "react": "file:../web/pgadmin/static/vendor/react", "react-dom": "file:../web/pgadmin/static/vendor/react-dom", "requirejs": "~2.3.3", + "slickgrid": "git+https://github.com/6pac/SlickGrid.git#2.3.7", "underscore": "~1.8.3", "watchify": "~3.9.0" }, "scripts": { "linter": "yarn run eslint pgadmin/static/jsx/**/*.jsx pgadmin/static/js/selection/*.js regression/javascript/**/*.jsx regression/javascript/**/*.js *.js", - "webpacker": "yarn run webpack -- --optimize-minimize --config webpack.config.js", + "webpacker": "yarn run webpack -- --config webpack.config.js", "webpacker:dev": "yarn run webpack -- --config webpack.config.js", "bundle": "yarn run linter && yarn run webpacker", "bundle:dev": "yarn run linter && yarn run webpacker:dev", diff --git a/web/pgadmin/static/jsx/components.jsx b/web/pgadmin/static/bundle/components.js similarity index 64% rename from web/pgadmin/static/jsx/components.jsx rename to web/pgadmin/static/bundle/components.js index 6ff34e4c3..221beff18 100644 --- a/web/pgadmin/static/jsx/components.jsx +++ b/web/pgadmin/static/bundle/components.js @@ -1,7 +1,6 @@ - import React from 'react'; import {render} from 'react-dom'; -import QueryHistory from './history/query_history'; +import QueryHistory from '../jsx/history/query_history'; export { render, diff --git a/web/pgadmin/static/bundle/slickgrid.js b/web/pgadmin/static/bundle/slickgrid.js new file mode 100644 index 000000000..0d82a6bd0 --- /dev/null +++ b/web/pgadmin/static/bundle/slickgrid.js @@ -0,0 +1,13 @@ +import 'slickgrid/slick.grid.css'; +import 'slickgrid/slick-default-theme.css'; +import 'slickgrid/css/smoothness/jquery-ui-1.11.3.custom.css'; +import 'slickgrid/slick.core'; +import 'slickgrid/slick.grid'; +import 'slickgrid/slick.editors'; +import 'slickgrid/slick.formatters'; +import 'slickgrid/plugins/slick.autotooltips'; +import 'slickgrid/plugins/slick.cellrangedecorator'; +import 'slickgrid/plugins/slick.cellrangeselector'; +import 'slickgrid/lib/jquery.event.drag-2.3.0'; + +export default window.Slick; \ No newline at end of file diff --git a/web/pgadmin/static/js/selection/xcell_selection_model.js b/web/pgadmin/static/js/selection/xcell_selection_model.js index 974b74798..8a128c43b 100644 --- a/web/pgadmin/static/js/selection/xcell_selection_model.js +++ b/web/pgadmin/static/js/selection/xcell_selection_model.js @@ -2,10 +2,9 @@ define([ 'jquery', 'underscore', 'sources/selection/range_selection_helper', - 'sources/slickgrid/pgslick.cellrangeselector', 'slickgrid', -], function ($, _, RangeSelectionHelper, PGCellRangeSelector) { +], function ($, _, RangeSelectionHelper) { var XCellSelectionModel = function (options) { var KEY_ARROW_RIGHT = 39; @@ -17,7 +16,7 @@ define([ var _grid; var _ranges = []; var _self = this; - var _selector = new PGCellRangeSelector({ + var _selector = new Slick.CellRangeSelector({ 'selectionCss': { 'border': '2px solid black', }, diff --git a/web/pgadmin/static/js/slickgrid/pgslick.cellrangedecorator.js b/web/pgadmin/static/js/slickgrid/pgslick.cellrangedecorator.js deleted file mode 100644 index 8b0e340fe..000000000 --- a/web/pgadmin/static/js/slickgrid/pgslick.cellrangedecorator.js +++ /dev/null @@ -1,73 +0,0 @@ -define([ - 'jquery', - - 'slickgrid', -], function ($) { - /*** - * Displays an overlay on top of a given cell range. - * - * TODO: - * Currently, it blocks mouse events to DOM nodes behind it. - * Use FF and WebKit-specific "pointer-events" CSS style, or some kind of event forwarding. - * Could also construct the borders separately using 4 individual DIVs. - * - * @param {Grid} grid - * @param {Object} options - */ - var PGCellRangeDecorator = function (grid, options) { - var _elem; - var _defaults = { - selectionCssClass: 'slick-range-decorator', - selectionCss: { - "zIndex": "9999", - "border": "2px dashed red" - } - }; - - options = $.extend(true, {}, _defaults, options); - - - function show(range) { - if (!_elem) { - _elem = $("
", {css: options.selectionCss}) - .addClass(options.selectionCssClass) - .css("position", "absolute") - .appendTo(grid.getCanvasNode()); - } - - var from = grid.getCellNodeBox(range.fromRow, range.fromCell); - var to = grid.getCellNodeBox(range.toRow, range.toCell); - - // TODO: This is the original Slickgrid code temporary fix to solve - // pgAdmin alignment of the selection box on the bottom right corner - // _elem.css({ - // top: from.top - 1, - // left: from.left - 1, - // height: to.bottom - from.top - 2, - // width: to.right - from.left - 2 - // }); - - _elem.css({ - top: from.top - 1, - left: from.left - 1, - height: to.bottom - from.top + 2, - width: to.right - from.left + 1 - }); - - return _elem; - } - - function hide() { - if (_elem) { - _elem.remove(); - _elem = null; - } - } - - $.extend(this, { - "show": show, - "hide": hide - }); - }; - return PGCellRangeDecorator; -}); diff --git a/web/pgadmin/static/js/slickgrid/pgslick.cellrangeselector.js b/web/pgadmin/static/js/slickgrid/pgslick.cellrangeselector.js deleted file mode 100644 index 6a8649bcb..000000000 --- a/web/pgadmin/static/js/slickgrid/pgslick.cellrangeselector.js +++ /dev/null @@ -1,119 +0,0 @@ -define([ - 'jquery', - 'sources/slickgrid/pgslick.cellrangedecorator', - - 'slickgrid', -], function ($, PGCellRangeDecorator) { - - var PGCellRangeSelector = function (options) { - var _grid; - var _canvas; - var _currentlySelectedRange; - var _dragging; - var _decorator; - var _self = this; - var _handler = new Slick.EventHandler(); - var _defaults = { - selectionCss: { - "border": "2px dashed blue" - } - }; - - - function init(grid) { - options = $.extend(true, {}, _defaults, options); - _decorator = new PGCellRangeDecorator(grid, options); - _grid = grid; - _canvas = _grid.getCanvasNode(); - _handler - .subscribe(_grid.onDragInit, handleDragInit) - .subscribe(_grid.onDragStart, handleDragStart) - .subscribe(_grid.onDrag, handleDrag) - .subscribe(_grid.onDragEnd, handleDragEnd); - } - - function destroy() { - _handler.unsubscribeAll(); - } - - function handleDragInit(e, dd) { - // prevent the grid from cancelling drag'n'drop by default - e.stopImmediatePropagation(); - } - - function handleDragStart(e, dd) { - var cell = _grid.getCellFromEvent(e); - if (_self.onBeforeCellRangeSelected.notify(cell) !== false) { - if (_grid.canCellBeSelected(cell.row, cell.cell)) { - _dragging = true; - e.stopImmediatePropagation(); - } - } - if (!_dragging) { - return; - } - - _grid.focus(); - - var start = _grid.getCellFromPoint( - dd.startX - $(_canvas).offset().left, - dd.startY - $(_canvas).offset().top); - - dd.range = {start: start, end: {}}; - _currentlySelectedRange = dd.range; - return _decorator.show(new Slick.Range(start.row, start.cell)); - } - - function handleDrag(e, dd) { - if (!_dragging) { - return; - } - e.stopImmediatePropagation(); - - var end = _grid.getCellFromPoint( - e.pageX - $(_canvas).offset().left, - e.pageY - $(_canvas).offset().top); - - if (!_grid.canCellBeSelected(end.row, end.cell)) { - return; - } - - dd.range.end = end; - _currentlySelectedRange = dd.range; - _decorator.show(new Slick.Range(dd.range.start.row, dd.range.start.cell, end.row, end.cell)); - } - - function handleDragEnd(e, dd) { - if (!_dragging) { - return; - } - - _dragging = false; - e.stopImmediatePropagation(); - - _decorator.hide(); - _self.onCellRangeSelected.notify({ - range: new Slick.Range( - dd.range.start.row, - dd.range.start.cell, - dd.range.end.row, - dd.range.end.cell - ) - }); - } - - function getCurrentRange() { - return _currentlySelectedRange; - } - - $.extend(this, { - "init": init, - "destroy": destroy, - "getCurrentRange": getCurrentRange, - - "onBeforeCellRangeSelected": new Slick.Event(), - "onCellRangeSelected": new Slick.Event() - }); - }; - return PGCellRangeSelector; -}); \ No newline at end of file diff --git a/web/pgadmin/static/vendor/slickgrid/README.md b/web/pgadmin/static/vendor/slickgrid/README.md deleted file mode 100644 index e8a1ad7a5..000000000 --- a/web/pgadmin/static/vendor/slickgrid/README.md +++ /dev/null @@ -1,9 +0,0 @@ -## This is the 6pac SlickGrid repo - -This is the acknowledged most active non-customised fork of SlickGrid. - -It aims to be a viable alternative master repo, building on the legacy of the mleibman/SlickGrid master branch, keeping libraries up to date and applying small, safe core patches and enhancements without turning into a personalised build. - -Check out the [examples](https://github.com/6pac/SlickGrid/wiki/Examples) for examples demonstrating new features and use cases, such as dynamic grid creation and editors with third party controls. - -Also check out the [wiki](https://github.com/6pac/SlickGrid/wiki) for news and documentation. \ No newline at end of file diff --git a/web/pgadmin/static/vendor/slickgrid/controls/slick.columnpicker.css b/web/pgadmin/static/vendor/slickgrid/controls/slick.columnpicker.css deleted file mode 100644 index bcbb37584..000000000 --- a/web/pgadmin/static/vendor/slickgrid/controls/slick.columnpicker.css +++ /dev/null @@ -1,31 +0,0 @@ -.slick-columnpicker { - border: 1px solid #718BB7; - background: #f0f0f0; - padding: 6px; - -moz-box-shadow: 2px 2px 2px silver; - -webkit-box-shadow: 2px 2px 2px silver; - box-shadow: 2px 2px 2px silver; - min-width: 100px; - cursor: default; -} - -.slick-columnpicker li { - list-style: none; - margin: 0; - padding: 0; - background: none; -} - -.slick-columnpicker input { - margin: 4px; -} - -.slick-columnpicker li a { - display: block; - padding: 4px; - font-weight: bold; -} - -.slick-columnpicker li a:hover { - background: white; -} diff --git a/web/pgadmin/static/vendor/slickgrid/controls/slick.columnpicker.js b/web/pgadmin/static/vendor/slickgrid/controls/slick.columnpicker.js deleted file mode 100644 index 93a6be5b0..000000000 --- a/web/pgadmin/static/vendor/slickgrid/controls/slick.columnpicker.js +++ /dev/null @@ -1,153 +0,0 @@ -(function ($) { - function SlickColumnPicker(columns, grid, options) { - var $menu; - var columnCheckboxes; - - var defaults = { - fadeSpeed:250 - }; - - function init() { - grid.onHeaderContextMenu.subscribe(handleHeaderContextMenu); - grid.onColumnsReordered.subscribe(updateColumnOrder); - options = $.extend({}, defaults, options); - - $menu = $("