Xavier (Open ERP) has proposed merging 
lp:~openerp-dev/openerp-web/trunk-html-form-widget-xmo into lp:openerp-web.

Requested reviews:
  OpenERP R&D Web Team (openerp-dev-web)
Related bugs:
  Bug #902156 in OpenERP Web: "html tag not working"
  https://bugs.launchpad.net/openerp-web/+bug/902156

For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-html-form-widget-xmo/+merge/86209

Implementation of the HTML widget in form views (and page views, which will 
inherit the form view's version):

* Root of the HTML widget is the <html> element
* Inside it, nodes can be either HTML nodes which should be output directly or 
`field` nodes, which must behave as normal OpenERP fields. `field` nodes can be 
within HTML nodes, so it needs to recurse into all its children to render the 
whole thing correctly

-- 
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-html-form-widget-xmo/+merge/86209
Your team OpenERP R&D Team is subscribed to branch 
lp:~openerp-dev/openerp-web/trunk-html-form-widget-xmo.
=== modified file 'addons/web/static/src/js/view_form.js'
--- addons/web/static/src/js/view_form.js	2011-12-20 17:37:40 +0000
+++ addons/web/static/src/js/view_form.js	2011-12-21 11:01:31 +0000
@@ -3074,6 +3074,32 @@
     }
 });
 
+openerp.web.form.WidgetHtml = openerp.web.form.Widget.extend({
+    render: function () {
+        var $root = $('<div class="oe_form_html_view">');
+        this.render_children(this, $root);
+        return $root.html();
+    },
+    render_children: function (object, $into) {
+        var self = this,
+            fields = this.view.fields_view.fields;
+        _(object.children).each(function (child) {
+            if (typeof child === 'string') {
+                $into.text(child);
+            } else if (child.tag === 'field') {
+                $into.append(
+                    new (self.view.registry.get_object('frame'))(
+                        self.view, {tag: 'ueule', attrs: {}, children: [child] })
+                            .render());
+            } else {
+                var $child = $(document.createElement(child.tag))
+                        .attr(child.attrs)
+                        .appendTo($into);
+                self.render_children(child, $child);
+            }
+        });
+    }
+});
 
 
 /**
@@ -3107,7 +3133,8 @@
     'progressbar': 'openerp.web.form.FieldProgressBar',
     'image': 'openerp.web.form.FieldBinaryImage',
     'binary': 'openerp.web.form.FieldBinaryFile',
-    'statusbar': 'openerp.web.form.FieldStatus'
+    'statusbar': 'openerp.web.form.FieldStatus',
+    'html': 'openerp.web.form.WidgetHtml'
 });
 
 

_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help   : https://help.launchpad.net/ListHelp

Reply via email to