[FIX] Do not insert Elements instead of HTMLElements in the dom
authorFabien Meghazi <fme@openerp.com>
Wed, 5 Dec 2012 10:59:33 +0000 (11:59 +0100)
committerFabien Meghazi <fme@openerp.com>
Wed, 5 Dec 2012 10:59:33 +0000 (11:59 +0100)
bzr revid: fme@openerp.com-20121205105933-y3glnms4dnk7k2uz

addons/web/static/src/js/view_form.js

index 31fadc7..6b6cbb3 100644 (file)
@@ -1190,12 +1190,27 @@ instance.web.form.FormRenderingEngine = instance.web.form.FormRenderingEngineInt
         }
     },
     get_arch_fragment: function() {
+        function removeWhiteSpacesNodes(node) {
+            switch (node.nodeType) {
+                case 3:
+                case 4:
+                    if (node.data.trim() === '') {
+                        node.parentElement.removeChild(node);
+                    }
+                    break;
+                case 1:
+                    for (var i = node.childNodes.length - 1; i >= 0; i--) {
+                        removeWhiteSpacesNodes(node.childNodes[i]);
+                    }
+            }
+        }
         var doc = this.fvg.arch_doc.documentElement.cloneNode(true);
         // IE won't allow custom button@type and will revert it to spec default : 'submit'
         $('button', doc).each(function() {
             $(this).attr('data-button-type', $(this).attr('type')).attr('type', 'button');
         });
-        return $('<div class="oe_form"/>').append(doc);
+        removeWhiteSpacesNodes(doc);
+        return $('<div class="oe_form"/>').append(instance.web.xml_to_str(doc));
     },
     render_to: function($target) {
         var self = this;