public inbox for [email protected]  
help / color / mirror / Atom feed
From: Khushboo Vashi <[email protected]>
To: pgadmin-hackers <[email protected]>
Subject: [pgAdmin4][Patch]: RM - 3051 - ables > Properties > Columns tab is slow on tables with a lot of fields
Date: Mon, 14 Jan 2019 16:28:10 +0530
Message-ID: <CAFOhELfosrL2Y_2_gwHyzef5JeSSzNSyicSNj6uv1B1286yKzg@mail.gmail.com> (raw)

Hi,

Please find the attached patch to fix #3051 - Tables > Properties > Columns
tab is slow on tables with a lot of fields

The root cause of the issue is bootstrap switch, which has been replaced
with bootstrap4-toggle application wide.

Thanks,
Khushboo


Attachments:

  [application/octet-stream] RM_3051.patch (21.6K, 3-RM_3051.patch)
  download | inline diff:
diff --git a/libraries.txt b/libraries.txt
index b70eb4ac..dad7e61b 100644
--- a/libraries.txt
+++ b/libraries.txt
@@ -4,7 +4,7 @@ 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/
+Bootstrap           4.1.3          MIT          http://getbootstrap.com/
 jQuery              3.3.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 ***
@@ -21,7 +21,6 @@ font-Awesome        4.5            SIL OFL      http://fortawesome.github.io/Fon
 font-mfizz          2.4.1          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
@@ -41,3 +40,4 @@ Mousetrap           1.6.1          AL           https://github.com/ccampbell/mou
 Axios               0.18.0         MIT          https://github.com/axios/axios
 leaflet             1.3.3          BSD          https://leafletjs.com/
 wkx                 0.4.5          MIT          https://github.com/cschwarz/wkx
+Bootstrap4-toggle   3.4.0          MIT          https://gitbrent.github.io/bootstrap4-toggle
diff --git a/web/package.json b/web/package.json
index a554bbb5..4b6a5c76 100644
--- a/web/package.json
+++ b/web/package.json
@@ -59,7 +59,6 @@
     "bignumber.js": "^6.0.0",
     "bootstrap": "^4.1.3",
     "bootstrap-datepicker": "^1.7.0",
-    "bootstrap-switch": "3.3.4",
     "bowser": "1.6.1",
     "browserify": "~14.1.0",
     "codemirror": "^5.29.0",
@@ -98,7 +97,8 @@
     "underscore.string": "^3.3.4",
     "watchify": "~3.9.0",
     "webcabin-docker": "git+https://github.com/EnterpriseDB/wcDocker/#25f6fda624c5469340da0c111a18545a4455973a",
-    "wkx": "^0.4.5"
+    "wkx": "^0.4.5",
+    "bootstrap4-toggle": "3.4.0"
   },
   "scripts": {
     "linter": "yarn eslint --no-eslintrc -c .eslintrc.js --ext .js --ext .jsx .",
diff --git a/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js b/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js
index 17ee0c44..edbcfbf4 100644
--- a/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js
+++ b/web/pgadmin/browser/server_groups/servers/roles/static/js/role.js
@@ -72,7 +72,7 @@ define('pgadmin.node.role', [
 
   var switchOptions = {
     'onText': gettext('Yes'), 'offText': gettext('No'),
-    'size': 'mini',
+    'size': 'small',
   };
 
   var RoleCustomSwitchControl = Backform.SwitchControl.extend({
diff --git a/web/pgadmin/browser/server_groups/servers/static/js/server.js b/web/pgadmin/browser/server_groups/servers/static/js/server.js
index 540bebec..924dadc0 100644
--- a/web/pgadmin/browser/server_groups/servers/static/js/server.js
+++ b/web/pgadmin/browser/server_groups/servers/static/js/server.js
@@ -936,7 +936,7 @@ define('pgadmin.node.server', [
           id: 'tunnel_authentication', label: gettext('Authentication'), type: 'switch',
           mode: ['properties', 'edit', 'create'], group: gettext('SSH Tunnel'),
           'options': {'onText':  gettext('Identity file'),
-            'offText':  gettext('Password'), 'size': 'small'},
+            'offText':  gettext('Password'), 'size': '', width: '110'},
           deps: ['use_ssh_tunnel'],
           disabled: function(model) {
             return !model.get('use_ssh_tunnel');
diff --git a/web/pgadmin/misc/statistics/static/js/statistics.js b/web/pgadmin/misc/statistics/static/js/statistics.js
index cfd573e1..95a4cd80 100644
--- a/web/pgadmin/misc/statistics/static/js/statistics.js
+++ b/web/pgadmin/misc/statistics/static/js/statistics.js
@@ -104,7 +104,9 @@ define('misc.statistics', [
       offText: gettext('False'),
       onColor: 'success',
       offColor: 'primary',
-      size: 'mini',
+      size: 'small',
+      width: null,
+      height: null,
     }
   );
 
diff --git a/web/pgadmin/preferences/static/js/preferences.js b/web/pgadmin/preferences/static/js/preferences.js
index 33b7e747..2324e5af 100644
--- a/web/pgadmin/preferences/static/js/preferences.js
+++ b/web/pgadmin/preferences/static/js/preferences.js
@@ -214,8 +214,8 @@ define('pgadmin.preferences', [
                 onText: gettext('True'),
                 offText: gettext('False'),
                 onColor: 'success',
-                offColor: 'default',
-                size: 'mini',
+                offColor: 'primary',
+                size: 'small',
               };
               return 'switch';
             case 'node':
@@ -223,8 +223,8 @@ define('pgadmin.preferences', [
                 onText: gettext('Show'),
                 offText: gettext('Hide'),
                 onColor: 'success',
-                offColor: 'default',
-                size: 'mini',
+                offColor: 'primary',
+                size: 'small',
               };
               return 'switch';
             case 'integer':
diff --git a/web/pgadmin/static/css/style.css b/web/pgadmin/static/css/style.css
index aeb0354a..e7293d47 100644
--- a/web/pgadmin/static/css/style.css
+++ b/web/pgadmin/static/css/style.css
@@ -3,7 +3,7 @@
 @import '~font-awesome/css/font-awesome.css';
 @import '~bootstrap-datepicker/dist/css/bootstrap-datepicker3.css';
 @import '~tempusdominus-bootstrap-4/build/css/tempusdominus-bootstrap-4.css';
-@import '~bootstrap-switch/dist/css/bootstrap3/bootstrap-switch.css';
+@import '~bootstrap4-toggle/css/bootstrap4-toggle.css';
 @import '~backgrid-select-all/backgrid-select-all.css';
 @import '~backgrid-filter/backgrid-filter.css';
 @import '~backgrid-sizeable-columns/backgrid-sizeable-columns.css';
diff --git a/web/pgadmin/static/js/backform.pgadmin.js b/web/pgadmin/static/js/backform.pgadmin.js
index 246b30b7..ea3c4664 100644
--- a/web/pgadmin/static/js/backform.pgadmin.js
+++ b/web/pgadmin/static/js/backform.pgadmin.js
@@ -10,7 +10,7 @@
 define([
   'sources/gettext', 'underscore', 'underscore.string', 'jquery',
   'backbone', 'backform', 'backgrid', 'codemirror', 'sources/sqleditor_utils',
-  'spectrum', 'pgadmin.backgrid', 'select2',
+  'spectrum', 'pgadmin.backgrid', 'select2', 'bootstrap.toggle',
 ], function(gettext, _, S, $, Backbone, Backform, Backgrid, CodeMirror, SqlEditorUtils) {
 
   var pgAdmin = (window.pgAdmin = window.pgAdmin || {}),
@@ -430,6 +430,8 @@ define([
         onColor: 'success',
         offColor: 'primary',
         size: 'small',
+        width: null,
+        height: null,
       },
       controlLabelClassName: Backform.controlLabelClassName,
       controlsClassName: Backform.controlsClassName,
@@ -440,9 +442,11 @@ define([
       '<label class="<%=controlLabelClassName%>"><%=label%></label>',
       '<div class="<%=controlsClassName%>">',
       '  <div class="checkbox">',
-      '    <label>',
-      '      <input type="checkbox" class="<%=extraClasses.join(\' \')%>" name="<%=name%>" <%=value ? "checked=\'checked\'" : ""%> <%=disabled ? "disabled" : ""%> <%=required ? "required" : ""%> />',
-      '    </label>',
+      '      <input type="checkbox" id="bootstrapToggle" data-style="quick" data-toggle="toggle"',
+      '      data-size="<%=options.size%>" data-height="<%=options.height%>"  ',
+      '      data-on="<%=options.onText%>" data-off="<%=options.offText%>" ',
+      '      data-onstyle="<%=options.onColor%>" data-offstyle="<%=options.offColor%>" data-width="<%=options.width%>" ',
+      '      name="<%=name%>" <%=value ? "checked=\'checked\'" : ""%> <%=disabled ? "disabled" : ""%> <%=required ? "required" : ""%> />',
       '  </div>',
       '  <% if (helpMessage && helpMessage.length) { %>',
       '    <span class="<%=Backform.helpMessageClassName%>"><%=helpMessage%></span>',
@@ -456,7 +460,7 @@ define([
       );
     },
     events: {
-      'switchChange.bootstrapSwitch': 'onChange',
+      'change input#bootstrapToggle': 'onChange',
     },
     render: function() {
       var field = _.defaults(this.field.toJSON(), this.defaults),
@@ -465,23 +469,49 @@ define([
         name = attrArr.shift(),
         path = attrArr.join('.'),
         rawValue = this.keyPathAccessor(attributes[name], path),
-        evalF = function(f, d, m) {
-          return (_.isFunction(f) ? !!f.apply(d, [m]) : !!f);
+        data = _.extend(field, {
+          rawValue: rawValue,
+          value: this.formatter.fromRaw(rawValue, this.model),
+          attributes: attributes,
+          formatter: this.formatter,
+        }),
+        evalF = function(f, m) {
+          return (_.isFunction(f) ? !!f(m) : !!f);
         },
-        options = _.defaults({
-          disabled: evalF(field.disabled, field, this.model),
-        }, this.field.get('options'), this.defaults.options,
-          $.fn.bootstrapSwitch.defaults);
+        evalFLocal = function(f, d, m) {
+          return (_.isFunction(f) ? !!f.apply(d, [m]) : !!f);
+        };
 
-      Backform.InputControl.prototype.render.apply(this, arguments);
-      this.$input = this.$el.find('input[type=checkbox]').first();
+      // Evaluate the disabled, visible, and required option
+      _.extend(data, {
+        disabled: evalFLocal(field.disabled, field, this.model),
+        visible:  evalF(data.visible, this.model),
+        required: evalF(data.required, this.model),
+      });
 
-      //Check & set additional properties
-      this.$input.bootstrapSwitch(
-        _.extend(options, {
-          'state': rawValue,
-        })
-      );
+      // Clean up first
+      this.$el.removeClass(Backform.hiddenClassName);
+
+      if (!data.visible)
+        this.$el.addClass(Backform.hiddenClassName);
+
+      if(Backform.requiredInputClassName) {
+        this.$el.removeClass(Backform.requiredInputClassName);
+      }
+
+      if (data.required) {
+        this.$el.addClass(Backform.requiredInputClassName);
+      }
+
+      data.options = _.defaults({
+        disabled: evalFLocal(field.disabled, field, this.model),
+      }, this.field.get('options'), this.defaults.options,
+        $.fn.bootstrapToggle.defaults);
+
+      this.$el.html(this.template(data)).addClass(field.name);
+      this.$input = this.$el.find('input[type=checkbox]').first();
+      this.$input.bootstrapToggle();
+      this.updateInvalid();
 
       return this;
     },
diff --git a/web/pgadmin/static/js/backgrid.pgadmin.js b/web/pgadmin/static/js/backgrid.pgadmin.js
index 2832b5ac..cdb8b0f9 100644
--- a/web/pgadmin/static/js/backgrid.pgadmin.js
+++ b/web/pgadmin/static/js/backgrid.pgadmin.js
@@ -9,7 +9,8 @@
 
 define([
   'sources/gettext', 'underscore', 'jquery', 'backbone', 'backform', 'backgrid', 'alertify',
-  'moment', 'bignumber', 'bootstrap.datetimepicker', 'bootstrap.switch', 'backgrid.filter',
+  'moment', 'bignumber', 'bootstrap.datetimepicker', 'backgrid.filter',
+  'bootstrap.toggle',
 ], function(
   gettext, _, $, Backbone, Backform, Backgrid, Alertify, moment, BigNumber
 ) {
@@ -451,18 +452,20 @@ define([
   /**
     SwitchCell renders a Bootstrap Switch in backgrid cell
   */
-  if (window.jQuery && window.jQuery.fn.bootstrapSwitch)
-    $.fn.bootstrapSwitch = window.jQuery.fn.bootstrapSwitch;
+  if (window.jQuery && window.jQuery.fn.bootstrapToggle)
+    $.fn.bootstrapToggle = window.jQuery.fn.bootstrapToggle;
 
   Backgrid.Extension.SwitchCell = Backgrid.BooleanCell.extend({
     defaults: {
       options: _.defaults({
-        onText: gettext('True'),
-        offText: gettext('False'),
+        onText: gettext('Yes'),
+        offText: gettext('No'),
         onColor: 'success',
-        offColor: 'default',
-        size: 'mini',
-      }, $.fn.bootstrapSwitch.defaults),
+        offColor: 'primary',
+        size: 'small',
+        width: null,
+        height: null,
+      }, $.fn.bootstrapToggle.defaults),
     },
 
     className: 'switch-cell',
@@ -482,7 +485,7 @@ define([
     },
 
     events: {
-      'switchChange.bootstrapSwitch': 'onChange',
+      'change input#bootstrapToggle': 'onChange',
     },
 
     onChange: function() {
@@ -503,7 +506,8 @@ define([
         rawValue = this.formatter.fromRaw(
           model.get(column.get('name')), model
         ),
-        editable = Backgrid.callByNeed(col.editable, column, model);
+        editable = Backgrid.callByNeed(col.editable, column, model),
+        options =  _.defaults({}, col.options, this.defaults.options);
 
       this.undelegateEvents();
 
@@ -513,17 +517,15 @@ define([
         $('<input>', {
           tabIndex: -1,
           type: 'checkbox',
-        }).prop('checked', rawValue).prop('disabled', !editable));
+          id: 'bootstrapToggle',
+        }).prop('checked', rawValue).prop('disabled', !editable).attr('data-toggle', 'toggle')
+        .attr('data-size', options.size).attr('data-on', options.onText).attr('data-off', options.offText)
+        .attr('data-onstyle', options.onColor).attr('data-offstyle', options.offColor));
+
       this.$input = this.$el.find('input[type=checkbox]').first();
 
       // Override BooleanCell checkbox with Bootstrapswitch
-      this.$input.bootstrapSwitch(
-        _.defaults({
-          'state': rawValue,
-          'disabled': !editable,
-        }, col.options,
-          this.defaults.options
-        ));
+      this.$input.bootstrapToggle();
 
       // Listen for Tab key
       this.$el.on('keydown', function(e) {
diff --git a/web/pgadmin/static/scss/_bootstrap.overrides.scss b/web/pgadmin/static/scss/_bootstrap.overrides.scss
index febe7ad7..224c597f 100644
--- a/web/pgadmin/static/scss/_bootstrap.overrides.scss
+++ b/web/pgadmin/static/scss/_bootstrap.overrides.scss
@@ -228,30 +228,13 @@ legend {
 	font-size: 13px;
 }
 
-
-/* Remove default left padding from checkbox for bootstrap-switch */
-.checkbox {
-	margin-bottom: 0px !important;
-	margin-top: 0px !important;
-}
-.checkbox label {
-	padding-left: 0px !important;
-	margin-bottom: 0px !important;
-}
-.bootstrap-switch > .bootstrap-switch-container > input {
-	border: 0px solid $color-fg;
-	height: 0px;
-	margin: 0px;
-	padding: 0px;
-	width: 0px;
-}
 .switch-cell {
 	height: 0px;
 	width: 0px;
 }
 
 /* Center align the switch in backgrid */
-td.switch-cell > div.bootstrap-switch {
+td.switch-cell > div.toggle {
 	display: block;
 	margin: auto;
 }
@@ -308,13 +291,6 @@ td.switch-cell > div.bootstrap-switch {
   line-height: 0.7rem;
 }
 
-
-.bootstrap-switch.bootstrap-switch-disabled, .bootstrap-switch.bootstrap-switch-readonly {
-  background-color: $input-disabled-bg !important;
-  opacity: 1;
-}
-
-
 .btn-toolbar {
   min-width: 100%;
 }
@@ -329,10 +305,6 @@ td.switch-cell > div.bootstrap-switch {
 	}
 }
 
-/* bootstrap-switch */
-.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-primary, .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-primary {
-	background: $color-primary;
-}
-.bootstrap-switch .bootstrap-switch-handle-on.bootstrap-switch-success, .bootstrap-switch .bootstrap-switch-handle-off.bootstrap-switch-success {
-	background: $color-success;
+.btn.disabled, .btn:disabled, .btn[disabled] {
+  opacity: $btn-disabled-opacity;
 }
diff --git a/web/pgadmin/tools/backup/static/js/backup.js b/web/pgadmin/tools/backup/static/js/backup.js
index 70e8a68b..535a765c 100644
--- a/web/pgadmin/tools/backup/static/js/backup.js
+++ b/web/pgadmin/tools/backup/static/js/backup.js
@@ -44,21 +44,6 @@ define([
   */
 
   Backform.CustomSwitchControl = Backform.SwitchControl.extend({
-    template: _.template([
-      '<label class="<%=controlLabelClassName%> custom_switch_label_class"><%=label%></label>',
-      '<div class="<%=controlsClassName%> custom_switch_control_class">',
-      '  <div class="checkbox">',
-      '    <label>',
-      '      <input type="checkbox" class="<%=extraClasses.join(\' \')%>"',
-      '        name="<%=name%>" <%=value ? "checked=\'checked\'" : ""%>',
-      '        <%=disabled ? "disabled" : ""%> <%=required ? "required" : ""%> />',
-      '    </label>',
-      '  </div>',
-      '</div>',
-      '<% if (helpMessage && helpMessage.length) { %>',
-      '  <span class="<%=Backform.helpMessageClassName%>"><%=helpMessage%></span>',
-      '<% } %>',
-    ].join('\n')),
     className: 'pgadmin-control-group form-group pg-el-md-6 pg-el-12 row',
   });
 
diff --git a/web/pgadmin/tools/maintenance/static/js/maintenance.js b/web/pgadmin/tools/maintenance/static/js/maintenance.js
index f8d88908..591bf880 100644
--- a/web/pgadmin/tools/maintenance/static/js/maintenance.js
+++ b/web/pgadmin/tools/maintenance/static/js/maintenance.js
@@ -30,19 +30,6 @@ define([
     return pgAdmin.Tools.maintenance;
 
   Backform.CustomSwitchControl = Backform.SwitchControl.extend({
-    template: _.template([
-      '<label class="<%=Backform.controlLabelClassName%> custom_switch_label_class"><%=label%></label>',
-      '<div class="<%=Backform.controlsClassName%> custom_switch_control_class">',
-      '  <div class="checkbox">',
-      '    <label>',
-      '      <input type="checkbox" class="<%=extraClasses.join(\' \')%>" name="<%=name%>" <%=value ? "checked=\'checked\'" : ""%> <%=disabled ? "disabled" : ""%> <%=required ? "required" : ""%> />',
-      '    </label>',
-      '  </div>',
-      '</div>',
-      '<% if (helpMessage && helpMessage.length) { %>',
-      '  <span class="<%=Backform.helpMessageClassName%>"><%=helpMessage%></span>',
-      '<% } %>',
-    ].join('\n')),
     className: 'pgadmin-control-group form-group pg-el-md-6 pg-el-12 row',
   });
 
diff --git a/web/pgadmin/tools/restore/static/js/restore.js b/web/pgadmin/tools/restore/static/js/restore.js
index 1f249abf..6c79476d 100644
--- a/web/pgadmin/tools/restore/static/js/restore.js
+++ b/web/pgadmin/tools/restore/static/js/restore.js
@@ -25,19 +25,6 @@ commonUtils, menuUtils, supportedNodes, restoreDialog
   }
 
   Backform.CustomSwitchControl = Backform.SwitchControl.extend({
-    template: _.template([
-      '<label class="<%=Backform.controlLabelClassName%> custom_switch_label_class"><%=label%></label>',
-      '<div class="<%=Backform.controlsClassName%> custom_switch_control_class">',
-      '  <div class="checkbox">',
-      '    <label>',
-      '      <input type="checkbox" class="<%=extraClasses.join(\' \')%>" name="<%=name%>" <%=value ? "checked=\'checked\'" : ""%> <%=disabled ? "disabled" : ""%> <%=required ? "required" : ""%> />',
-      '    </label>',
-      '  </div>',
-      '</div>',
-      '<% if (helpMessage && helpMessage.length) { %>',
-      '  <span class="<%=Backform.helpMessageClassName%>"><%=helpMessage%></span>',
-      '<% } %>',
-    ].join('\n')),
     className: 'pgadmin-control-group form-group pg-el-md-6 row',
   });
 
diff --git a/web/webpack.shim.js b/web/webpack.shim.js
index db45166f..be244949 100644
--- a/web/webpack.shim.js
+++ b/web/webpack.shim.js
@@ -37,9 +37,9 @@ var webpackShimConfig = {
       'deps': ['moment'],
       'exports': 'jQuery.fn.datetimepicker',
     },
-    'bootstrap.switch': {
+    'bootstrap.toggle': {
       deps: ['jquery', 'bootstrap'],
-      'exports': '$.fn.bootstrapSwitch',
+      'exports': '$.fn.bootstrapToggle',
     },
     'backbone': {
       exports: 'Backbone', // Once loaded, use the global 'Backbone' as the module value.
@@ -53,10 +53,10 @@ var webpackShimConfig = {
       'exports': 'Backgrid',
     },
     'pgadmin.backform': {
-      'deps': ['backform', 'pgadmin.backgrid', 'select2'],
+      'deps': ['backform', 'pgadmin.backgrid', 'select2', 'bootstrap.toggle'],
     },
     'pgadmin.backgrid': {
-      'deps': ['backgrid', 'bootstrap.datetimepicker', 'bootstrap.switch'],
+      'deps': ['backgrid', 'bootstrap.datetimepicker', 'bootstrap.toggle'],
     },
 
     'backgrid.select.all': {
@@ -172,7 +172,7 @@ var webpackShimConfig = {
     'backform': path.join(__dirname, './pgadmin/static/vendor/backform/backform'),
     'backgrid': path.join(__dirname, './node_modules/backgrid/lib/backgrid'),
     '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'),
+    'bootstrap.toggle': path.join(__dirname, './node_modules/bootstrap4-toggle/js/bootstrap4-toggle'),
     'select2': path.join(__dirname, './node_modules/select2/dist/js/select2.full'),
     'backgrid.filter': path.join(__dirname, './node_modules/backgrid-filter/backgrid-filter'),
     'backgrid.sizeable.columns': path.join(__dirname, './node_modules/backgrid-sizeable-columns/backgrid-sizeable-columns'),
diff --git a/web/webpack.test.config.js b/web/webpack.test.config.js
index 6cce766c..b65e924a 100644
--- a/web/webpack.test.config.js
+++ b/web/webpack.test.config.js
@@ -77,7 +77,7 @@ module.exports = {
       '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/tempusdominus-bootstrap-4/build/js/tempusdominus-bootstrap-4.min'),
-      'bootstrap.switch': path.join(__dirname, './node_modules/bootstrap-switch/dist/js/bootstrap-switch'),
+      'bootstrap.toggle': path.join(__dirname, './node_modules/bootstrap4-toggle/js/bootstrap4-toggle'),
       'backbone': path.join(__dirname, './node_modules/backbone/backbone'),
       'backform': path.join(__dirname, './node_modules/backform/src/backform'),
       'backgrid': path.join(__dirname, './node_modules/backgrid/lib/backgrid'),


view thread (19+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected]
  Subject: Re: [pgAdmin4][Patch]: RM - 3051 - ables > Properties > Columns tab is slow on tables with a lot of fields
  In-Reply-To: <CAFOhELfosrL2Y_2_gwHyzef5JeSSzNSyicSNj6uv1B1286yKzg@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox