diff --git a/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js b/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js index a2c1337..7024495 100644 --- a/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js +++ b/web/pgadmin/static/js/backgrid/backgrid.pgadmin.js @@ -904,6 +904,29 @@ } }); + /* + * JSONBCell Formatter. + */ + var JSONBCellFormatter = Backgrid.Extension.JSONBCellFormatter = + function () {}; + _.extend(JSONBCellFormatter.prototype, { + fromRaw: function (rawData, model) { + return JSON.stringify(rawData); + }, + toRaw: function (formattedData, model) { + return formattedData; + } + }); + + /* + * JSONBCell for backgrid. + */ + var JSONBCell = Backgrid.Extension.JSONBCell = + Backgrid.StringCell.extend({ + className: "select2-cell", + formatter: JSONBCellFormatter + }); + return Backgrid; })); diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py index c713fb5..016b72d 100644 --- a/web/pgadmin/tools/sqleditor/__init__.py +++ b/web/pgadmin/tools/sqleditor/__init__.py @@ -25,7 +25,7 @@ from pgadmin.utils.ajax import make_json_response, bad_request, \ success_return, internal_server_error from pgadmin.utils.driver import get_driver from pgadmin.utils.sqlautocomplete.autocomplete import SQLAutoComplete - +from flask import current_app as app from config import PG_DEFAULT_DRIVER # import unquote from urlib for python2.x and python3.x @@ -949,9 +949,10 @@ def auto_complete(trans_id): @login_required def script(): """render the required javascript""" - return Response(response=render_template("sqleditor/js/sqleditor.js", _=gettext), - status=200, - mimetype="application/javascript") + return Response(response=render_template( + "sqleditor/js/sqleditor.js", _=gettext, is_desktop_mode=app.PGADMIN_RUNTIME), + status=200, mimetype="application/javascript" + ) def is_begin_required(query): diff --git a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js index c2282a1..efd4571 100644 --- a/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js +++ b/web/pgadmin/tools/sqleditor/templates/sqleditor/js/sqleditor.js @@ -1554,6 +1554,13 @@ define( case "timestamp with time zone": col_cell = 'datetime'; break; +{% if is_desktop_mode %} +{## We need jsonb cell only if we are in desktop mode +Browsers can handle jsonb data type but not runtime ##} + case "jsonb": + col_cell = Backgrid.Extension.JSONBCell; + break; +{% endif %} default: col_cell = 'string'; }