summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web/static/src/js')
-rw-r--r--addons/web/static/src/js/corelib.js86
-rw-r--r--addons/web/static/src/js/views.js35
2 files changed, 54 insertions, 67 deletions
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 '<div id="' + this.element_id + '" style="height: 100%;"></div>';
- },
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: