diff --git a/web/pgadmin/static/css/overrides.css b/web/pgadmin/static/css/overrides.css index 150567b..ca87e7a 100755 --- a/web/pgadmin/static/css/overrides.css +++ b/web/pgadmin/static/css/overrides.css @@ -906,4 +906,9 @@ ul.nav.nav-tabs { .btn-primary{ margin: 2px 13px !important; +} + +.select2-cell .select2-container > .backgrid th, .backgrid td +{ + padding: 0px; } \ No newline at end of file diff --git a/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js b/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js index 4b233d2..3260dc7 100644 --- a/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js +++ b/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js @@ -335,22 +335,134 @@ } }); + /** + Select2CellEditor the cell editor renders a Select2 input + box as its editor. + */ + var Select2CellEditor = Backgrid.Select2CellEditor = Backgrid.SelectCellEditor.extend({ + /** @property */ + events: { + "change": "onSave" + }, + + /** @property */ + setSelect2Options: function (options) { + this.select2Options = _.extend(options || {}); + }, + + /** @property */ + // This option will prevent Select2 list to pop up + // when user press tab on select2 + select2Options: { + openOnEnter: false + }, + + /** @property {function(Object, ?Object=): string} template */ + template: _.template('', + null, {variable: null}), + + initialize: function () { + Backgrid.SelectCellEditor.prototype.initialize.apply(this, arguments); + this.close = _.bind(this.close, this); + }, + /** + Renders a `select2` select box instead of the default `