1 //<script type="text/javascript">
4 var MODULE = { isBuilder : true };
16 findNode : function(ftg , method) {
20 // console.log(ftg.id);
21 if (ftg.id && typeof(ftg.id) == 'string' && ftg.id.match(/builder-/)) {
22 var nid = ftg.id.replace('builder-', '').replace('x-form-el-', '');
27 if (ftg.dom.className.match(/[0-9]+/)) {
28 //console.log(ftg.dom.className);
29 var cmat = ftg.dom.className.match(/x-grid-hd-builder-(form-gen-[0-9:]+)/);
31 this[method]( cmat[1] );
42 overPos: function(x,y)
45 var el = document.elementFromPoint(x,y);
46 // //console.log(el.id);
47 // console.log(document.body.innerHTML);
49 getTarget : function () {
52 stopEvent : function() {
59 onclick: function(e) {
60 var tg = Roo.get(e.getTarget());
62 //console.log('no target');
66 if (this.findNode(tg,'logClick')) {
69 var dp = Roo.get(tg.up(''));
70 if (dp && this.findNode(dp,'logClick')) {
74 var ns = Roo.get(tg.getNextSibling());
75 if (ns && this.findNode(ns,'logClick')) {
79 if (ns && ns.down('') && this.findNode(Roo.get(ns.down('')) ,'logClick') ) {
83 for(var i =0; i < 5; i++) {
84 tg = Roo.get(tg.up(''));
86 //console.log('no parent' + i);
89 if (tg && this.findNode(tg,'logClick')) {
93 //console.log('no target in parents');
96 logClick : function(id)
98 var bid = id.length ? 'builder-' + id : '';
99 console.log('{ "id" : "' + bid + '"}');
103 hover : function(e) {
106 var tg = Roo.get(e.getTarget());
108 //console.log('no target');
113 if (this.findNode(tg,'logMove')) {
117 var dp = Roo.get(tg.up(''));
118 if (dp && this.findNode(dp,'logMove')) {
123 var ns = Roo.get(tg.getNextSibling());
124 if (ns && this.findNode(ns,'logMove')) {
128 if (ns && ns.down('') && this.findNode(Roo.get(ns.down('')) ,'logMove' )) {
133 for(var i =0; i < 5; i++) {
134 tg = Roo.get(tg.up(''));
136 //console.log('no parent' + i);
140 if (tg && this.findNode(tg,'logMove')) {
145 //console.log('no target in parents');
148 logMove : function (id) {
149 //console.log("LOGMOVE: " + id);
151 if (this.lastID === id) {
155 var bid = id.length ? 'builder-' + id : '';
156 console.log('{ "hover-node" : "' + bid + '"}');
159 clearBootstrap : function()
161 // if the page is not bootstrap
163 if ( typeof(BuilderUseBootstrap) != 'undefined' ) {
164 Roo.log("it's boostrap - BuilderUseBootstrap is defined ");
165 // it's bootstrap - probably remove roo's css..
168 Roo.log("remove css = BuilderUseBootstrap is not defined");
170 var ar = document.getElementsByTagName('link');
171 for (var i = 0; i < ar.length;i++) {
173 Roo.log(l.getAttribute('href'));
174 if (l.getAttribute('href').match(/bootstrap/)) {
181 Roo.each(rem, function(l) { l.parentNode.removeChild(l);});
184 applyFlexy: function(tree)
186 if (typeof(tree['flexy:foreach']) != 'undefined') {
187 //Roo.log("add flexy:foreach");
188 tree.el.attr('flexy:foreach', tree['flexy:foreach']);
190 if (typeof(tree['flexy:if']) != 'undefined') {
191 //Roo.log("add flexy:if");
192 tree.el.attr('flexy:if', tree['flexy:if']);
194 if (typeof(tree['xtype-bootstrap']) != 'undefined') {
195 //Roo.log("add flexy:if");
196 tree.el.attr('xtype', tree['xtype-bootstrap']);
200 if (!tree.items || !tree.items.length) { return; }
202 for (var i = 0; i < tree.items.length; i++){
203 this.applyFlexy(tree.items[i]);
210 Roo.onReady(function() { Builder.clearBootstrap(); });
211 Roo.XComponent.on('buildcomplete', function() {
212 Roo.log("xcomponent built!");
214 Builder.applyFlexy(Roo.XComponent.modules[0].el);