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 `