diff --git a/addons/web/static/src/js/corelib.js b/addons/web/static/src/js/corelib.js index 7494c48bfe4..af70b0dc424 100644 --- a/addons/web/static/src/js/corelib.js +++ b/addons/web/static/src/js/corelib.js @@ -39,7 +39,7 @@ openerp.web.corelib = function(openerp) { * * Example: * - * var Person = nova.Class.extend({ + * var Person = openerp.web.Class.extend({ * init: function(isDancing){ * this.dancing = isDancing; * }, @@ -397,8 +397,9 @@ openerp.web.GetterSetterMixin = _.extend({}, openerp.web.EventDispatcherMixin, { } }); -openerp.web.CallbackEnabledMixin = { +openerp.web.CallbackEnabledMixin = _.extend({}, openerp.web.GetterSetterMixin, { init: function() { + openerp.web.GetterSetterMixin.init.call(this); var self = this; var callback_maker = function(obj, name, method) { var callback = function() { @@ -494,19 +495,9 @@ openerp.web.CallbackEnabledMixin = { return self[method_name].apply(self, arguments); } } -}; - -openerp.web.CallbackEnabled = openerp.web.Class.extend(openerp.web.GetterSetterMixin, openerp.web.CallbackEnabledMixin, { - init: function() { - openerp.web.GetterSetterMixin.init.call(this); - openerp.web.CallbackEnabledMixin.init.call(this); - } }); -// Class - -// TODO al merge or make 2 mixins -openerp.web.Widget = openerp.web.Class.extend(openerp.web.GetterSetterMixin, { +openerp.web.WidgetMixin = _.extend({},openerp.web.CallbackEnabledMixin, { /** * Tag name when creating a default $element. * @type string @@ -527,9 +518,8 @@ openerp.web.Widget = openerp.web.Class.extend(openerp.web.GetterSetterMixin, { * for new components this argument should not be provided any more. */ init: function(parent) { - openerp.web.GetterSetterMixin.init.call(this); + openerp.web.CallbackEnabledMixin.init.call(this); this.$element = $(document.createElement(this.tagName)); - this.setParent(parent); }, /** @@ -621,6 +611,14 @@ openerp.web.Widget = openerp.web.Class.extend(openerp.web.GetterSetterMixin, { } }); +// Classes + +openerp.web.CallbackEnabled = openerp.web.Class.extend(openerp.web.CallbackEnabledMixin, { + init: function() { + openerp.web.CallbackEnabledMixin.init.call(this); + } +}); + /** * Base class for all visual components. Provides a lot of functionalities helpful * for the management of a part of the DOM. @@ -669,7 +667,7 @@ openerp.web.Widget = openerp.web.Class.extend(openerp.web.GetterSetterMixin, { * * That will kill the widget in a clean way and erase its content from the dom. */ -openerp.web.Widget = openerp.web.Widget.extend(openerp.web.CallbackEnabledMixin, { +openerp.web.Widget = openerp.web.Class.extend(openerp.web.WidgetMixin, { /** * The name of the QWeb template that will be used for rendering. Must be * redefined in subclasses or the default render() method can not be used. @@ -692,8 +690,7 @@ openerp.web.Widget = openerp.web.Widget.extend(openerp.web.CallbackEnabledMixin, * for new components this argument should not be provided any more. */ init: function(parent) { - this._super(parent); - openerp.web.CallbackEnabledMixin.init.call(this); + openerp.web.WidgetMixin.init.call(this,parent); this.session = openerp.connection; }, /** @@ -1687,33 +1684,6 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. } }); -/** - * @deprecated use :class:`openerp.web.Widget` - */ -openerp.web.OldWidget = openerp.web.Widget.extend({ - init: function(parent, element_id) { - this._super(parent); - this.element_id = element_id; - this.element_id = this.element_id || _.uniqueId('widget-'); - var tmp = document.getElementById(this.element_id); - this.$element = tmp ? $(tmp) : $(document.createElement(this.tagName)); - }, - renderElement: function() { - var rendered = this.render(); - if (rendered) { - var elem = $(rendered); - this.$element.replaceWith(elem); - this.$element = elem; - } - return this; - }, - render: function (additional) { - if (this.template) - return openerp.web.qweb.render(this.template, _.extend({widget: this}, additional || {})); - return null; - } -}); - openerp.web.TranslationDataBase = openerp.web.Class.extend(/** @lends openerp.web.TranslationDataBase# */{ /** * @constructs openerp.web.TranslationDataBase @@ -1767,6 +1737,32 @@ openerp.web.TranslationDataBase = openerp.web.Class.extend(/** @lends openerp.we } }); +/** + * @deprecated use :class:`openerp.web.Widget` + */ +openerp.web.OldWidget = openerp.web.Widget.extend({ + init: function(parent, element_id) { + this._super(parent); + this.element_id = element_id; + this.element_id = this.element_id || _.uniqueId('widget-'); + var tmp = document.getElementById(this.element_id); + this.$element = tmp ? $(tmp) : $(document.createElement(this.tagName)); + }, + renderElement: function() { + var rendered = this.render(); + if (rendered) { + var elem = $(rendered); + this.$element.replaceWith(elem); + this.$element = elem; + } + return this; + }, + render: function (additional) { + if (this.template) + return openerp.web.qweb.render(this.template, _.extend({widget: this}, additional || {})); + return null; + } +}); } diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 0681f9a579b..5825611c5c5 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -6,17 +6,7 @@ openerp.web.views = function(session) { var QWeb = session.web.qweb, _t = session.web._t; -/** - * Registry for all the client actions key: tag value: widget - */ -session.web.client_actions = new session.web.Registry(); - -/** - * Registry for all the main views - */ -session.web.views = new session.web.Registry(); - -session.web.ActionManager = session.web.OldWidget.extend({ +session.web.ActionManager = session.web.Widget.extend({ init: function(parent) { this._super(parent); this.inner_action = null; @@ -25,9 +15,6 @@ session.web.ActionManager = session.web.OldWidget.extend({ this.dialog_viewmanager = null; this.client_widget = null; }, - render: function() { - return '
'; - }, dialog_stop: function () { if (this.dialog) { this.dialog_viewmanager.destroy(); @@ -217,7 +204,7 @@ session.web.ActionManager = session.web.OldWidget.extend({ } }); -session.web.ViewManager = session.web.OldWidget.extend(/** @lends session.web.ViewManager# */{ +session.web.ViewManager = session.web.OldWidget.extend({ template: "ViewManager", /** * @constructs session.web.ViewManager @@ -250,12 +237,6 @@ session.web.ViewManager = session.web.OldWidget.extend(/** @lends session.web.V this.registry = session.web.views; this.views_history = []; }, - render: function() { - return session.web.qweb.render(this.template, { - self: this, - prefix: this.element_id, - views: this.views_src}); - }, /** * @returns {jQuery.Deferred} initial view loading promise */ @@ -452,7 +433,7 @@ session.web.ViewManager = session.web.OldWidget.extend(/** @lends session.web.V } }); -session.web.ViewManagerAction = session.web.ViewManager.extend(/** @lends oepnerp.web.ViewManagerAction# */{ +session.web.ViewManagerAction = session.web.ViewManager.extend({ template:"ViewManagerAction", /** * @constructs session.web.ViewManagerAction @@ -1295,6 +1276,16 @@ session.web.xml_to_str = function(node) { } } +/** + * Registry for all the client actions key: tag value: widget + */ +session.web.client_actions = new session.web.Registry(); + +/** + * Registry for all the main views + */ +session.web.views = new session.web.Registry(); + }; // vim:et fdc=0 fdl=0 foldnestmax=3 fdm=syntax: diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 65364748862..1ed99250d6b 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -409,14 +409,14 @@
-

- +

+

-
+
- + @@ -425,19 +425,19 @@
- -
+ +
- -