diff --git a/src/window.js b/src/window.js index f127a3ee77..2cdd12cc27 100644 --- a/src/window.js +++ b/src/window.js @@ -1372,7 +1372,7 @@ }.bind(this)); }, children_expand: function(node) { - if (jQuery.isEmptyObject(node.children)) { + if (jQuery.isEmptyObject(node.children) && node.relation) { this.model_populate( this._get_fields(node.relation), node.children, node.field + '/', node.name + '/'); @@ -1442,9 +1442,10 @@ if (field.name == (prefix + parents[i]) || field.field == (prefix + parents[i])) { this.children_expand(field); - fields = field.children; prefix += parents[i] + '/'; - this._traverse(fields, prefix, parents, ++i); + if (field.children) { + this._traverse(field.children, prefix, parents, ++i); + } break; } } @@ -1750,7 +1751,7 @@ }.bind(this)); }, children_expand: function(node) { - if (jQuery.isEmptyObject(node.children)) { + if (jQuery.isEmptyObject(node.children) && node.relation) { this.model_populate( this._get_fields(node.relation), node.children, node.path + '/', node.long_string + '/'); @@ -1895,9 +1896,10 @@ field = fields[names[item]]; if (field.path == (prefix + parents[i])) { this.children_expand(field); - fields = field.children; prefix += parents[i] + '/'; - this._traverse(fields, prefix, parents, ++i); + if (field.children) { + this._traverse(field.children, prefix, parents, ++i); + } break; } }