diff options
-rw-r--r-- | web/client.js | 31 |
1 files changed, 17 insertions, 14 deletions
diff --git a/web/client.js b/web/client.js index 50840d3..668e4a9 100644 --- a/web/client.js +++ b/web/client.js @@ -135,9 +135,17 @@ $(function() { var table = $("<table>"); - function renderField(path, name, value, meta, editable) { + function renderField( + path, name, value, meta, label, editable + ) { + if (_.isString(name)) { + name = name.replace(/([\\\/])/g, "\\$1"); + if (!isNaN(Number(name))) name = "\\" + name; + } + path += "/" + name; + var row = $("<tr>"); - if (name != null) row.append($("<td>").text(name)); + if (label) row.append($("<td>").text(meta["ui-name"])); var td = $("<td>"); @@ -260,28 +268,23 @@ $(function() { if (data.meta.type == "model") _.each(data.meta.fields, function(field) { - var name = field.name; - if (_.isString(name)) { - name = name.replace(/([\\\/])/g, "\\$1"); - if (!isNaN(Number(name))) name = "\\" + name; - } - renderField( - path + "/" + name, - field["ui-name"], + path, + field.name, data.data[field.name], field, + true, true ); }); - else _.each(data.data, function(value) { - var i = 1; + else _.each(data.data, function(value, name) { renderField( - path + "/" + i++, - null, + path, + _.isArray(data.data) ? name + 1 : name, value, data.meta.members, + false, data.meta.type != "set" ); }); |