@@ -133,8 +133,9 @@ $(document).ready -> |
||
| 133 | 133 |
|
| 134 | 134 |
$(".description").html(json.description_html) if json.description_html?
|
| 135 | 135 |
|
| 136 |
- window.jsonEditor.json = json.options |
|
| 137 |
- window.jsonEditor.rebuild() |
|
| 136 |
+ if $("#agent_options").hasClass("showing-default") || $("#agent_options").val().match(/\A\s*(\{\s*\}|)\s*\Z/g)
|
|
| 137 |
+ window.jsonEditor.json = json.options |
|
| 138 |
+ window.jsonEditor.rebuild() |
|
| 138 | 139 |
|
| 139 | 140 |
$("#agent-spinner").stop(true, true).fadeOut();
|
| 140 | 141 |
|
@@ -59,8 +59,8 @@ |
||
| 59 | 59 |
<div class="control-group"> |
| 60 | 60 |
<%= f.label :options, :class => 'control-label' %> |
| 61 | 61 |
<div class="controls"> |
| 62 |
- <textarea rows="10" id="agent_options" name="agent[options]" class="span8 live-json-editor"> |
|
| 63 |
- <%= ((@agent.new_record? && @agent.options == {}) ? @agent.default_options : @agent.options).to_json %>
|
|
| 62 |
+ <textarea rows="10" id="agent_options" name="agent[options]" class="span8 live-json-editor <%= (@agent.new_record? && @agent.options == {}) ? "showing-default" : "" %>">
|
|
| 63 |
+ <%= Utils.jsonify((@agent.new_record? && @agent.options == {}) ? @agent.default_options : @agent.options) %>
|
|
| 64 | 64 |
</textarea> |
| 65 | 65 |
</div> |
| 66 | 66 |
</div> |
@@ -29,7 +29,7 @@ module SerializeAndSymbolize |
||
| 29 | 29 |
|
| 30 | 30 |
def #{column_name}=(data)
|
| 31 | 31 |
if data.is_a?(String) |
| 32 |
- self[:#{column_name}] = JSON.parse(data).recursively_symbolize_keys rescue data
|
|
| 32 |
+ self[:#{column_name}] = JSON.parse(data).recursively_symbolize_keys rescue {}
|
|
| 33 | 33 |
elsif data.is_a?(Hash) |
| 34 | 34 |
self[:#{column_name}] = data.recursively_symbolize_keys
|
| 35 | 35 |
else |
@@ -501,10 +501,10 @@ JSONEditor.prototype.build = function(json, node, parent, key, root) {
|
||
| 501 | 501 |
|
| 502 | 502 |
for(var i in json){
|
| 503 | 503 |
var innerbq = $(document.createElement("BLOCKQUOTE"));
|
| 504 |
- var newElem = this.editable(i.toString(), i.toString(), json, root, 'key').wrap('<span class="key"></b>').parent();
|
|
| 504 |
+ var newElem = this.editable(i.toString(), i.toString(), json, root, 'key').wrap('<span class="key"></span>').parent();
|
|
| 505 | 505 |
innerbq.append(newElem); |
| 506 | 506 |
if (newElem) if (newElem.text() == "??") elem = newElem; |
| 507 |
- if (typeof json[i] != 'string') {
|
|
| 507 |
+ if (typeof json[i] != 'string' && typeof json[i] != 'number') {
|
|
| 508 | 508 |
innerbq.prepend(this.braceUI(i, json)); |
| 509 | 509 |
innerbq.prepend(this.bracketUI(i, json)); |
| 510 | 510 |
if (this._showWipe) innerbq.prepend(this.wipeUI(i, json)); |