Skip to content

Commit

Permalink
BUGFIX: makes json[] viewable and editable
Browse files Browse the repository at this point in the history
  • Loading branch information
jzwood authored and Paxa committed Jun 3, 2021
1 parent 3b7a7e9 commit 9f6e224
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 6 deletions.
4 changes: 2 additions & 2 deletions app/view_helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ var helpers = global.ViewHelpers = {

if (dataType == 'ARRAY' && Array.isArray(value)) {
formated = this.formatArray(value, format);
} else if (dataType === 'jsonb[]' && Array.isArray(value)) {
} else if (['json[]', 'jsonb[]'].includes(dataType) && Array.isArray(value)) {
formated = this.formatJsonArray(value);
}

Expand Down Expand Up @@ -291,7 +291,7 @@ var helpers = global.ViewHelpers = {
},

formatJsonArray: function (value) {
return '[' + value.map(this.formatJson.bind(this)).join(',') + ']';
return '[' + value.map(this.formatJson.bind(this)).join(', ') + ']';
},

getIndexType: function (indexSql) {
Expand Down
6 changes: 3 additions & 3 deletions views/cache.js
Original file line number Diff line number Diff line change
Expand Up @@ -671,7 +671,7 @@ pug_html = pug_html + "Cancel\u003C\u002Fbutton\u003E\n \u003C\u002Fp\u003E\n\u
typeof selected !== 'undefined' ? selected : undefined));
;} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};
exports["dialogs/column_form"].content = "- data = data || {}\n\nform\n p\n label Name\n input(name=\"name\", value = data.column_name type=\"text\")\n\n p\n label Type\n select(name=\"type\")\n option\n each types, group in groupedTypes\n optgroup(label = group)\n each type in types\n if type\n - selected = data.udt_name && data.udt_name == type.udt_name\n option(value = type.udt_name || type.name, title = type.description, selected = selected)= type.name\n p\n a(href=\"https://www.postgresql.org/docs/current/datatype.html\", class=\"external docs-link\") Postgres Data Types\n\n p\n label Default value\n input(name=\"default_value\", value = data.column_default type=\"text\")\n\n p\n label Max length\n input(name=\"max_length\", value = data.character_maximum_length type=\"text\")\n\n p\n label\n input(type=\"hidden\", name=\"allow_null\" value=\"0\")\n input(type=\"checkbox\" name=\"allow_null\" value=\"1\", checked = (data.is_nullable == 'YES'))\n = \"Allow null\"\n\n input.pseudo-hidden(type=\"submit\")\n p.buttons\n if action == \"edit\"\n button.ok Update Column\n else\n button.ok Add Column\n button.cancel Cancel\n";
exports["dialogs/edit_value"] = function template(pug, locals) {var pug_html = "", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {"views\u002Fdialogs\u002Fedit_value.jade":"form\n - valueIsNull = fieldType.is_nullable && value === null\n\n p\n - numericTypes = ['bigint', 'integer', 'real', 'smallint', 'double precision', 'numeric', 'decimal']\n if fieldType.data_type == \"integer\" || numericTypes.includes(fieldType.udt_name) || numericTypes.includes(fieldType.data_type)\n input.number-value(name=\"value\" type=\"number\" value=value disabled=valueIsNull)\n else if fieldType.udt_name == \"timestamp\" || fieldType.udt_name == \"timestamptz\" || fieldType.udt_name == \"date\" || fieldType.udt_name == \"timetz\"\n input.date-value(name=\"value\" type=\"text\" value=editDateFormat(value, fieldType.udt_name) disabled=valueIsNull)\n else if fieldType.udt_name == \"bool\"\n select(name=\"value\" disabled=valueIsNull)\n option(value=\"true\" selected=value) true\n option(value=\"false\" selected=(value === false) ) false\n else\n if fieldType.udt_name == \"json\" || fieldType.udt_name == \"jsonb\"\n - value = JSON.stringify(value, null, 2)\n else if (fieldType.data_type == \"jsonb[]\" && Array.isArray(value))\n - value = \"{\" + value.map(val =\u003E \"\\\"\" + JSON.stringify(val).replace(\u002F\"\u002Fg, '\\\\\"') + \"\\\"\").toString() + \"}\"\n textarea(name=\"value\" placeholder=fieldType.column_default disabled=valueIsNull)= value\n\n if fieldType.is_nullable\n label\n = \"Null\"\n input.value-is-null(type=\"checkbox\" name=\"value_is_null\" value=\"true\" checked=valueIsNull )\n\n p.buttons\n button.ok Update\n button.cancel Cancel\n"};
exports["dialogs/edit_value"] = function template(pug, locals) {var pug_html = "", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {"views\u002Fdialogs\u002Fedit_value.jade":"form\n - valueIsNull = fieldType.is_nullable && value === null\n\n p\n - numericTypes = ['bigint', 'integer', 'real', 'smallint', 'double precision', 'numeric', 'decimal']\n if fieldType.data_type == \"integer\" || numericTypes.includes(fieldType.udt_name) || numericTypes.includes(fieldType.data_type)\n input.number-value(name=\"value\" type=\"number\" value=value disabled=valueIsNull)\n else if fieldType.udt_name == \"timestamp\" || fieldType.udt_name == \"timestamptz\" || fieldType.udt_name == \"date\" || fieldType.udt_name == \"timetz\"\n input.date-value(name=\"value\" type=\"text\" value=editDateFormat(value, fieldType.udt_name) disabled=valueIsNull)\n else if fieldType.udt_name == \"bool\"\n select(name=\"value\" disabled=valueIsNull)\n option(value=\"true\" selected=value) true\n option(value=\"false\" selected=(value === false) ) false\n else\n if fieldType.udt_name == \"json\" || fieldType.udt_name == \"jsonb\"\n - value = JSON.stringify(value, null, 2)\n else if [\"json[]\", \"jsonb[]\"].includes(fieldType.data_type) && Array.isArray(value)\n - value = \"{\" + value.map(val =\u003E \"\\\"\" + JSON.stringify(val).replace(\u002F\"\u002Fg, '\\\\\"') + \"\\\"\").toString() + \"}\"\n textarea(name=\"value\" placeholder=fieldType.column_default disabled=valueIsNull)= value\n\n if fieldType.is_nullable\n label\n = \"Null\"\n input.value-is-null(type=\"checkbox\" name=\"value_is_null\" value=\"true\" checked=valueIsNull )\n\n p.buttons\n button.ok Update\n button.cancel Cancel\n"};
;
var locals_for_with = (locals || {});

Expand Down Expand Up @@ -715,7 +715,7 @@ if (fieldType.udt_name == "json" || fieldType.udt_name == "jsonb") {
value = JSON.stringify(value, null, 2)
}
else
if ((fieldType.data_type == "jsonb[]" && Array.isArray(value))) {
if (["json[]", "jsonb[]"].includes(fieldType.data_type) && Array.isArray(value)) {
;pug_debug_line = 18;pug_debug_filename = "views\u002Fdialogs\u002Fedit_value.jade";
value = "{" + value.map(val => "\"" + JSON.stringify(val).replace(/"/g, '\\"') + "\"").toString() + "}"
}
Expand Down Expand Up @@ -760,7 +760,7 @@ pug_html = pug_html + "Cancel\u003C\u002Fbutton\u003E\n \u003C\u002Fp\u003E\n\u
locals_for_with.valueIsNull :
typeof valueIsNull !== 'undefined' ? valueIsNull : undefined));
;} catch (err) {pug.rethrow(err, pug_debug_filename, pug_debug_line, pug_debug_sources[pug_debug_filename]);};return pug_html;};
exports["dialogs/edit_value"].content = "form\n - valueIsNull = fieldType.is_nullable && value === null\n\n p\n - numericTypes = ['bigint', 'integer', 'real', 'smallint', 'double precision', 'numeric', 'decimal']\n if fieldType.data_type == \"integer\" || numericTypes.includes(fieldType.udt_name) || numericTypes.includes(fieldType.data_type)\n input.number-value(name=\"value\" type=\"number\" value=value disabled=valueIsNull)\n else if fieldType.udt_name == \"timestamp\" || fieldType.udt_name == \"timestamptz\" || fieldType.udt_name == \"date\" || fieldType.udt_name == \"timetz\"\n input.date-value(name=\"value\" type=\"text\" value=editDateFormat(value, fieldType.udt_name) disabled=valueIsNull)\n else if fieldType.udt_name == \"bool\"\n select(name=\"value\" disabled=valueIsNull)\n option(value=\"true\" selected=value) true\n option(value=\"false\" selected=(value === false) ) false\n else\n if fieldType.udt_name == \"json\" || fieldType.udt_name == \"jsonb\"\n - value = JSON.stringify(value, null, 2)\n else if (fieldType.data_type == \"jsonb[]\" && Array.isArray(value))\n - value = \"{\" + value.map(val => \"\\\"\" + JSON.stringify(val).replace(/\"/g, '\\\\\"') + \"\\\"\").toString() + \"}\"\n textarea(name=\"value\" placeholder=fieldType.column_default disabled=valueIsNull)= value\n\n if fieldType.is_nullable\n label\n = \"Null\"\n input.value-is-null(type=\"checkbox\" name=\"value_is_null\" value=\"true\" checked=valueIsNull )\n\n p.buttons\n button.ok Update\n button.cancel Cancel\n";
exports["dialogs/edit_value"].content = "form\n - valueIsNull = fieldType.is_nullable && value === null\n\n p\n - numericTypes = ['bigint', 'integer', 'real', 'smallint', 'double precision', 'numeric', 'decimal']\n if fieldType.data_type == \"integer\" || numericTypes.includes(fieldType.udt_name) || numericTypes.includes(fieldType.data_type)\n input.number-value(name=\"value\" type=\"number\" value=value disabled=valueIsNull)\n else if fieldType.udt_name == \"timestamp\" || fieldType.udt_name == \"timestamptz\" || fieldType.udt_name == \"date\" || fieldType.udt_name == \"timetz\"\n input.date-value(name=\"value\" type=\"text\" value=editDateFormat(value, fieldType.udt_name) disabled=valueIsNull)\n else if fieldType.udt_name == \"bool\"\n select(name=\"value\" disabled=valueIsNull)\n option(value=\"true\" selected=value) true\n option(value=\"false\" selected=(value === false) ) false\n else\n if fieldType.udt_name == \"json\" || fieldType.udt_name == \"jsonb\"\n - value = JSON.stringify(value, null, 2)\n else if [\"json[]\", \"jsonb[]\"].includes(fieldType.data_type) && Array.isArray(value)\n - value = \"{\" + value.map(val => \"\\\"\" + JSON.stringify(val).replace(/\"/g, '\\\\\"') + \"\\\"\").toString() + \"}\"\n textarea(name=\"value\" placeholder=fieldType.column_default disabled=valueIsNull)= value\n\n if fieldType.is_nullable\n label\n = \"Null\"\n input.value-is-null(type=\"checkbox\" name=\"value_is_null\" value=\"true\" checked=valueIsNull )\n\n p.buttons\n button.ok Update\n button.cancel Cancel\n";
exports["dialogs/export_file"] = function template(pug, locals) {var pug_html = "", pug_mixins = {}, pug_interp;var pug_debug_filename, pug_debug_line;try {var pug_debug_sources = {"views\u002Fdialogs\u002Fexport_file.jade":"header\n = \"Exporting database '\"\n b= database\n = \"'\"\n\nform\n p.save-to-file\n = \"Save to file:\"\n input(type=\"text\" name=\"export_to_file\" readonly placeholder=\"click to select file...\")\n p\n label\n = \"Export structure\"\n input(type=\"checkbox\" name=\"export_structure\" checked)\n p\n label\n = \"Export data\"\n input(type=\"checkbox\" name=\"export_data\" checked)\n\n p\n label\n = \"Objects ownership\"\n input(type=\"checkbox\" name=\"objects_ownership\")\n\n code.result\n\n p.buttons\n button.ok Start\n button.cancel Cancel\n p.buttons.close-btn.is-hidden\n button.cancel Close"};
;
var locals_for_with = (locals || {});
Expand Down
2 changes: 1 addition & 1 deletion views/dialogs/edit_value.jade
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ form
else
if fieldType.udt_name == "json" || fieldType.udt_name == "jsonb"
- value = JSON.stringify(value, null, 2)
else if (fieldType.data_type == "jsonb[]" && Array.isArray(value))
else if ["json[]", "jsonb[]"].includes(fieldType.data_type) && Array.isArray(value)
- value = "{" + value.map(val => "\"" + JSON.stringify(val).replace(/"/g, '\\"') + "\"").toString() + "}"
textarea(name="value" placeholder=fieldType.column_default disabled=valueIsNull)= value

Expand Down

0 comments on commit 9f6e224

Please sign in to comment.