diff --git a/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js b/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js index a2c1337..a56de44 100644 --- a/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js +++ b/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js @@ -904,6 +904,33 @@ } }); + /* + * JSONBCell Formatter. + */ + var JSONBCellFormatter = Backgrid.Extension.JSONBCellFormatter = + function () {}; + _.extend(JSONBCellFormatter.prototype, { + fromRaw: function (rawData, model) { + if(_.isObject(rawData)) { + return JSON.stringify(rawData); + } else { + return rawData; + } + }, + toRaw: function (formattedData, model) { + return formattedData; + } + }); + + /* + * JSONBCell for backgrid. + */ + var JSONBCell = Backgrid.Extension.JSONBCell = + Backgrid.StringCell.extend({ + className: "jsonb-cell", + formatter: JSONBCellFormatter + }); + return Backgrid; })); diff --git a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js index 92579f1..cf6b37b 100644 --- a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js +++ b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js @@ -1555,6 +1555,9 @@ define( case "timestamp with time zone": col_cell = 'datetime'; break; + case "jsonb": + col_cell = Backgrid.Extension.JSONBCell; + break; default: col_cell = 'string'; }