diff --git a/addons/web/static/src/js/form.js b/addons/web/static/src/js/form.js index ff8e695278e..042bb86857d 100644 --- a/addons/web/static/src/js/form.js +++ b/addons/web/static/src/js/form.js @@ -10,20 +10,19 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# * view should be displayed (if there is one active). */ searchable: false, - template: "FormView", + template: "EmptyComponent", /** * @constructs openerp.web.FormView * @extends openerp.web.View * * @param {openerp.web.Session} session the current openerp session - * @param {String} element_id this view's root element id * @param {openerp.web.DataSet} dataset the dataset this view will work with * @param {String} view_id the identifier of the OpenERP view object * * @property {openerp.web.Registry} registry=openerp.web.form.widgets widgets registry for this form view instance */ - init: function(parent, element_id, dataset, view_id, options) { - this._super(parent, element_id); + init: function(parent, dataset, view_id, options) { + this._super(parent); this.set_default_options(options); this.dataset = dataset; this.model = dataset.model; @@ -45,6 +44,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# _.defaults(this.options, {"always_show_new_button": true}); }, start: function() { + this._super(); if (this.embedded_view) { var def = $.Deferred().then(this.on_loaded); var self = this; @@ -75,7 +75,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# this.fields_view = data; var frame = new (this.registry.get_object('frame'))(this, this.fields_view.arch); - this.$element.html(QWeb.render(this.template, { 'frame': frame, 'view': this })); + this.$element.html(QWeb.render("FormView", { 'frame': frame, 'view': this })); _.each(this.widgets, function(w) { w.start(); }); diff --git a/addons/web/static/src/js/list.js b/addons/web/static/src/js/list.js index 60ba22dc68c..7f6060b58be 100644 --- a/addons/web/static/src/js/list.js +++ b/addons/web/static/src/js/list.js @@ -2,6 +2,7 @@ openerp.web.list = function (openerp) { var QWeb = openerp.web.qweb; openerp.web.views.add('list', 'openerp.web.ListView'); openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# */ { + template: "EmptyComponent", defaults: { // records can be selected one by one 'selectable': true, @@ -31,7 +32,6 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# * @extends openerp.web.View * * @param parent parent object - * @param element_id the id of the DOM elements this view should link itself to * @param {openerp.web.DataSet} dataset the dataset the view should work with * @param {String} view_id the listview's identifier, if any * @param {Object} options A set of options used to configure the view @@ -42,9 +42,9 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# * @param {Boolean} [options.sortable=true] is it possible to sort the table by clicking on column headers * @param {Boolean} [options.reorderable=true] is it possible to reorder list rows */ - init: function(parent, element_id, dataset, view_id, options) { + init: function(parent, dataset, view_id, options) { var self = this; - this._super(parent, element_id); + this._super(parent); this.set_default_options(_.extend({}, this.defaults, options || {})); this.dataset = dataset; this.model = dataset.model; @@ -128,6 +128,7 @@ openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# * @returns {$.Deferred} loading promise */ start: function() { + this._super(); this.$element.addClass('oe-listview'); return this.reload_view(null, null, true); }, diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 0c3ef6c65d6..dd915c110ca 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -208,8 +208,7 @@ openerp.web.ViewManager = openerp.web.Widget.extend(/** @lends openerp.web.View if (!view.controller) { // Lazy loading of views var controllerclass = this.registry.get_object(view_type); - var controller = new controllerclass(this, this.element_id + '_view_' + view_type, - this.dataset, view.view_id, view.options); + var controller = new controllerclass(this, this.dataset, view.view_id, view.options); if (view.embedded_view) { controller.set_embedded_view(view.embedded_view); } @@ -228,7 +227,8 @@ openerp.web.ViewManager = openerp.web.Widget.extend(/** @lends openerp.web.View unique: true }); } - view_promise = controller.start(); + var container = $("#" + this.element_id + '_view_' + view_type); + view_promise = controller.appendTo(container); $.when(view_promise).then(function() { self.on_controller_inited(view_type, controller); }); diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 041e2ced2e9..043967c68fd 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1422,4 +1422,7 @@ + +
+