From e35f513f44d51a87a8437c96d2b4142060cfdbc3 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 17 Apr 2012 13:48:37 +0200 Subject: [PATCH 01/11] [imp] refactored chrome.js bzr revid: nicolas.vanhoren@openerp.com-20120417114837-z4j94uy9f1qstbue --- addons/web/static/src/js/chrome.js | 104 ++++++++++++++--------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 892c86f2a92..f1d3faef367 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -1,16 +1,16 @@ /*--------------------------------------------------------- * OpenERP Web chrome *---------------------------------------------------------*/ -openerp.web.chrome = function(openerp) { -var QWeb = openerp.web.qweb, - _t = openerp.web._t; +openerp.web.chrome = function(instance) { +var QWeb = instance.web.qweb, + _t = instance.web._t; -openerp.web.Notification = openerp.web.Widget.extend({ +instance.web.Notification = instance.web.Widget.extend({ template: 'Notification', init: function() { this._super.apply(this, arguments); - // move to openerp.web.notification - openerp.notification = this; + // move to instance.web.notification + instance.notification = this; }, start: function() { this._super.apply(this, arguments); @@ -43,13 +43,13 @@ openerp.web.Notification = openerp.web.Widget.extend({ } }); -openerp.web.dialog = function(element) { +instance.web.dialog = function(element) { var result = element.dialog.apply(element, _.rest(_.toArray(arguments))); result.dialog("widget").addClass("openerp"); return result; } -openerp.web.Dialog = openerp.web.Widget.extend({ +instance.web.Dialog = instance.web.Widget.extend({ dialog_title: "", init: function (parent, options, content) { var self = this; @@ -83,7 +83,7 @@ openerp.web.Dialog = openerp.web.Widget.extend({ if (this.dialog_options.autoOpen) { this.open(); } else { - openerp.web.dialog(this.$element, this.get_options()); + instance.web.dialog(this.$element, this.get_options()); } }, get_options: function(options) { @@ -122,7 +122,7 @@ openerp.web.Dialog = openerp.web.Widget.extend({ this.$element.html(this.renderElement()); } var o = this.get_options(options); - openerp.web.dialog(this.$element, o).dialog('open'); + instance.web.dialog(this.$element, o).dialog('open'); if (o.height === 'auto' && o.max_height) { this.$element.css({ 'max-height': o.max_height, 'overflow-y': 'auto' }); } @@ -146,7 +146,7 @@ openerp.web.Dialog = openerp.web.Widget.extend({ } }); -openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({ +instance.web.CrashManager = instance.web.CallbackEnabled.extend({ on_rpc_error: function(error) { if (error.data.fault_code) { var split = ("" + error.data.fault_code).split('\n')[0].split(' -- '); @@ -162,7 +162,7 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({ } }, on_managed_error: function(error) { - openerp.web.dialog($('
' + QWeb.render('CrashManager.warning', {error: error}) + '
'), { + instance.web.dialog($('
' + QWeb.render('CrashManager.warning', {error: error}) + '
'), { title: "OpenERP " + _.str.capitalize(error.type), buttons: [ {text: _t("Ok"), click: function() { $(this).dialog("close"); }} @@ -172,14 +172,14 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({ on_traceback: function(error) { var self = this; var buttons = {}; - if (openerp.connection.openerp_entreprise) { + if (instance.connection.openerp_entreprise) { buttons[_t("Send OpenERP Enterprise Report")] = function() { var $this = $(this); var issuename = $('#issuename').val(); var explanation = $('#explanation').val(); var remark = $('#remark').val(); // Call the send method from server to send mail with details - new openerp.web.DataSet(self, 'publisher_warranty.contract').call_and_eval('send', [error.data,explanation,remark,issuename]).then(function(result){ + new instance.web.DataSet(self, 'publisher_warranty.contract').call_and_eval('send', [error.data,explanation,remark,issuename]).then(function(result){ if (result === false) { alert('There was a communication error.') } else { @@ -195,7 +195,7 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({ $(this).dialog("close"); }; } - var dialog = new openerp.web.Dialog(this, { + var dialog = new instance.web.Dialog(this, { title: "OpenERP " + _.str.capitalize(error.type), width: '80%', height: '50%', @@ -203,11 +203,11 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({ min_height: '600px', buttons: buttons }).open(); - dialog.$element.html(QWeb.render('CrashManager.error', {session: openerp.connection, error: error})); + dialog.$element.html(QWeb.render('CrashManager.error', {session: instance.connection, error: error})); } }); -openerp.web.Loading = openerp.web.Widget.extend({ +instance.web.Loading = instance.web.Widget.extend({ template: 'Loading', init: function(parent) { this._super(parent); @@ -258,7 +258,7 @@ openerp.web.Loading = openerp.web.Widget.extend({ } }); -openerp.web.DatabaseManager = openerp.web.Widget.extend({ +instance.web.DatabaseManager = instance.web.Widget.extend({ init: function(parent) { this._super(parent); this.unblockUIFunction = $.unblockUI; @@ -344,7 +344,7 @@ openerp.web.DatabaseManager = openerp.web.Widget.extend({ * @param {String} error.error message of the error dialog */ display_error: function (error) { - return openerp.web.dialog($('
'), { + return instance.web.dialog($('
'), { modal: true, title: error.title, buttons: [ @@ -388,7 +388,7 @@ openerp.web.DatabaseManager = openerp.web.Widget.extend({ success: function () { self.do_notify(_t("Backed"), _t("Database backed up successfully")); }, - error: openerp.webclient.crashmanager.on_rpc_error, + error: instance.webclient.crashmanager.on_rpc_error, complete: function() { self.unblockUI(); } @@ -439,7 +439,7 @@ openerp.web.DatabaseManager = openerp.web.Widget.extend({ } }); -openerp.web.Login = openerp.web.Widget.extend({ +instance.web.Login = instance.web.Widget.extend({ template: "Login", remember_credentials: true, init: function(parent) { @@ -464,7 +464,7 @@ openerp.web.Login = openerp.web.Widget.extend({ self.$element.find('.oe_login_manage_db').click(function() { self.$element.find('.oe_login_bottom').hide(); self.$element.find('.oe_login_pane').hide(); - self.databasemanager = new openerp.web.DatabaseManager(self); + self.databasemanager = new instance.web.DatabaseManager(self); self.databasemanager.appendTo(self.$element); self.databasemanager.do_exit.add_last(function() { self.databasemanager.destroy(); @@ -486,7 +486,7 @@ openerp.web.Login = openerp.web.Widget.extend({ }); }, set_db_list: function (list) { - this.$element.find("[name=db]").replaceWith(openerp.web.qweb.render('Login.dblist', { db_list: list, selected_db: this.selected_db})) + this.$element.find("[name=db]").replaceWith(instance.web.qweb.render('Login.dblist', { db_list: list, selected_db: this.selected_db})) }, on_submit: function(ev) { if(ev) { @@ -538,7 +538,7 @@ openerp.web.Login = openerp.web.Widget.extend({ } }); -openerp.web.Menu = openerp.web.Widget.extend({ +instance.web.Menu = instance.web.Widget.extend({ template: 'Menu', init: function() { this._super.apply(this, arguments); @@ -682,7 +682,7 @@ openerp.web.Menu = openerp.web.Widget.extend({ } }); -openerp.web.UserMenu = openerp.web.Widget.extend({ +instance.web.UserMenu = instance.web.Widget.extend({ template: "UserMenu", init: function(parent) { this._super(parent); @@ -707,7 +707,7 @@ openerp.web.UserMenu = openerp.web.Widget.extend({ }, change_password :function() { var self = this; - this.dialog = new openerp.web.Dialog(this, { + this.dialog = new instance.web.Dialog(this, { title: _t("Change Password"), width : 'auto' }).open(); @@ -721,14 +721,14 @@ openerp.web.UserMenu = openerp.web.Widget.extend({ self.display_error(result); return; } else { - openerp.webclient.on_logout(); + instance.webclient.on_logout(); } }); } }); }, display_error: function (error) { - return openerp.web.dialog($('
'), { + return instance.web.dialog($('
'), { modal: true, title: error.title, buttons: [ @@ -743,10 +743,10 @@ openerp.web.UserMenu = openerp.web.Widget.extend({ $avatar.attr('src', $avatar.data('default-src')); if (!self.session.uid) return; - var func = new openerp.web.Model("res.users").get_func("read"); + var func = new instance.web.Model("res.users").get_func("read"); return func(self.session.uid, ["name", "company_id"]).pipe(function(res) { // TODO: Show company if multicompany is in use - var topbar_name = _.str.sprintf("%s (%s)", res.name, openerp.connection.db, res.company_id[1]); + var topbar_name = _.str.sprintf("%s (%s)", res.name, instance.connection.db, res.company_id[1]); self.$element.find('.oe_topbar_name').text(topbar_name); var avatar_src = _.str.sprintf('%s/web/binary/image?session_id=%s&model=res.users&field=avatar&id=%s', self.session.prefix, self.session.session_id, self.session.uid); $avatar.attr('src', avatar_src); @@ -760,7 +760,7 @@ openerp.web.UserMenu = openerp.web.Widget.extend({ shortcut_load :function(){ var self = this, sc = self.session.shortcuts, - shortcuts_ds = new openerp.web.DataSet(this, 'ir.ui.view_sc'); + shortcuts_ds = new instance.web.DataSet(this, 'ir.ui.view_sc'); self.$element.find('.oe_dropdown_options a[data-menu=shortcut]').each(function() { $(this).parent().remove(); }); @@ -807,8 +807,8 @@ openerp.web.UserMenu = openerp.web.Widget.extend({ }, on_menu_settings: function() { var self = this; - var action_manager = new openerp.web.ActionManager(this); - var dataset = new openerp.web.DataSet (this,'res.users',this.context); + var action_manager = new instance.web.ActionManager(this); + var dataset = new instance.web.DataSet (this,'res.users',this.context); dataset.call ('action_get','',function (result){ self.rpc('/web/action/load', {action_id:result}, function(result){ action_manager.do_action(_.extend(result['result'], { @@ -825,7 +825,7 @@ openerp.web.UserMenu = openerp.web.Widget.extend({ })); }); }); - this.dialog = new openerp.web.Dialog(this,{ + this.dialog = new instance.web.Dialog(this,{ title: _t("Preferences"), width: '700px', buttons: [ @@ -855,7 +855,7 @@ openerp.web.UserMenu = openerp.web.Widget.extend({ window.location = $.param.querystring( window.location.href, 'debug'); }); - openerp.web.dialog($help, {autoOpen: true, + instance.web.dialog($help, {autoOpen: true, modal: true, width: 960, title: _t("About")}); }); }, @@ -871,11 +871,11 @@ openerp.web.UserMenu = openerp.web.Widget.extend({ } }); -openerp.web.WebClient = openerp.web.Widget.extend({ +instance.web.WebClient = instance.web.Widget.extend({ init: function(parent) { var self = this; this._super(parent); - openerp.webclient = this; + instance.webclient = this; this.querystring = '?' + jQuery.param.querystring(); this._current_state = null; }, @@ -900,7 +900,7 @@ openerp.web.WebClient = openerp.web.Widget.extend({ self.menu.do_reload(); if(self.action_manager) self.action_manager.destroy(); - self.action_manager = new openerp.web.ActionManager(self); + self.action_manager = new instance.web.ActionManager(self); self.action_manager.appendTo(self.$element.find('.oe_application')); self.bind_hashchange(); var version_label = _t("OpenERP - Unsupported/Community Version"); @@ -917,7 +917,7 @@ openerp.web.WebClient = openerp.web.Widget.extend({ var self = this; this.destroy_content(); this.show_common(); - self.login = new openerp.web.Login(self); + self.login = new instance.web.Login(self); self.login.appendTo(self.$element); }, show_application: function() { @@ -926,10 +926,10 @@ openerp.web.WebClient = openerp.web.Widget.extend({ this.show_common(); self.$table = $(QWeb.render("WebClient", {})); self.$element.append(self.$table); - self.menu = new openerp.web.Menu(self); + self.menu = new instance.web.Menu(self); self.menu.replace(this.$element.find('.oe_menu_placeholder')); self.menu.on_action.add(this.proxy('on_menu_action')); - self.user_menu = new openerp.web.UserMenu(self); + self.user_menu = new instance.web.UserMenu(self); self.user_menu.replace(this.$element.find('.oe_user_menu_placeholder')); self.user_menu.on_menu_logout.add(this.proxy('on_logout')); self.user_menu.on_action.add(this.proxy('on_menu_action')); @@ -937,8 +937,8 @@ openerp.web.WebClient = openerp.web.Widget.extend({ show_common: function() { var self = this; if (!this.crashmanager) { - this.crashmanager = new openerp.web.CrashManager(); - openerp.connection.on_rpc_error.add(this.crashmanager.on_rpc_error); + this.crashmanager = new instance.web.CrashManager(); + instance.connection.on_rpc_error.add(this.crashmanager.on_rpc_error); window.onerror = function (message, file, line) { self.crashmanager.on_traceback({ type: _t("Client Error"), @@ -947,9 +947,9 @@ openerp.web.WebClient = openerp.web.Widget.extend({ }); } } - this.notification = new openerp.web.Notification(this); + this.notification = new instance.web.Notification(this); this.notification.appendTo(this.$element); - this.loading = new openerp.web.Loading(this); + this.loading = new instance.web.Loading(this); this.loading.appendTo(this.$element); }, destroy_content: function() { @@ -961,7 +961,7 @@ openerp.web.WebClient = openerp.web.Widget.extend({ do_reload: function() { var self = this; return this.session.session_reload().pipe(function () { - openerp.connection.load_modules(true).pipe( + instance.connection.load_modules(true).pipe( self.menu.proxy('do_reload')); }); }, @@ -1025,14 +1025,14 @@ openerp.web.WebClient = openerp.web.Widget.extend({ } }); -openerp.web.EmbeddedClient = openerp.web.Widget.extend({ +instance.web.EmbeddedClient = instance.web.Widget.extend({ template: 'EmptyComponent', init: function(parent, action_id, options) { this._super(parent); // TODO take the xmlid of a action instead of its id this.action_id = action_id; this.options = options || {}; - this.am = new openerp.web.ActionManager(this); + this.am = new instance.web.ActionManager(this); }, start: function() { var self = this; @@ -1052,7 +1052,7 @@ openerp.web.EmbeddedClient = openerp.web.Widget.extend({ } }); -openerp.web.embed = function (origin, dbname, login, key, action, options) { +instance.web.embed = function (origin, dbname, login, key, action, options) { $('head').append($('', { 'rel': 'stylesheet', 'type': 'text/css', @@ -1063,9 +1063,9 @@ openerp.web.embed = function (origin, dbname, login, key, action, options) { var sc = document.getElementsByTagName('script'); currentScript = sc[sc.length-1]; } - openerp.connection.session_bind(origin).then(function () { - openerp.connection.session_authenticate(dbname, login, key, true).then(function () { - var client = new openerp.web.EmbeddedClient(null, action, options); + instance.connection.session_bind(origin).then(function () { + instance.connection.session_authenticate(dbname, login, key, true).then(function () { + var client = new instance.web.EmbeddedClient(null, action, options); client.insertAfter(currentScript); }); }); From 1d488be821bc603bc796525480d9393fdf0d9dd7 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 17 Apr 2012 13:52:47 +0200 Subject: [PATCH 02/11] [imp] refactored corelib.js bzr revid: nicolas.vanhoren@openerp.com-20120417115247-an5dj09s7k1a2su0 --- addons/web/static/src/js/corelib.js | 126 ++++++++++++++-------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/addons/web/static/src/js/corelib.js b/addons/web/static/src/js/corelib.js index 2da804c3d2c..5475f4ad53c 100644 --- a/addons/web/static/src/js/corelib.js +++ b/addons/web/static/src/js/corelib.js @@ -23,7 +23,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -openerp.web.corelib = function(openerp) { +openerp.web.corelib = function(instance) { /** * Improved John Resig's inheritance, based on: @@ -39,7 +39,7 @@ openerp.web.corelib = function(openerp) { * * Example: * - * var Person = openerp.web.Class.extend({ + * var Person = instance.web.Class.extend({ * init: function(isDancing){ * this.dancing = isDancing; * }, @@ -75,14 +75,14 @@ openerp.web.corelib = function(openerp) { var initializing = false, fnTest = /xyz/.test(function(){xyz;}) ? /\b_super\b/ : /.*/; // The web Class implementation (does nothing) - openerp.web.Class = function(){}; + instance.web.Class = function(){}; /** * Subclass an existing class * * @param {Object} prop class-level properties (class attributes and instance methods) to set on the new class */ - openerp.web.Class.extend = function() { + instance.web.Class.extend = function() { var _super = this.prototype; // Support mixins arguments var args = _.toArray(arguments); @@ -180,7 +180,7 @@ openerp.web.corelib = function(openerp) { * When an object is destroyed, all its children are destroyed too releasing * any resource they could have reserved before. */ -openerp.web.ParentedMixin = { +instance.web.ParentedMixin = { __parentedMixin : true, init: function() { this.__parentedDestroyed = false; @@ -253,7 +253,7 @@ openerp.web.ParentedMixin = { * events is done in EventDispatcherMixin. * */ -openerp.web.Events = openerp.web.Class.extend({ +instance.web.Events = instance.web.Class.extend({ on : function(events, callback, context) { var ev; @@ -324,11 +324,11 @@ openerp.web.Events = openerp.web.Class.extend({ } }); -openerp.web.EventDispatcherMixin = _.extend({}, openerp.web.ParentedMixin, { +instance.web.EventDispatcherMixin = _.extend({}, instance.web.ParentedMixin, { __eventDispatcherMixin: true, init: function() { - openerp.web.ParentedMixin.init.call(this); - this.__edispatcherEvents = new openerp.web.Events(); + instance.web.ParentedMixin.init.call(this); + this.__edispatcherEvents = new instance.web.Events(); this.__edispatcherRegisteredEvents = []; }, on: function(events, dest, func) { @@ -369,13 +369,13 @@ openerp.web.EventDispatcherMixin = _.extend({}, openerp.web.ParentedMixin, { debugger; } this.__edispatcherEvents.off(); - openerp.web.ParentedMixin.destroy.call(this); + instance.web.ParentedMixin.destroy.call(this); } }); -openerp.web.GetterSetterMixin = _.extend({}, openerp.web.EventDispatcherMixin, { +instance.web.GetterSetterMixin = _.extend({}, instance.web.EventDispatcherMixin, { init: function() { - openerp.web.EventDispatcherMixin.init.call(this); + instance.web.EventDispatcherMixin.init.call(this); this.__getterSetterInternalMap = {}; }, set: function(map) { @@ -400,9 +400,9 @@ openerp.web.GetterSetterMixin = _.extend({}, openerp.web.EventDispatcherMixin, { } }); -openerp.web.CallbackEnabledMixin = _.extend({}, openerp.web.GetterSetterMixin, { +instance.web.CallbackEnabledMixin = _.extend({}, instance.web.GetterSetterMixin, { init: function() { - openerp.web.GetterSetterMixin.init.call(this); + instance.web.GetterSetterMixin.init.call(this); var self = this; var callback_maker = function(obj, name, method) { var callback = function() { @@ -421,7 +421,7 @@ openerp.web.CallbackEnabledMixin = _.extend({}, openerp.web.GetterSetterMixin, { r = result; } // TODO special value to stop the chain - // openerp.web.callback_stop + // instance.web.callback_stop } return r; }; @@ -500,7 +500,7 @@ openerp.web.CallbackEnabledMixin = _.extend({}, openerp.web.GetterSetterMixin, { } }); -openerp.web.WidgetMixin = _.extend({},openerp.web.CallbackEnabledMixin, { +instance.web.WidgetMixin = _.extend({},instance.web.CallbackEnabledMixin, { /** * Tag name when creating a default $element. * @type string @@ -509,10 +509,10 @@ openerp.web.WidgetMixin = _.extend({},openerp.web.CallbackEnabledMixin, { /** * Constructs the widget and sets its parent if a parent is given. * - * @constructs openerp.web.Widget - * @extends openerp.web.CallbackEnabled + * @constructs instance.web.Widget + * @extends instance.web.CallbackEnabled * - * @param {openerp.web.Widget} parent Binds the current instance to the given Widget instance. + * @param {instance.web.Widget} parent Binds the current instance to the given Widget instance. * When that widget is destroyed by calling destroy(), the current instance will be * destroyed too. Can be null. * @param {String} element_id Deprecated. Sets the element_id. Only useful when you want @@ -521,7 +521,7 @@ openerp.web.WidgetMixin = _.extend({},openerp.web.CallbackEnabledMixin, { * for new components this argument should not be provided any more. */ init: function(parent) { - openerp.web.CallbackEnabledMixin.init.call(this); + instance.web.CallbackEnabledMixin.init.call(this); this.$element = $(document.createElement(this.tagName)); this.setParent(parent); }, @@ -535,7 +535,7 @@ openerp.web.WidgetMixin = _.extend({},openerp.web.CallbackEnabledMixin, { if(this.$element != null) { this.$element.remove(); } - openerp.web.GetterSetterMixin.destroy.call(this); + instance.web.GetterSetterMixin.destroy.call(this); }, /** * Renders the current widget and appends it to the given jQuery object or Widget. @@ -616,9 +616,9 @@ openerp.web.WidgetMixin = _.extend({},openerp.web.CallbackEnabledMixin, { // Classes -openerp.web.CallbackEnabled = openerp.web.Class.extend(openerp.web.CallbackEnabledMixin, { +instance.web.CallbackEnabled = instance.web.Class.extend(instance.web.CallbackEnabledMixin, { init: function() { - openerp.web.CallbackEnabledMixin.init.call(this); + instance.web.CallbackEnabledMixin.init.call(this); } }); @@ -637,7 +637,7 @@ openerp.web.CallbackEnabled = openerp.web.Class.extend(openerp.web.CallbackEnabl * * Here is a sample child class: * - * MyWidget = openerp.base.Widget.extend({ + * MyWidget = instance.base.Widget.extend({ * // the name of the QWeb template to use for rendering * template: "MyQWebTemplate", * @@ -670,7 +670,7 @@ openerp.web.CallbackEnabled = openerp.web.Class.extend(openerp.web.CallbackEnabl * * That will kill the widget in a clean way and erase its content from the dom. */ -openerp.web.Widget = openerp.web.Class.extend(openerp.web.WidgetMixin, { +instance.web.Widget = instance.web.Class.extend(instance.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. @@ -681,10 +681,10 @@ openerp.web.Widget = openerp.web.Class.extend(openerp.web.WidgetMixin, { /** * Constructs the widget and sets its parent if a parent is given. * - * @constructs openerp.web.Widget - * @extends openerp.web.CallbackEnabled + * @constructs instance.web.Widget + * @extends instance.web.CallbackEnabled * - * @param {openerp.web.Widget} parent Binds the current instance to the given Widget instance. + * @param {instance.web.Widget} parent Binds the current instance to the given Widget instance. * When that widget is destroyed by calling destroy(), the current instance will be * destroyed too. Can be null. * @param {String} element_id Deprecated. Sets the element_id. Only useful when you want @@ -693,8 +693,8 @@ openerp.web.Widget = openerp.web.Class.extend(openerp.web.WidgetMixin, { * for new components this argument should not be provided any more. */ init: function(parent) { - openerp.web.WidgetMixin.init.call(this,parent); - this.session = openerp.connection; + instance.web.WidgetMixin.init.call(this,parent); + this.session = instance.connection; }, /** * Renders the element. The default implementation renders the widget using QWeb, @@ -704,7 +704,7 @@ openerp.web.Widget = openerp.web.Class.extend(openerp.web.WidgetMixin, { renderElement: function() { var rendered = null; if (this.template) - rendered = openerp.web.qweb.render(this.template, {widget: this}); + rendered = instance.web.qweb.render(this.template, {widget: this}); if (_.str.trim(rendered)) { var elem = $(rendered); this.$element.replaceWith(elem); @@ -737,7 +737,7 @@ openerp.web.Widget = openerp.web.Class.extend(openerp.web.WidgetMixin, { rpc: function(url, data, success, error) { var def = $.Deferred().then(success, error); var self = this; - openerp.connection.rpc(url, data). then(function() { + instance.connection.rpc(url, data). then(function() { if (!self.isDestroyed()) def.resolve.apply(def, arguments); }, function() { @@ -748,7 +748,7 @@ openerp.web.Widget = openerp.web.Class.extend(openerp.web.WidgetMixin, { } }); -openerp.web.Registry = openerp.web.Class.extend({ +instance.web.Registry = instance.web.Class.extend({ /** * Stores a mapping of arbitrary key (strings) to object paths (as strings * as well). @@ -757,11 +757,11 @@ openerp.web.Registry = openerp.web.Class.extend({ * object, even if those objects have been overloaded/replaced after the * registry was created. * - * An object path is simply a dotted name from the openerp root to the - * object pointed to (e.g. ``"openerp.web.Connection"`` for an OpenERP + * An object path is simply a dotted name from the instance root to the + * object pointed to (e.g. ``"instance.web.Connection"`` for an OpenERP * connection object). * - * @constructs openerp.web.Registry + * @constructs instance.web.Registry * @param {Object} mapping a mapping of keys to object-paths */ init: function (mapping) { @@ -785,7 +785,7 @@ openerp.web.Registry = openerp.web.Class.extend({ return null; } - var object_match = openerp; + var object_match = instance; var path = path_string.split('.'); // ignore first section for(var i=1; i Date: Tue, 17 Apr 2012 13:53:56 +0200 Subject: [PATCH 03/11] [imp] refactored coresetup.js bzr revid: nicolas.vanhoren@openerp.com-20120417115356-vl4sna742qrtgpg0 --- addons/web/static/src/js/coresetup.js | 28 +++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/addons/web/static/src/js/coresetup.js b/addons/web/static/src/js/coresetup.js index a68a7bb3d7e..86040302668 100644 --- a/addons/web/static/src/js/coresetup.js +++ b/addons/web/static/src/js/coresetup.js @@ -9,10 +9,10 @@ if (!console.debug) { console.debug = console.log; } -openerp.web.coresetup = function(openerp) { +openerp.web.coresetup = function(instance) { /** Configure default qweb */ -openerp.web._t = new openerp.web.TranslationDataBase().build_translation_function(); +instance.web._t = new instance.web.TranslationDataBase().build_translation_function(); /** * Lazy translation function, only performs the translation when actually * printed (e.g. inserted into a template) @@ -24,16 +24,16 @@ openerp.web._t = new openerp.web.TranslationDataBase().build_translation_functio * @param {String} s string to translate * @returns {Object} lazy translation object */ -openerp.web._lt = function (s) { - return {toString: function () { return openerp.web._t(s); }} +instance.web._lt = function (s) { + return {toString: function () { return instance.web._t(s); }} }; -openerp.web.qweb = new QWeb2.Engine(); -openerp.web.qweb.debug = ($.deparam($.param.querystring()).debug != undefined); -openerp.web.qweb.default_dict = { +instance.web.qweb = new QWeb2.Engine(); +instance.web.qweb.debug = ($.deparam($.param.querystring()).debug != undefined); +instance.web.qweb.default_dict = { '_' : _, - '_t' : openerp.web._t + '_t' : instance.web._t }; -openerp.web.qweb.preprocess_node = function() { +instance.web.qweb.preprocess_node = function() { // Note that 'this' is the Qweb Node switch (this.node.nodeType) { case 3: @@ -47,7 +47,7 @@ openerp.web.qweb.preprocess_node = function() { if (ts.length === 0) { return; } - var tr = openerp.web._t(ts); + var tr = instance.web._t(ts); if (tr !== ts) { this.node.data = tr; } @@ -57,7 +57,7 @@ openerp.web.qweb.preprocess_node = function() { var attr, attrs = ['label', 'title', 'alt']; while (attr = attrs.pop()) { if (this.attributes[attr]) { - this.attributes[attr] = openerp.web._t(this.attributes[attr]); + this.attributes[attr] = instance.web._t(this.attributes[attr]); } } } @@ -99,8 +99,8 @@ $.Mutex = (function() { })(); /** Setup default connection */ -openerp.connection = new openerp.web.Connection(); -openerp.web.qweb.default_dict['__debug__'] = openerp.connection.debug; +instance.connection = new instance.web.Connection(); +instance.web.qweb.default_dict['__debug__'] = instance.connection.debug; $.async_when = function() { var async = false; @@ -131,7 +131,7 @@ $.async_when = function() { // special tweak for the web client var old_async_when = $.async_when; $.async_when = function() { - if (openerp.connection.synch) + if (instance.connection.synch) return $.when.apply(this, arguments); else return old_async_when.apply(this, arguments); From 0cccd29dcc76f8376d9400141f20e70d668937b9 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 17 Apr 2012 13:55:33 +0200 Subject: [PATCH 04/11] [imp] refactored data.js bzr revid: nicolas.vanhoren@openerp.com-20120417115533-w0wfyon5fn1kk5jn --- addons/web/static/src/js/data.js | 76 ++++++++++++++++---------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/addons/web/static/src/js/data.js b/addons/web/static/src/js/data.js index d9cfc5c4002..4f18a4c53d9 100644 --- a/addons/web/static/src/js/data.js +++ b/addons/web/static/src/js/data.js @@ -1,5 +1,5 @@ -openerp.web.data = function(openerp) { +openerp.web.data = function(instance) { /** * Serializes the sort criterion array of a dataset into a form which can be @@ -8,7 +8,7 @@ openerp.web.data = function(openerp) { * @param {Array} criterion array of fields, from first to last criteria, prefixed with '-' for reverse sorting * @returns {String} SQL-like sorting string (``ORDER BY``) clause */ -openerp.web.serialize_sort = function (criterion) { +instance.web.serialize_sort = function (criterion) { return _.map(criterion, function (criteria) { if (criteria[0] === '-') { @@ -18,7 +18,7 @@ openerp.web.serialize_sort = function (criterion) { }).join(', '); }; -openerp.web.DataGroup = openerp.web.OldWidget.extend( /** @lends openerp.web.DataGroup# */{ +instance.web.DataGroup = instance.web.OldWidget.extend( /** @lends instance.web.DataGroup# */{ /** * Management interface between views and grouped collections of OpenERP * records. @@ -26,13 +26,13 @@ openerp.web.DataGroup = openerp.web.OldWidget.extend( /** @lends openerp.web.Da * The root DataGroup is instantiated with the relevant information * (a session, a model, a domain, a context and a group_by sequence), the * domain and context may be empty. It is then interacted with via - * :js:func:`~openerp.web.DataGroup.list`, which is used to read the + * :js:func:`~instance.web.DataGroup.list`, which is used to read the * content of the current grouping level. * - * @constructs openerp.web.DataGroup - * @extends openerp.web.OldWidget + * @constructs instance.web.DataGroup + * @extends instance.web.OldWidget * - * @param {openerp.web.OldWidget} parent widget + * @param {instance.web.OldWidget} parent widget * @param {String} model name of the model managed by this DataGroup * @param {Array} domain search domain for this DataGroup * @param {Object} context context of the DataGroup's searches @@ -43,9 +43,9 @@ openerp.web.DataGroup = openerp.web.OldWidget.extend( /** @lends openerp.web.Da this._super(parent, null); if (group_by) { if (group_by.length || context['group_by_no_leaf']) { - return new openerp.web.ContainerDataGroup( this, model, domain, context, group_by, level); + return new instance.web.ContainerDataGroup( this, model, domain, context, group_by, level); } else { - return new openerp.web.GrouplessDataGroup( this, model, domain, context, level); + return new instance.web.GrouplessDataGroup( this, model, domain, context, level); } } @@ -57,11 +57,11 @@ openerp.web.DataGroup = openerp.web.OldWidget.extend( /** @lends openerp.web.Da }, cls: 'DataGroup' }); -openerp.web.ContainerDataGroup = openerp.web.DataGroup.extend( /** @lends openerp.web.ContainerDataGroup# */ { +instance.web.ContainerDataGroup = instance.web.DataGroup.extend( /** @lends instance.web.ContainerDataGroup# */ { /** * - * @constructs openerp.web.ContainerDataGroup - * @extends openerp.web.DataGroup + * @constructs instance.web.ContainerDataGroup + * @extends instance.web.DataGroup * * @param session * @param model @@ -146,7 +146,7 @@ openerp.web.ContainerDataGroup = openerp.web.DataGroup.extend( /** @lends opener domain: this.domain, fields: _.uniq(this.group_by.concat(fields)), group_by_fields: this.group_by, - sort: openerp.web.serialize_sort(this.sort) + sort: instance.web.serialize_sort(this.sort) }, function () { }).then(function (response) { var data_groups = _(response).map( _.bind(self.transform_group, self)); @@ -186,7 +186,7 @@ openerp.web.ContainerDataGroup = openerp.web.DataGroup.extend( /** @lends opener ifGroups(_(group_records).map(function (group) { var child_context = _.extend({}, self.context, group.__context); return _.extend( - new openerp.web.DataGroup( + new instance.web.DataGroup( self, self.model, group.__domain, child_context, child_context.group_by, self.level + 1), @@ -195,11 +195,11 @@ openerp.web.ContainerDataGroup = openerp.web.DataGroup.extend( /** @lends opener }); } }); -openerp.web.GrouplessDataGroup = openerp.web.DataGroup.extend( /** @lends openerp.web.GrouplessDataGroup# */ { +instance.web.GrouplessDataGroup = instance.web.DataGroup.extend( /** @lends instance.web.GrouplessDataGroup# */ { /** * - * @constructs openerp.web.GrouplessDataGroup - * @extends openerp.web.DataGroup + * @constructs instance.web.GrouplessDataGroup + * @extends instance.web.DataGroup * * @param session * @param model @@ -212,17 +212,17 @@ openerp.web.GrouplessDataGroup = openerp.web.DataGroup.extend( /** @lends opener }, list: function (fields, ifGroups, ifRecords) { ifRecords(_.extend( - new openerp.web.DataSetSearch(this, this.model), + new instance.web.DataSetSearch(this, this.model), {domain: this.domain, context: this.context, _sort: this.sort})); } }); -openerp.web.StaticDataGroup = openerp.web.GrouplessDataGroup.extend( /** @lends openerp.web.StaticDataGroup# */ { +instance.web.StaticDataGroup = instance.web.GrouplessDataGroup.extend( /** @lends instance.web.StaticDataGroup# */ { /** * A specialization of groupless data groups, relying on a single static * dataset as its records provider. * - * @constructs openerp.web.StaticDataGroup - * @extends openerp.web.GrouplessDataGroup + * @constructs instance.web.StaticDataGroup + * @extends instance.web.GrouplessDataGroup * @param {openep.web.DataSetStatic} dataset a static dataset backing the groups */ init: function (dataset) { @@ -233,13 +233,13 @@ openerp.web.StaticDataGroup = openerp.web.GrouplessDataGroup.extend( /** @lends } }); -openerp.web.DataSet = openerp.web.OldWidget.extend( /** @lends openerp.web.DataSet# */{ +instance.web.DataSet = instance.web.OldWidget.extend( /** @lends instance.web.DataSet# */{ /** * DateaManagement interface between views and the collection of selected * OpenERP records (represents the view's state?) * - * @constructs openerp.web.DataSet - * @extends openerp.web.OldWidget + * @constructs instance.web.DataSet + * @extends instance.web.OldWidget * * @param {String} model the OpenERP model this dataset will manage */ @@ -494,7 +494,7 @@ openerp.web.DataSet = openerp.web.OldWidget.extend( /** @lends openerp.web.Data }, get_context: function(request_context) { if (request_context) { - return new openerp.web.CompoundContext(this.context, request_context); + return new instance.web.CompoundContext(this.context, request_context); } return this.context; }, @@ -513,7 +513,7 @@ openerp.web.DataSet = openerp.web.OldWidget.extend( /** @lends openerp.web.Data */ sort: function (field, force_reverse) { if (!field) { - return openerp.web.serialize_sort(this._sort); + return instance.web.serialize_sort(this._sort); } var reverse = force_reverse || (this._sort[0] === field); this._sort.splice.apply( @@ -530,7 +530,7 @@ openerp.web.DataSet = openerp.web.OldWidget.extend( /** @lends openerp.web.Data this.ids = n_ids; }, }); -openerp.web.DataSetStatic = openerp.web.DataSet.extend({ +instance.web.DataSetStatic = instance.web.DataSet.extend({ init: function(parent, model, context, ids) { this._super(parent, model, context); // all local records @@ -560,10 +560,10 @@ openerp.web.DataSetStatic = openerp.web.DataSet.extend({ this.set_ids(_.without.apply(null, [this.ids].concat(ids))); } }); -openerp.web.DataSetSearch = openerp.web.DataSet.extend(/** @lends openerp.web.DataSetSearch */{ +instance.web.DataSetSearch = instance.web.DataSet.extend(/** @lends instance.web.DataSetSearch */{ /** - * @constructs openerp.web.DataSetSearch - * @extends openerp.web.DataSet + * @constructs instance.web.DataSetSearch + * @extends instance.web.DataSet * * @param {Object} parent * @param {String} model @@ -612,7 +612,7 @@ openerp.web.DataSetSearch = openerp.web.DataSet.extend(/** @lends openerp.web.D }, get_domain: function (other_domain) { if (other_domain) { - return new openerp.web.CompoundDomain(this.domain, other_domain); + return new instance.web.CompoundDomain(this.domain, other_domain); } return this.domain; }, @@ -635,7 +635,7 @@ openerp.web.DataSetSearch = openerp.web.DataSet.extend(/** @lends openerp.web.D return this._super(); } }); -openerp.web.BufferedDataSet = openerp.web.DataSetStatic.extend({ +instance.web.BufferedDataSet = instance.web.DataSetStatic.extend({ virtual_id_prefix: "one2many_v_id_", debug_mode: true, init: function() { @@ -800,9 +800,9 @@ openerp.web.BufferedDataSet = openerp.web.DataSetStatic.extend({ this.on_change(); }, }); -openerp.web.BufferedDataSet.virtual_id_regex = /^one2many_v_id_.*$/; +instance.web.BufferedDataSet.virtual_id_regex = /^one2many_v_id_.*$/; -openerp.web.ProxyDataSet = openerp.web.DataSetSearch.extend({ +instance.web.ProxyDataSet = instance.web.DataSetSearch.extend({ init: function() { this._super.apply(this, arguments); this.create_function = null; @@ -848,13 +848,13 @@ openerp.web.ProxyDataSet = openerp.web.DataSetSearch.extend({ on_unlink: function(ids) {} }); -openerp.web.Model = openerp.web.CallbackEnabled.extend({ +instance.web.Model = instance.web.CallbackEnabled.extend({ init: function(model_name) { this._super(); this.model_name = model_name; }, rpc: function() { - var c = openerp.connection; + var c = instance.connection; return c.rpc.apply(c, arguments); }, /* @@ -876,7 +876,7 @@ openerp.web.Model = openerp.web.CallbackEnabled.extend({ } }); -openerp.web.CompoundContext = openerp.web.Class.extend({ +instance.web.CompoundContext = instance.web.Class.extend({ init: function () { this.__ref = "compound_context"; this.__contexts = []; @@ -899,7 +899,7 @@ openerp.web.CompoundContext = openerp.web.Class.extend({ } }); -openerp.web.CompoundDomain = openerp.web.Class.extend({ +instance.web.CompoundDomain = instance.web.Class.extend({ init: function () { this.__ref = "compound_domain"; this.__domains = []; From ac4b895a41a7f10a8d151a2cdf81107dfb04e57a Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 17 Apr 2012 13:56:37 +0200 Subject: [PATCH 05/11] [imp] refactored data_export.js bzr revid: nicolas.vanhoren@openerp.com-20120417115637-533ls7fxw0okk7ly --- addons/web/static/src/js/data_export.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/addons/web/static/src/js/data_export.js b/addons/web/static/src/js/data_export.js index 3d15a4e3607..ebe82ddb4b4 100644 --- a/addons/web/static/src/js/data_export.js +++ b/addons/web/static/src/js/data_export.js @@ -1,14 +1,14 @@ -openerp.web.data_export = function(openerp) { -var QWeb = openerp.web.qweb, - _t = openerp.web._t; -openerp.web.DataExport = openerp.web.Dialog.extend({ +openerp.web.data_export = function(instance) { +var QWeb = instance.web.qweb, + _t = instance.web._t; +instance.web.DataExport = instance.web.Dialog.extend({ template: 'ExportTreeView', dialog_title: {toString: function () { return _t("Export Data"); }}, init: function(parent, dataset) { this._super(parent); this.records = {}; this.dataset = dataset; - this.exports = new openerp.web.DataSetSearch( + this.exports = new instance.web.DataSetSearch( this, 'ir.exports', this.dataset.get_context()); }, start: function() { From d5ae31540905b1e4c4eab5156d0182ddb2dd408d Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 17 Apr 2012 13:57:26 +0200 Subject: [PATCH 06/11] [imp] refactored data_import.js bzr revid: nicolas.vanhoren@openerp.com-20120417115726-5zwzwyp1lzdjxwh7 --- addons/web/static/src/js/data_import.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/addons/web/static/src/js/data_import.js b/addons/web/static/src/js/data_import.js index 3054a7784c4..30f9323f723 100644 --- a/addons/web/static/src/js/data_import.js +++ b/addons/web/static/src/js/data_import.js @@ -1,6 +1,6 @@ -openerp.web.data_import = function(openerp) { -var QWeb = openerp.web.qweb, - _t = openerp.web._t; +openerp.web.data_import = function(instance) { +var QWeb = instance.web.qweb, + _t = instance.web._t; /** * Safari does not deal well at all with raw JSON data being returned. As a * result, we're going to cheat by using a pseudo-jsonp: instead of getting @@ -29,7 +29,7 @@ function jsonp(form, attributes, callback) { $(form).ajaxSubmit(attributes); } -openerp.web.DataImport = openerp.web.Dialog.extend({ +instance.web.DataImport = instance.web.Dialog.extend({ template: 'ImportDataView', dialog_title: {toString: function () { return _t("Import Data"); }}, init: function(parent, dataset){ @@ -79,10 +79,10 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ this.$element.delegate('fieldset legend', 'click', function() { $(this).parent().toggleClass('oe-closed'); }); - this.ready.push(new openerp.web.DataSet(this, this.model).call( + this.ready.push(new instance.web.DataSet(this, this.model).call( 'fields_get', [], function (fields) { self.graft_fields(fields); - self.ready.push(new openerp.web.DataSet(self, self.model) + self.ready.push(new instance.web.DataSet(self, self.model) .default_get(_.pluck(self.fields, 'id')).then(function (fields) { _.each(fields, function(val, key) { if (val) { @@ -140,7 +140,7 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ f.fields = []; // only fetch sub-fields to a depth of 2 levels if (level < 2) { - self.ready.push(new openerp.web.DataSet(self, field.relation).call( + self.ready.push(new instance.web.DataSet(self, field.relation).call( 'fields_get', [], function (fields) { self.graft_fields(fields, f, level+1); })); @@ -151,7 +151,7 @@ openerp.web.DataImport = openerp.web.Dialog.extend({ }); }, toggle_import_button: function (newstate) { - openerp.web.dialog(this.$element, 'widget') + instance.web.dialog(this.$element, 'widget') .find('.oe-dialog-import-button') .button('option', 'disabled', !newstate); }, From abd76257a9cdd858d6f8a00218428a93e6e4be1a Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 17 Apr 2012 13:58:05 +0200 Subject: [PATCH 07/11] [imp] refactored dates.js bzr revid: nicolas.vanhoren@openerp.com-20120417115805-z74z6sqdzwkvj0kw --- addons/web/static/src/js/dates.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/addons/web/static/src/js/dates.js b/addons/web/static/src/js/dates.js index d61223113f8..3db48c8412a 100644 --- a/addons/web/static/src/js/dates.js +++ b/addons/web/static/src/js/dates.js @@ -1,5 +1,5 @@ -openerp.web.dates = function(openerp) { +openerp.web.dates = function(instance) { /** * Converts a string to a Date javascript object using OpenERP's @@ -11,7 +11,7 @@ openerp.web.dates = function(openerp) { * @param {String} str A string representing a datetime. * @returns {Date} */ -openerp.web.str_to_datetime = function(str) { +instance.web.str_to_datetime = function(str) { if(!str) { return str; } @@ -38,7 +38,7 @@ openerp.web.str_to_datetime = function(str) { * @param {String} str A string representing a date. * @returns {Date} */ -openerp.web.str_to_date = function(str) { +instance.web.str_to_date = function(str) { if(!str) { return str; } @@ -65,7 +65,7 @@ openerp.web.str_to_date = function(str) { * @param {String} str A string representing a time. * @returns {Date} */ -openerp.web.str_to_time = function(str) { +instance.web.str_to_time = function(str) { if(!str) { return str; } @@ -104,7 +104,7 @@ var zpad = function(str, size) { * @param {Date} obj * @returns {String} A string representing a datetime. */ -openerp.web.datetime_to_str = function(obj) { +instance.web.datetime_to_str = function(obj) { if (!obj) { return false; } @@ -124,7 +124,7 @@ openerp.web.datetime_to_str = function(obj) { * @param {Date} obj * @returns {String} A string representing a date. */ -openerp.web.date_to_str = function(obj) { +instance.web.date_to_str = function(obj) { if (!obj) { return false; } @@ -143,7 +143,7 @@ openerp.web.date_to_str = function(obj) { * @param {Date} obj * @returns {String} A string representing a time. */ -openerp.web.time_to_str = function(obj) { +instance.web.time_to_str = function(obj) { if (!obj) { return false; } From 753fac33ced1574c231d4cb3a693b47eba1f3c49 Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 17 Apr 2012 13:59:16 +0200 Subject: [PATCH 08/11] [imp] refactored formats.js bzr revid: nicolas.vanhoren@openerp.com-20120417115916-k57s4rh3wmbajzyz --- addons/web/static/src/js/formats.js | 82 ++++++++++++++--------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/addons/web/static/src/js/formats.js b/addons/web/static/src/js/formats.js index 53863e63e97..107a923b625 100644 --- a/addons/web/static/src/js/formats.js +++ b/addons/web/static/src/js/formats.js @@ -1,6 +1,6 @@ -openerp.web.formats = function(openerp) { -var _t = openerp.web._t; +openerp.web.formats = function(instance) { +var _t = instance.web._t; /** * Intersperses ``separator`` in ``str`` at the positions indicated by @@ -23,7 +23,7 @@ var _t = openerp.web._t; * @param {String} separator * @returns {String} */ -openerp.web.intersperse = function (str, indices, separator) { +instance.web.intersperse = function (str, indices, separator) { separator = separator || ''; var result = [], last = str.length; @@ -55,10 +55,10 @@ openerp.web.intersperse = function (str, indices, separator) { * @param {String} num * @returns {String} */ -openerp.web.insert_thousand_seps = function (num) { +instance.web.insert_thousand_seps = function (num) { var negative = num[0] === '-'; num = (negative ? num.slice(1) : num); - return (negative ? '-' : '') + openerp.web.intersperse( + return (negative ? '-' : '') + instance.web.intersperse( num, _t.database.parameters.grouping, _t.database.parameters.thousands_sep); }; @@ -69,7 +69,7 @@ openerp.web.insert_thousand_seps = function (num) { * * @param {String} value original format */ -openerp.web.strip_raw_chars = function (value) { +instance.web.strip_raw_chars = function (value) { var isletter = /[a-zA-Z]/, output = []; for(var index=0; index < value.length; ++index) { var character = value[index]; @@ -81,7 +81,7 @@ openerp.web.strip_raw_chars = function (value) { return output.join(''); }; var normalize_format = function (format) { - return Date.normalizeFormat(openerp.web.strip_raw_chars(format)); + return Date.normalizeFormat(instance.web.strip_raw_chars(format)); }; /** * Formats a single atomic value based on a field descriptor @@ -93,7 +93,7 @@ var normalize_format = function (format) { * @param {Object} [descriptor.digits] used for the formatting of floats * @param {String} [value_if_empty=''] returned if the ``value`` argument is considered empty */ -openerp.web.format_value = function (value, descriptor, value_if_empty) { +instance.web.format_value = function (value, descriptor, value_if_empty) { // If NaN value, display as with a `false` (empty cell) if (typeof value === 'number' && isNaN(value)) { value = false; @@ -115,12 +115,12 @@ openerp.web.format_value = function (value, descriptor, value_if_empty) { case 'id': return value.toString(); case 'integer': - return openerp.web.insert_thousand_seps( + return instance.web.insert_thousand_seps( _.str.sprintf('%d', value)); case 'float': var precision = descriptor.digits ? descriptor.digits[1] : 2; var formatted = _.str.sprintf('%.' + precision + 'f', value).split('.'); - formatted[0] = openerp.web.insert_thousand_seps(formatted[0]); + formatted[0] = instance.web.insert_thousand_seps(formatted[0]); return formatted.join(l10n.decimal_point); case 'float_time': var pattern = '%02d:%02d'; @@ -136,17 +136,17 @@ openerp.web.format_value = function (value, descriptor, value_if_empty) { return value[1]; case 'datetime': if (typeof(value) == "string") - value = openerp.web.auto_str_to_date(value); + value = instance.web.auto_str_to_date(value); return value.toString(normalize_format(l10n.date_format) + ' ' + normalize_format(l10n.time_format)); case 'date': if (typeof(value) == "string") - value = openerp.web.auto_str_to_date(value); + value = instance.web.auto_str_to_date(value); return value.toString(normalize_format(l10n.date_format)); case 'time': if (typeof(value) == "string") - value = openerp.web.auto_str_to_date(value); + value = instance.web.auto_str_to_date(value); return value.toString(normalize_format(l10n.time_format)); case 'selection': case 'statusbar': // Each choice is [value, label] @@ -163,7 +163,7 @@ openerp.web.format_value = function (value, descriptor, value_if_empty) { } }; -openerp.web.parse_value = function (value, descriptor, value_if_empty) { +instance.web.parse_value = function (value, descriptor, value_if_empty) { var date_pattern = normalize_format(_t.database.parameters.date_format), time_pattern = normalize_format(_t.database.parameters.time_format); switch (value) { @@ -176,7 +176,7 @@ openerp.web.parse_value = function (value, descriptor, value_if_empty) { var tmp; do { tmp = value; - value = value.replace(openerp.web._t.database.parameters.thousands_sep, ""); + value = value.replace(instance.web._t.database.parameters.thousands_sep, ""); } while(tmp !== value); tmp = Number(value); if (isNaN(tmp)) @@ -190,9 +190,9 @@ openerp.web.parse_value = function (value, descriptor, value_if_empty) { var tmp2 = value; do { tmp = tmp2; - tmp2 = tmp.replace(openerp.web._t.database.parameters.thousands_sep, ""); + tmp2 = tmp.replace(instance.web._t.database.parameters.thousands_sep, ""); } while(tmp !== tmp2); - var reformatted_value = tmp.replace(openerp.web._t.database.parameters.decimal_point, "."); + var reformatted_value = tmp.replace(instance.web._t.database.parameters.decimal_point, "."); var parsed = Number(reformatted_value); if (isNaN(parsed)) throw new Error(value + " is not a correct float"); @@ -205,62 +205,62 @@ openerp.web.parse_value = function (value, descriptor, value_if_empty) { } var float_time_pair = value.split(":"); if (float_time_pair.length != 2) - return factor * openerp.web.parse_value(value, {type: "float"}); - var hours = openerp.web.parse_value(float_time_pair[0], {type: "integer"}); - var minutes = openerp.web.parse_value(float_time_pair[1], {type: "integer"}); + return factor * instance.web.parse_value(value, {type: "float"}); + var hours = instance.web.parse_value(float_time_pair[0], {type: "integer"}); + var minutes = instance.web.parse_value(float_time_pair[1], {type: "integer"}); return factor * (hours + (minutes / 60)); case 'progressbar': - return openerp.web.parse_value(value, {type: "float"}); + return instance.web.parse_value(value, {type: "float"}); case 'datetime': var datetime = Date.parseExact( value, (date_pattern + ' ' + time_pattern)); if (datetime !== null) - return openerp.web.datetime_to_str(datetime); + return instance.web.datetime_to_str(datetime); datetime = Date.parse(value); if (datetime !== null) - return openerp.web.datetime_to_str(datetime); + return instance.web.datetime_to_str(datetime); throw new Error(value + " is not a valid datetime"); case 'date': var date = Date.parseExact(value, date_pattern); if (date !== null) - return openerp.web.date_to_str(date); + return instance.web.date_to_str(date); date = Date.parse(value); if (date !== null) - return openerp.web.date_to_str(date); + return instance.web.date_to_str(date); throw new Error(value + " is not a valid date"); case 'time': var time = Date.parseExact(value, time_pattern); if (time !== null) - return openerp.web.time_to_str(time); + return instance.web.time_to_str(time); time = Date.parse(value); if (time !== null) - return openerp.web.time_to_str(time); + return instance.web.time_to_str(time); throw new Error(value + " is not a valid time"); } return value; }; -openerp.web.auto_str_to_date = function(value, type) { +instance.web.auto_str_to_date = function(value, type) { try { - return openerp.web.str_to_datetime(value); + return instance.web.str_to_datetime(value); } catch(e) {} try { - return openerp.web.str_to_date(value); + return instance.web.str_to_date(value); } catch(e) {} try { - return openerp.web.str_to_time(value); + return instance.web.str_to_time(value); } catch(e) {} throw new Error("'" + value + "' is not a valid date, datetime nor time"); }; -openerp.web.auto_date_to_str = function(value, type) { +instance.web.auto_date_to_str = function(value, type) { switch(type) { case 'datetime': - return openerp.web.datetime_to_str(value); + return instance.web.datetime_to_str(value); case 'date': - return openerp.web.date_to_str(value); + return instance.web.date_to_str(value); case 'time': - return openerp.web.time_to_str(value); + return instance.web.time_to_str(value); default: throw new Error(type + " is not convertible to date, datetime nor time"); } @@ -290,7 +290,7 @@ openerp.web.auto_date_to_str = function(value, type) { * @param {Number} [options.id] current record's id * */ -openerp.web.format_cell = function (row_data, column, options) { +instance.web.format_cell = function (row_data, column, options) { options = options || {}; var attrs = {}; if (options.process_modifiers !== false) { @@ -303,9 +303,9 @@ openerp.web.format_cell = function (row_data, column, options) { '<%-alt%>' + '', { title: column.string || '', - additional_attributes: isNaN(row_data["id"].value) && openerp.web.BufferedDataSet.virtual_id_regex.test(row_data["id"].value) ? + additional_attributes: isNaN(row_data["id"].value) && instance.web.BufferedDataSet.virtual_id_regex.test(row_data["id"].value) ? 'disabled="disabled" class="oe-listview-button-disabled"' : '', - prefix: openerp.connection.prefix, + prefix: instance.connection.prefix, icon: column.icon, alt: column.string || '' }); @@ -320,11 +320,11 @@ openerp.web.format_cell = function (row_data, column, options) { row_data[column.id].value ? 'checked="checked"' : ''); case "binary": var text = _t("Download"), - download_url = _.str.sprintf('/web/binary/saveas?session_id=%s&model=%s&field=%s&id=%d', openerp.connection.session_id, options.model, column.id, options.id); + download_url = _.str.sprintf('/web/binary/saveas?session_id=%s&model=%s&field=%s&id=%d', instance.connection.session_id, options.model, column.id, options.id); if (column.filename) { download_url += '&filename_field=' + column.filename; if (row_data[column.filename]) { - text = _.str.sprintf(_t("Download \"%s\""), openerp.web.format_value( + text = _.str.sprintf(_t("Download \"%s\""), instance.web.format_value( row_data[column.filename].value, {type: 'char'})); } } @@ -340,7 +340,7 @@ openerp.web.format_cell = function (row_data, column, options) { }); } - return _.escape(openerp.web.format_value( + return _.escape(instance.web.format_value( row_data[column.id].value, column, options.value_if_empty)); } From 827964936f77b1edcc81d011986932bdd908ee1e Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Tue, 17 Apr 2012 14:02:10 +0200 Subject: [PATCH 09/11] [imp] refactored search.js bzr revid: nicolas.vanhoren@openerp.com-20120417120210-kejvstgamtpufbeq --- addons/web/static/src/js/search.js | 262 ++++++++++++++--------------- 1 file changed, 131 insertions(+), 131 deletions(-) diff --git a/addons/web/static/src/js/search.js b/addons/web/static/src/js/search.js index 6e1026b48a1..18ac6b78de5 100644 --- a/addons/web/static/src/js/search.js +++ b/addons/web/static/src/js/search.js @@ -1,7 +1,7 @@ -openerp.web.search = function(openerp) { -var QWeb = openerp.web.qweb, - _t = openerp.web._t, - _lt = openerp.web._lt; +openerp.web.search = function(instance) { +var QWeb = instance.web.qweb, + _t = instance.web._t, + _lt = instance.web._lt; _.mixin({ sum: function (obj) { return _.reduce(obj, function (a, b) { return a + b; }, 0); } }); @@ -70,11 +70,11 @@ _.extend(VS.model.SearchFacet.prototype, { } }); -openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.SearchView# */{ +instance.web.SearchView = instance.web.Widget.extend(/** @lends instance.web.SearchView# */{ template: "SearchView", /** - * @constructs openerp.web.SearchView - * @extends openerp.web.OldWidget + * @constructs instance.web.SearchView + * @extends instance.web.OldWidget * * @param parent * @param element_id @@ -178,7 +178,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search var running_count = 0; // get total filters count - var is_group = function (i) { return i instanceof openerp.web.search.FilterGroup; }; + var is_group = function (i) { return i instanceof instance.web.search.FilterGroup; }; var filters_count = _(this.controls).chain() .flatten() .filter(is_group) @@ -212,12 +212,12 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search name: _t("Custom Filters"), filters: _.map(this.custom_filters, function (filter) { // FIXME: handling of ``disabled`` being set - var f = new openerp.web.search.Filter({attrs: { + var f = new instance.web.search.Filter({attrs: { string: filter.name, context: filter.context, domain: filter.domain }}, self); - return new openerp.web.search.FilterGroup([f], self); + return new instance.web.search.FilterGroup([f], self); }), length: 3 }); @@ -225,7 +225,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search return $.when( this.render_column(col1, $('
').appendTo($filters)), this.render_column(col2, $('
').appendTo($filters)), - (new openerp.web.search.Advanced(this).appendTo($drawer))); + (new instance.web.search.Advanced(this).appendTo($drawer))); }, render_column: function (column, $el) { return $.when.apply(null, _(column).map(function (group) { @@ -314,10 +314,10 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search * @param {VS.model.SearchFacet} options.model facet object to render */ make_visualsearch_facet: function (options) { - return new openerp.web.search.FilterGroupFacet(options); + return new instance.web.search.FilterGroupFacet(options); -// if (options.model.get('field') instanceof openerp.web.search.FilterGroup) { -// return new openerp.web.search.FilterGroupFacet(options); +// if (options.model.get('field') instanceof instance.web.search.FilterGroup) { +// return new instance.web.search.FilterGroupFacet(options); // } // return new VS.ui.SearchFacet(options); }, @@ -363,7 +363,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search var filters = []; _.each(items, function (item) { if (filters.length && item.tag !== 'filter') { - group.push(new openerp.web.search.FilterGroup(filters, this)); + group.push(new instance.web.search.FilterGroup(filters, this)); filters = []; } @@ -371,7 +371,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search case 'separator': case 'newline': break; case 'filter': - filters.push(new openerp.web.search.Filter(item, this)); + filters.push(new instance.web.search.Filter(item, this)); break; case 'group': self.make_widgets(item.children, fields, item.attrs.string); @@ -385,7 +385,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search }, this); if (filters.length) { - group.push(new openerp.web.search.FilterGroup(filters, this)); + group.push(new instance.web.search.FilterGroup(filters, this)); } }, /** @@ -394,10 +394,10 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search * * @param {Object} item fields_view_get node for the field * @param {Object} field fields_get result for the field - * @returns openerp.web.search.Field + * @returns instance.web.search.Field */ make_field: function (item, field) { - var obj = openerp.web.search.fields.get_any( [item.attrs.widget, field.type]); + var obj = instance.web.search.fields.get_any( [item.attrs.widget, field.type]); if(obj) { return new (obj) (item, field, this); } else { @@ -460,11 +460,11 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search break; case 'save_filter': var data = this.build_search_data(); - var context = new openerp.web.CompoundContext(); + var context = new instance.web.CompoundContext(); _.each(data.contexts, function(x) { context.add(x); }); - var domain = new openerp.web.CompoundDomain(); + var domain = new instance.web.CompoundDomain(); _.each(data.domains, function(x) { domain.add(x); }); @@ -472,7 +472,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search context.add({"group_by": groupbys}); var dial_html = QWeb.render("SearchView.managed-filters.add"); var $dial = $(dial_html); - openerp.web.dialog($dial, { + instance.web.dialog($dial, { modal: true, title: _t("Filter Entry"), buttons: [ @@ -525,13 +525,13 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search on_add_to_dashboard: function() { this.$element.find(".oe_search-view-filters-management")[0].selectedIndex = 0; var self = this, - menu = openerp.webclient.menu, + menu = instance.webclient.menu, $dialog = $(QWeb.render("SearchView.add_to_dashboard", { dashboards : menu.data.data.children, selected_menu_id : menu.$element.find('a.active').data('menu') })); $dialog.find('input').val(this.fields_view.name); - openerp.web.dialog($dialog, { + instance.web.dialog($dialog, { modal: true, title: _t("Add to Dashboard"), buttons: [ @@ -543,8 +543,8 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search var menu_id = $(this).find("select").val(), title = $(this).find("input").val(), data = self.build_search_data(), - context = new openerp.web.CompoundContext(), - domain = new openerp.web.CompoundDomain(); + context = new instance.web.CompoundContext(), + domain = new instance.web.CompoundDomain(); _.each(data.contexts, function(x) { context.add(x); }); @@ -573,10 +573,10 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search * Performs the search view collection of widget data. * * If the collection went well (all fields are valid), then triggers - * :js:func:`openerp.web.SearchView.on_search`. + * :js:func:`instance.web.SearchView.on_search`. * * If at least one field failed its validation, triggers - * :js:func:`openerp.web.SearchView.on_invalid` instead. + * :js:func:`instance.web.SearchView.on_invalid` instead. * * @param e jQuery event object coming from the "Search" button */ @@ -599,7 +599,7 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search groupbys.push.apply(groupbys, group_by); } } catch (e) { - if (e instanceof openerp.web.search.Invalid) { + if (e instanceof instance.web.search.Invalid) { errors.push(e); } else { throw e; @@ -648,9 +648,9 @@ openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.Search }); /** @namespace */ -openerp.web.search = {}; +instance.web.search = {}; -openerp.web.search.FilterGroupFacet = VS.ui.SearchFacet.extend({ +instance.web.search.FilterGroupFacet = VS.ui.SearchFacet.extend({ events: _.extend({ 'click': 'selectFacet' }, VS.ui.SearchFacet.prototype.events), @@ -682,30 +682,30 @@ openerp.web.search.FilterGroupFacet = VS.ui.SearchFacet.extend({ } }); /** - * Registry of search fields, called by :js:class:`openerp.web.SearchView` to + * Registry of search fields, called by :js:class:`instance.web.SearchView` to * find and instantiate its field widgets. */ -openerp.web.search.fields = new openerp.web.Registry({ - 'char': 'openerp.web.search.CharField', - 'text': 'openerp.web.search.CharField', - 'boolean': 'openerp.web.search.BooleanField', - 'integer': 'openerp.web.search.IntegerField', - 'id': 'openerp.web.search.IntegerField', - 'float': 'openerp.web.search.FloatField', - 'selection': 'openerp.web.search.SelectionField', - 'datetime': 'openerp.web.search.DateTimeField', - 'date': 'openerp.web.search.DateField', - 'many2one': 'openerp.web.search.ManyToOneField', - 'many2many': 'openerp.web.search.CharField', - 'one2many': 'openerp.web.search.CharField' +instance.web.search.fields = new instance.web.Registry({ + 'char': 'instance.web.search.CharField', + 'text': 'instance.web.search.CharField', + 'boolean': 'instance.web.search.BooleanField', + 'integer': 'instance.web.search.IntegerField', + 'id': 'instance.web.search.IntegerField', + 'float': 'instance.web.search.FloatField', + 'selection': 'instance.web.search.SelectionField', + 'datetime': 'instance.web.search.DateTimeField', + 'date': 'instance.web.search.DateField', + 'many2one': 'instance.web.search.ManyToOneField', + 'many2many': 'instance.web.search.CharField', + 'one2many': 'instance.web.search.CharField' }); -openerp.web.search.Invalid = openerp.web.Class.extend( /** @lends openerp.web.search.Invalid# */{ +instance.web.search.Invalid = instance.web.Class.extend( /** @lends instance.web.search.Invalid# */{ /** * Exception thrown by search widgets when they hold invalid values, * which they can not return when asked. * - * @constructs openerp.web.search.Invalid - * @extends openerp.web.Class + * @constructs instance.web.search.Invalid + * @extends instance.web.Class * * @param field the name of the field holding an invalid value * @param value the invalid value @@ -723,13 +723,13 @@ openerp.web.search.Invalid = openerp.web.Class.extend( /** @lends openerp.web.se ); } }); -openerp.web.search.Widget = openerp.web.OldWidget.extend( /** @lends openerp.web.search.Widget# */{ +instance.web.search.Widget = instance.web.OldWidget.extend( /** @lends instance.web.search.Widget# */{ template: null, /** * Root class of all search widgets * - * @constructs openerp.web.search.Widget - * @extends openerp.web.OldWidget + * @constructs instance.web.search.Widget + * @extends instance.web.OldWidget * * @param view the ancestor view of this widget */ @@ -738,14 +738,14 @@ openerp.web.search.Widget = openerp.web.OldWidget.extend( /** @lends openerp.web this.view = view; } }); -openerp.web.search.add_expand_listener = function($root) { +instance.web.search.add_expand_listener = function($root) { $root.find('a.searchview_group_string').click(function (e) { $root.toggleClass('folded expanded'); e.stopPropagation(); e.preventDefault(); }); }; -openerp.web.search.Group = openerp.web.search.Widget.extend({ +instance.web.search.Group = instance.web.search.Widget.extend({ template: 'SearchView.group', init: function (view_section, view, fields) { this._super(view); @@ -755,10 +755,10 @@ openerp.web.search.Group = openerp.web.search.Widget.extend({ } }); -openerp.web.search.Input = openerp.web.search.Widget.extend( /** @lends openerp.web.search.Input# */{ +instance.web.search.Input = instance.web.search.Widget.extend( /** @lends instance.web.search.Input# */{ /** - * @constructs openerp.web.search.Input - * @extends openerp.web.search.Widget + * @constructs instance.web.search.Input + * @extends instance.web.search.Widget * * @param view */ @@ -784,7 +784,7 @@ openerp.web.search.Input = openerp.web.search.Widget.extend( /** @lends openerp. * they apply to this widget, or null if they don't. * * This default implementation will try calling - * :js:func:`openerp.web.search.Input#facet_for` if the widget's name + * :js:func:`instance.web.search.Input#facet_for` if the widget's name * matches the input key * * @param {Object} defaults @@ -820,17 +820,17 @@ openerp.web.search.Input = openerp.web.search.Widget.extend( /** @lends openerp. this.attrs = attrs; } }); -openerp.web.search.FilterGroup = openerp.web.search.Input.extend(/** @lends openerp.web.search.FilterGroup# */{ +instance.web.search.FilterGroup = instance.web.search.Input.extend(/** @lends instance.web.search.FilterGroup# */{ template: 'SearchView.filters', /** * Inclusive group of filters, creates a continuous "button" with clickable * sections (the normal display for filters is to be a self-contained button) * - * @constructs openerp.web.search.FilterGroup - * @extends openerp.web.search.Input + * @constructs instance.web.search.FilterGroup + * @extends instance.web.search.Input * - * @param {Array} filters elements of the group - * @param {openerp.web.SearchView} view view in which the filters are contained + * @param {Array} filters elements of the group + * @param {instance.web.SearchView} view view in which the filters are contained */ init: function (filters, view) { this._super(view); @@ -868,7 +868,7 @@ openerp.web.search.FilterGroup = openerp.web.search.Input.extend(/** @lends open if (!contexts.length) { return; } if (contexts.length === 1) { return contexts[0]; } - return _.extend(new openerp.web.CompoundContext, { + return _.extend(new instance.web.CompoundContext, { __contexts: contexts }); }, @@ -901,7 +901,7 @@ openerp.web.search.FilterGroup = openerp.web.search.Input.extend(/** @lends open for (var i=domains.length; --i;) { domains.unshift(['|']); } - return _.extend(new openerp.web.CompoundDomain(), { + return _.extend(new instance.web.CompoundDomain(), { __domains: domains }); }, @@ -945,7 +945,7 @@ openerp.web.search.FilterGroup = openerp.web.search.Input.extend(/** @lends open }); } }); -openerp.web.search.Filter = openerp.web.search.Input.extend(/** @lends openerp.web.search.Filter# */{ +instance.web.search.Filter = instance.web.search.Input.extend(/** @lends instance.web.search.Filter# */{ template: 'SearchView.filter', /** * Implementation of the OpenERP filters (button with a context and/or @@ -955,8 +955,8 @@ openerp.web.search.Filter = openerp.web.search.Input.extend(/** @lends openerp.w * domains and contexts, converting between facets and filters) is * performed by the filter group. * - * @constructs openerp.web.search.Filter - * @extends openerp.web.search.Input + * @constructs instance.web.search.Filter + * @extends instance.web.search.Input * * @param node * @param view @@ -969,12 +969,12 @@ openerp.web.search.Filter = openerp.web.search.Input.extend(/** @lends openerp.w get_context: function () { }, get_domain: function () { }, }); -openerp.web.search.Field = openerp.web.search.Input.extend( /** @lends openerp.web.search.Field# */ { +instance.web.search.Field = instance.web.search.Input.extend( /** @lends instance.web.search.Field# */ { template: 'SearchView.field', default_operator: '=', /** - * @constructs openerp.web.search.Field - * @extends openerp.web.search.Input + * @constructs instance.web.search.Field + * @extends instance.web.search.Input * * @param view_section * @param field @@ -1005,7 +1005,7 @@ openerp.web.search.Field = openerp.web.search.Input.extend( /** @lends openerp.w if (!(has_value && context)) { return; } - return new openerp.web.CompoundContext(context) + return new instance.web.CompoundContext(context) .set_eval_context({self: val}); }, get_groupby: function () { }, @@ -1036,7 +1036,7 @@ openerp.web.search.Field = openerp.web.search.Input.extend( /** @lends openerp.w this.attrs.operator || this.default_operator, facet); } - return new openerp.web.CompoundDomain(domain) + return new instance.web.CompoundDomain(domain) .set_eval_context({self: val}); } }); @@ -1048,9 +1048,9 @@ openerp.web.search.Field = openerp.web.search.Input.extend( /** @lends openerp.w * * The Javascript and the HTML values are identical (strings) * * @class - * @extends openerp.web.search.Field + * @extends instance.web.search.Field */ -openerp.web.search.CharField = openerp.web.search.Field.extend( /** @lends openerp.web.search.CharField# */ { +instance.web.search.CharField = instance.web.search.Field.extend( /** @lends instance.web.search.CharField# */ { default_operator: 'ilike', complete: function (value) { if (_.isEmpty(value)) { return $.when(null); } @@ -1066,7 +1066,7 @@ openerp.web.search.CharField = openerp.web.search.Field.extend( /** @lends opene }]); } }); -openerp.web.search.NumberField = openerp.web.search.Field.extend(/** @lends openerp.web.search.NumberField# */{ +instance.web.search.NumberField = instance.web.search.Field.extend(/** @lends instance.web.search.NumberField# */{ get_value: function () { if (!this.$element.val()) { return null; @@ -1075,7 +1075,7 @@ openerp.web.search.NumberField = openerp.web.search.Field.extend(/** @lends open check = Number(this.$element.val()); if (isNaN(val) || val !== check) { this.$element.addClass('error'); - throw new openerp.web.search.Invalid( + throw new instance.web.search.Invalid( this.attrs.name, this.$element.val(), this.error_message); } this.$element.removeClass('error'); @@ -1084,13 +1084,13 @@ openerp.web.search.NumberField = openerp.web.search.Field.extend(/** @lends open }); /** * @class - * @extends openerp.web.search.NumberField + * @extends instance.web.search.NumberField */ -openerp.web.search.IntegerField = openerp.web.search.NumberField.extend(/** @lends openerp.web.search.IntegerField# */{ +instance.web.search.IntegerField = instance.web.search.NumberField.extend(/** @lends instance.web.search.IntegerField# */{ error_message: _t("not a valid integer"), parse: function (value) { try { - return openerp.web.parse_value(value, {'widget': 'integer'}); + return instance.web.parse_value(value, {'widget': 'integer'}); } catch (e) { return NaN; } @@ -1098,13 +1098,13 @@ openerp.web.search.IntegerField = openerp.web.search.NumberField.extend(/** @len }); /** * @class - * @extends openerp.web.search.NumberField + * @extends instance.web.search.NumberField */ -openerp.web.search.FloatField = openerp.web.search.NumberField.extend(/** @lends openerp.web.search.FloatField# */{ +instance.web.search.FloatField = instance.web.search.NumberField.extend(/** @lends instance.web.search.FloatField# */{ error_message: _t("not a valid number"), parse: function (value) { try { - return openerp.web.parse_value(value, {'widget': 'float'}); + return instance.web.parse_value(value, {'widget': 'float'}); } catch (e) { return NaN; } @@ -1112,9 +1112,9 @@ openerp.web.search.FloatField = openerp.web.search.NumberField.extend(/** @lends }); /** * @class - * @extends openerp.web.search.Field + * @extends instance.web.search.Field */ -openerp.web.search.SelectionField = openerp.web.search.Field.extend(/** @lends openerp.web.search.SelectionField# */{ +instance.web.search.SelectionField = instance.web.search.Field.extend(/** @lends instance.web.search.SelectionField# */{ // This implementation is a basic