diff --git a/web/pgadmin/static/css/overrides.css b/web/pgadmin/static/css/overrides.css index 150567bb7..ca87e7a76 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 4b233d2b3..9965f1b63 100644 --- a/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js +++ b/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js @@ -312,7 +312,9 @@ name = attrArr.shift(), path = attrArr.join('.'), model = this.model, column = this.column, - rawValue = this.formatter.fromRaw(model.get(column.get("name")), model), + rawValue = this.formatter.fromRaw( + model.get(column.get("name")), model + ), editable = Backgrid.callByNeed(col.editable, column, model); this.$el.empty(); @@ -326,7 +328,8 @@ // Override BooleanCell checkbox with Bootstrapswitch this.$input.bootstrapSwitch( _.defaults( - {'state': rawValue, 'disabled': !editable}, col.options, this.defaults.options + {'state': rawValue, 'disabled': !editable}, col.options, + this.defaults.options )); this.delegateEvents(); @@ -335,22 +338,147 @@ } }); + /** + 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([ + ''].join(''), + 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 `