X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=resources%2Froo.builder.js;h=2163657daada9296502f5d01a5503b5f7f78db8e;hb=bca805c292ae29615ca9649e453407edb960d3d8;hp=7dca16cb22022a4ffa2f5608845a559084cb922c;hpb=680d1ee690d90639c82fce9858fdb45c32d39798;p=app.Builder.js diff --git a/resources/roo.builder.js b/resources/roo.builder.js index 7dca16cb2..2163657da 100644 --- a/resources/roo.builder.js +++ b/resources/roo.builder.js @@ -4,8 +4,6 @@ // IPC: - via alert("IPC:{method}:{data} -Roo.XComponent.on("buildcomplete", function() { Builder.saveHTML(); } ); - var MODULE = { isBuilder : true }; // BC var _this = MODULE; @@ -37,12 +35,12 @@ Builder = { traverseDOMTree : function(cb, currentElement, depth) { - if (!currentElement) { + if (!currentElement ) { return; } - console.log(currentElement); - if (currentElement.className.match(/roo-dynamic/)) { + //console.log(currentElement); + if (currentElement.className && currentElement.className.match(/roo-dynamic/)) { return; } @@ -56,6 +54,9 @@ Builder = { return; } + if (nodeName.match(/^#/)) { // comments? + return; + } @@ -64,8 +65,13 @@ Builder = { return; } if (nodeName != 'BODY') { - - + //Roo.log(currentElement); + if (currentElement.hasAttribute('flexy:include')) { + + + cb( ''); + return; + } var i = 0; // Prints the node tagName, such as , , etc @@ -92,6 +98,8 @@ Builder = { } else { tagName = false; } + + // Traverse the tree i = 0; var currentElementChild = currentElement.childNodes.item(i); @@ -276,7 +284,7 @@ Builder = { } id = ''+ id; var bid = id.length ? 'builder-' + id : ''; - console.log('{ "hover-node" : "' + bid + '"}'); + //console.log('{ "hover-node" : "' + bid + '"}'); this.lastID = id; }, clearBootstrap : function() @@ -306,6 +314,9 @@ Builder = { applyFlexy: function(tree) { + if (!tree.el) { + return; + } if (typeof(tree['flexy:foreach']) != 'undefined') { //Roo.log("add flexy:foreach"); tree.el.attr('flexy:foreach', tree['flexy:foreach']); @@ -324,11 +335,27 @@ Builder = { tree.el.attr('flexy:include', tree['flexy:include']); } - if (!tree.items || !tree.items.length) { return; } + if (typeof(tree['flexy:ignore']) != 'undefined') { + //Roo.log("add flexy:if"); + tree.el.attr('flexy:ignore', tree['flexy:ignore']); + } + + tree.el.attr('xtype', tree['|xns'] + '.' + tree['xtype']); + Roo.log(tree); + //Roo.log("Add xtype") - for (var i = 0; i < tree.items.length; i++){ - this.applyFlexy(tree.items[i]); + + + if (tree.items && tree.items.length > 0) { + //Roo.log(tree); + for (var i = 0; i < tree.items.length; i++){ + this.applyFlexy(tree.items[i]); + } } + if (typeof(tree.menu) == 'object') { + this.applyFlexy(tree.menu); + } + } @@ -337,6 +364,8 @@ Builder = { Roo.onReady(function() { Builder.clearBootstrap(); }); Roo.XComponent.on('buildcomplete', function() { Roo.log("xcomponent built!"); + var m = Roo.XComponent.modules; + Builder.applyFlexy(m[m.length-1].el); - Builder.applyFlexy(Roo.XComponent.modules[0].el); + Builder.saveHTML.defer(100, Builder); }); \ No newline at end of file