Roo/form/ComboBoxArray.js
[roojs1] / Roo / DomTemplate.js
index 94f3d69..a971190 100644 (file)
@@ -150,8 +150,8 @@ Roo.extend(Roo.DomTemplate, Roo.Template, {
         // skip anything not a tag..
         if (node.nodeType != 1) {
             if (node.nodeType == 3 && !this.inPre) {
-                // trim
-                node.nodeValue = Roo.util.Format.trim(node.nodeValue);
+                // reduce white space..
+                node.nodeValue = node.nodeValue.replace(/\s+/g, ' '); 
                 
             }
             return;
@@ -184,7 +184,7 @@ Roo.extend(Roo.DomTemplate, Roo.Template, {
         
         if (!tpl.attr) {
             // just itterate children..
-            this.iterChild(node,this.compileNode)
+            this.iterChild(node,this.compileNode);
             return;
         }
         tpl.uid = this.id++;
@@ -194,7 +194,10 @@ Roo.extend(Roo.DomTemplate, Roo.Template, {
             var placeholder = document.createTextNode('{domtpl' + tpl.uid + '}');
             node.parentNode.replaceChild(placeholder,  node);
         } else {
-            node.parentNode.removeChild(node);
+            
+            var placeholder =  document.createElement('span');
+            placeholder.className = 'roo-tpl-' + tpl.value;
+            node.parentNode.replaceChild(placeholder,  node);
         }
         
         // parent now sees '{domtplXXXX}
@@ -238,68 +241,11 @@ Roo.extend(Roo.DomTemplate, Roo.Template, {
         
         
     },
-     
     /**
-     * same as applyTemplate, except it's done to one of the subTemplates
-     * when using named templates, you can do:
-     *
-     * var str = pl.applySubTemplate('your-name', values);
-     *
+     * Compile a segment of the template into a 'sub-template'
      * 
-     * @param {Number} id of the template
-     * @param {Object} values to apply to template
-     * @param {Object} parent (normaly the instance of this object)
+     *
      */
-    applySubTemplate : function(id, values, parent)
-    {
-        
-        
-        var t = this.tpls[id];
-        
-        
-        try { 
-            if(t.ifCall && !t.ifCall.call(this, values, parent)){
-                Roo.log('if call on ' + t.value + ' return false')
-                return '';
-            }
-        } catch(e) {
-            Roo.log("Xtemplate.applySubTemplate 'test': Exception thrown");
-            Roo.log(e.toString());
-            Roo.log(t.value);
-            return ''
-        }
-        try { 
-            
-            if(t.execCall && t.execCall.call(this, values, parent)){
-                return '';
-            }
-        } catch(e) {
-            Roo.log("Xtemplate.applySubTemplate 'exec': Exception thrown");
-            Roo.log(e.toString());
-            Roo.log(t.execCall);
-            return ''
-        }
-        
-        try {
-            var vs = t.forCall ? t.forCall.call(this, values, parent) : values;
-            parent = t.target ? values : parent;
-            if(t.forCall && vs instanceof Array){
-                var buf = [];
-                for(var i = 0, len = vs.length; i < len; i++){
-                    buf[buf.length] = t.compiled.call(this, vs[i], parent);
-                }
-                return buf.join('');
-            }
-            
-            return t.compiled.call(this, vs, parent);
-        } catch (e) {
-            Roo.log("Xtemplate.applySubTemplate : Exception thrown");
-            Roo.log(e.toString());
-            Roo.log(t.compiled);
-            return '';
-        }
-    },
-
     compileTpl : function(tpl)
     {
         var fm = Roo.util.Format;
@@ -387,6 +333,81 @@ Roo.extend(Roo.DomTemplate, Roo.Template, {
         
         return this;
     },
+     
+    /**
+     * same as applyTemplate, except it's done to one of the subTemplates
+     * when using named templates, you can do:
+     *
+     * var str = pl.applySubTemplate('your-name', values);
+     *
+     * 
+     * @param {Number} id of the template
+     * @param {Object} values to apply to template
+     * @param {Object} parent (normaly the instance of this object)
+     */
+    applySubTemplate : function(id, values, parent)
+    {
+        
+        
+        var t = this.tpls[id];
+        
+        
+        try { 
+            if(t.ifCall && !t.ifCall.call(this, values, parent)){
+                Roo.log('if call on ' + t.value + ' return false');
+                return '';
+            }
+        } catch(e) {
+            Roo.log('Xtemplate.applySubTemplate('+ id+ '): Exception thrown on roo-if="' + t.value + '" - ' + e.toString());
+            Roo.log(values);
+          
+            return '';
+        }
+        try { 
+            
+            if(t.execCall && t.execCall.call(this, values, parent)){
+                return '';
+            }
+        } catch(e) {
+            Roo.log('Xtemplate.applySubTemplate('+ id+ '): Exception thrown on roo-for="' + t.value + '" - ' + e.toString());
+            Roo.log(values);
+            return '';
+        }
+        
+        try {
+            var vs = t.forCall ? t.forCall.call(this, values, parent) : values;
+            parent = t.target ? values : parent;
+            if(t.forCall && vs instanceof Array){
+                var buf = [];
+                for(var i = 0, len = vs.length; i < len; i++){
+                    try {
+                        buf[buf.length] = t.compiled.call(this, vs[i], parent);
+                    } catch (e) {
+                        Roo.log('Xtemplate.applySubTemplate('+ id+ '): Exception thrown on body="' + t.value + '" - ' + e.toString());
+                        Roo.log(e.body);
+                        //Roo.log(t.compiled);
+                        Roo.log(vs[i]);
+                    }   
+                }
+                return buf.join('');
+            }
+        } catch (e) {
+            Roo.log('Xtemplate.applySubTemplate('+ id+ '): Exception thrown on roo-for="' + t.value + '" - ' + e.toString());
+            Roo.log(values);
+            return '';
+        }
+        try {
+            return t.compiled.call(this, vs, parent);
+        } catch (e) {
+            Roo.log('Xtemplate.applySubTemplate('+ id+ '): Exception thrown on body="' + t.value + '" - ' + e.toString());
+            Roo.log(e.body);
+            //Roo.log(t.compiled);
+            Roo.log(values);
+            return '';
+        }
+    },
+
+   
 
     applyTemplate : function(values){
         return this.master.compiled.call(this, values, {});