diff --git a/web/package.json b/web/package.json index b5c643ce..2c71afab 100644 --- a/web/package.json +++ b/web/package.json @@ -66,7 +66,6 @@ "css-loader": "0.14.0", "cssnano": "^3.10.0", "dropzone": "^5.1.1", - "eonasdan-bootstrap-datetimepicker": "^4.17.47", "exports-loader": "~0.6.4", "flotr2": "git+https://github.com/EnterpriseDB/Flotr2.git", "font-awesome": "^4.7.0", @@ -79,6 +78,7 @@ "jquery-ui": "^1.12.1", "leaflet": "^1.3.3", "moment": "^2.20.1", + "moment-timezone": "^0.5.21", "mousetrap": "^1.6.1", "prop-types": "^15.5.10", "react": "^16.2.0", @@ -92,6 +92,8 @@ "spectrum-colorpicker": "^1.8.0", "sprintf-js": "^1.1.1", "tablesorter": "^2.30.6", + "tempusdominus-bootstrap-4": "^5.1.2", + "tempusdominus-core": "^5.0.3", "underscore": "^1.8.3", "underscore.string": "^3.3.4", "watchify": "~3.9.0", diff --git a/web/pgadmin/browser/static/js/browser.js b/web/pgadmin/browser/static/js/browser.js index b1e95adb..f226fa07 100644 --- a/web/pgadmin/browser/static/js/browser.js +++ b/web/pgadmin/browser/static/js/browser.js @@ -132,7 +132,7 @@ define('pgadmin.browser', [ isCloseable: false, isPrivate: true, elContainer: true, - content: '
' + select_object_msg + '
', + content: '
' + select_object_msg + '
', events: panelEvents, onCreate: function(myPanel, $container) { $container.addClass('pg-no-overflow'); diff --git a/web/pgadmin/browser/static/js/node.js b/web/pgadmin/browser/static/js/node.js index a7f43974..69b64dee 100644 --- a/web/pgadmin/browser/static/js/node.js +++ b/web/pgadmin/browser/static/js/node.js @@ -479,7 +479,7 @@ define('pgadmin.browser.node', [ isCloseable: true, isPrivate: true, elContainer: true, - content: '
' + gettext('Please wait while we fetch information about the node from the server...') + '
', + content: '
' + gettext('Please wait while we fetch information about the node from the server...') + '
', onCreate: function(myPanel, $container) { $container.addClass('pg-no-overflow'); }, diff --git a/web/pgadmin/static/css/style.css b/web/pgadmin/static/css/style.css index 8a113f00..aeb0354a 100644 --- a/web/pgadmin/static/css/style.css +++ b/web/pgadmin/static/css/style.css @@ -2,7 +2,7 @@ @import '~alertifyjs/build/css/themes/bootstrap.css'; @import '~font-awesome/css/font-awesome.css'; @import '~bootstrap-datepicker/dist/css/bootstrap-datepicker3.css'; -@import '~eonasdan-bootstrap-datetimepicker/build/css/bootstrap-datetimepicker.css'; +@import '~tempusdominus-bootstrap-4/build/css/tempusdominus-bootstrap-4.css'; @import '~bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.css'; @import '~backgrid-select-all/backgrid-select-all.css'; @import '~backgrid-filter/backgrid-filter.css'; diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js index 7bfbcb90..0d941b42 100644 --- a/web/pgadmin/static/js/backform.pgadmin.js +++ b/web/pgadmin/static/js/backform.pgadmin.js @@ -2340,13 +2340,19 @@ define([ label: '', options: { format: 'YYYY-MM-DD HH:mm:ss Z', - showClear: true, - showTodayButton: true, + icons: { + clear: 'fa fa-trash', + }, + buttons: { + showClear: true, + showToday: true, + }, toolbarPlacement: 'top', widgetPositioning: { horizontal: 'auto', vertical: 'bottom', }, + keepOpen: false, }, placeholder: 'YYYY-MM-DD HH:mm:ss Z', extraClasses: [], @@ -2362,16 +2368,16 @@ define([ }, openPicker: function() { if (this.has_datepicker) { - this.$el.find('input').datetimepicker('show'); + this.$el.find('input').datetimepicker('toggle'); } }, template: _.template([ '', '
', - ' <%=required ? "required" : ""%> />', - ' ', - ' ', - ' ', + ' <%=required ? "required" : ""%> data-toggle="datetimepicker"/>', + '
', + ' ', + '
', '
', '<% if (helpMessage && helpMessage.length) { %>', '
', @@ -2464,7 +2470,6 @@ define([ ); } this.updateInvalid(); - return this; }, clearInvalid: function() { diff --git a/web/pgadmin/static/js/backgrid.pgadmin.js b/web/pgadmin/static/js/backgrid.pgadmin.js index e9cd9757..80ec67f5 100644 --- a/web/pgadmin/static/js/backgrid.pgadmin.js +++ b/web/pgadmin/static/js/backgrid.pgadmin.js @@ -1348,9 +1348,15 @@ define([ }, options = _.extend({ format: 'YYYY-MM-DD HH:mm:ss Z', - showClear: true, - showTodayButton: true, + icons: { + clear: 'fa fa-trash', + }, + buttons: { + showClear: true, + showToday: true, + }, toolbarPlacement: 'top', + keepOpen: false, }, evalF(this.column.get('options')), { keyBinds: { 'shift tab': function(widget) { diff --git a/web/pgadmin/static/scss/_pgadmin.style.scss b/web/pgadmin/static/scss/_pgadmin.style.scss index 92cdf46a..c7f39255 100644 --- a/web/pgadmin/static/scss/_pgadmin.style.scss +++ b/web/pgadmin/static/scss/_pgadmin.style.scss @@ -1051,6 +1051,7 @@ lgg-el-container[el=md] .pg-el-lg-8, .obj_properties .backform-tab > .tab-content { padding: 0px; overflow-y: auto; + min-height: 100%; max-height: 100%; } diff --git a/web/pgadmin/tools/datagrid/templates/datagrid/index.html b/web/pgadmin/tools/datagrid/templates/datagrid/index.html index 6e201b9f..2b86824a 100644 --- a/web/pgadmin/tools/datagrid/templates/datagrid/index.html +++ b/web/pgadmin/tools/datagrid/templates/datagrid/index.html @@ -186,7 +186,7 @@ tabindex="0" disabled> -
diff --git a/web/webpack.config.js b/web/webpack.config.js index 30581c45..c42e08cf 100644 --- a/web/webpack.config.js +++ b/web/webpack.config.js @@ -48,6 +48,8 @@ const providePlugin = new webpack.ProvidePlugin({ Backbone: 'backbone', Backgrid: 'backgrid', pgAdmin: 'pgadmin', + 'moment': 'moment', + 'window.moment':'moment', }); // Minify and omptimize JS/CSS to reduce bundle size. It is used in production diff --git a/web/webpack.shim.js b/web/webpack.shim.js index c6217fde..bb4f1f7c 100644 --- a/web/webpack.shim.js +++ b/web/webpack.shim.js @@ -25,6 +25,7 @@ var webpackShimConfig = { 'exports': 'jQuery.fn.datepicker', }, 'bootstrap.datetimepicker': { + 'deps': ['moment'], 'exports': 'jQuery.fn.datetimepicker', }, 'bootstrap.switch': { @@ -161,7 +162,7 @@ var webpackShimConfig = { 'backbone.undo': path.join(__dirname, './node_modules/backbone-undo/Backbone.Undo'), 'backform': path.join(__dirname, './node_modules/backform/src/backform'), 'backgrid': path.join(__dirname, './node_modules/backgrid/lib/backgrid'), - 'bootstrap.datetimepicker': path.join(__dirname, './node_modules/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min'), + 'bootstrap.datetimepicker': path.join(__dirname, './node_modules/tempusdominus-bootstrap-4/build/js/tempusdominus-bootstrap-4.min'), 'bootstrap.switch': path.join(__dirname, './node_modules/bootstrap-switch/dist/js/bootstrap-switch'), 'select2': path.join(__dirname, './node_modules/select2/dist/js/select2.full'), 'backgrid.filter': path.join(__dirname, './node_modules/backgrid-filter/backgrid-filter'), diff --git a/web/webpack.test.config.js b/web/webpack.test.config.js index a7118711..f8c020cd 100644 --- a/web/webpack.test.config.js +++ b/web/webpack.test.config.js @@ -14,6 +14,8 @@ module.exports = { _: 'underscore', 'underscore.string': 'underscore.string', 'window.jQuery': 'jquery', + 'moment': 'moment', + 'window.moment':'moment', }), ], @@ -65,7 +67,7 @@ module.exports = { 'jquery.ui': path.join(__dirname, './node_modules/slickgrid/lib/jquery-ui-1.11.3'), 'spectrum': path.join(__dirname, './node_modules/spectrum-colorpicker/spectrum'), 'bignumber': path.join(__dirname, './node_modules/bignumber.js/bignumber'), - 'bootstrap.datetimepicker': path.join(__dirname, './node_modules/eonasdan-bootstrap-datetimepicker/build/js/bootstrap-datetimepicker.min'), + 'bootstrap.datetimepicker': path.join(__dirname, './node_modules/tempusdominus-bootstrap-4/build/js/tempusdominus-bootstrap-4.min'), 'bootstrap.switch': path.join(__dirname, './node_modules/bootstrap-switch/dist/js/bootstrap-switch'), 'backbone': path.join(__dirname, './node_modules/backbone/backbone'), 'backform': path.join(__dirname, './node_modules/backform/src/backform'), @@ -78,6 +80,7 @@ module.exports = { 'slickgrid.grid': nodeModulesDir + '/slickgrid/slick.grid', 'bean': path.join(__dirname, './node_modules/flotr2/lib/bean'), 'flotr2': path.join(__dirname, './node_modules/flotr2/flotr2.amd'), + 'moment': path.join(__dirname, './node_modules/moment/moment'), 'browser': path.resolve(__dirname, 'pgadmin/browser/static/js'), 'pgadmin': sourcesDir + '/js/pgadmin', 'pgadmin.sqlfoldcode': sourcesDir + '/js/codemirror/addon/fold/pgadmin-sqlfoldcode',