diff options
Diffstat (limited to 'share')
-rw-r--r-- | share/www/script/futon.browse.js | 12 | ||||
-rw-r--r-- | share/www/script/futon.format.js | 6 |
2 files changed, 16 insertions, 2 deletions
diff --git a/share/www/script/futon.browse.js b/share/www/script/futon.browse.js index 4b033b28..172c7b62 100644 --- a/share/www/script/futon.browse.js +++ b/share/www/script/futon.browse.js @@ -1029,7 +1029,10 @@ row.find("td").makeEditable({acceptOnBlur: false, allowEmpty: true, createInput: function(value) { - if ($("dl", this).length > 0 || $("code", this).text().length > 60) { + var elem = $(this); + if (elem.find("dl").length > 0 || + elem.find("code").is(".array, .object") || + elem.find("code.string").text().length > 60) { return $("<textarea rows='1' cols='40' spellcheck='false'></textarea>"); } return $("<input type='text' spellcheck='false'>"); @@ -1082,9 +1085,14 @@ } function _renderValue(value) { + function isNullOrEmpty(val) { + if (val == null) return true; + for (var i in val) return false; + return true; + } function render(val) { var type = typeof(val); - if (type == "object" && val !== null) { + if (type == "object" && !isNullOrEmpty(val)) { var list = $("<dl></dl>"); for (var i in val) { $("<dt></dt>").text(i).appendTo(list); diff --git a/share/www/script/futon.format.js b/share/www/script/futon.format.js index 674f5f8f..601a91d3 100644 --- a/share/www/script/futon.format.js +++ b/share/www/script/futon.format.js @@ -72,6 +72,9 @@ } if (index >= 0) buf.push(options.linesep, tab.substr(options.indent)); buf.push("]"); + if (options.html) { + return "<code class='array'>" + buf.join("") + "</code>"; + } } else { buf.push("{"); @@ -94,6 +97,9 @@ } if (index >= 0) buf.push(options.linesep, tab.substr(options.indent)); buf.push("}"); + if (options.html) { + return "<code class='object'>" + buf.join("") + "</code>"; + } } return buf.join(""); |