From fca894050a13315f05f26b1fb4ec833d72916356 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 11 Jan 2012 12:06:48 +0100 Subject: [PATCH] [IMP] Refactored web.Dialog (again) bzr revid: fme@openerp.com-20120111110648-thxst5ot0te60fj5 --- addons/web/static/src/js/chrome.js | 26 ++++++++++----------- addons/web/static/src/js/view_editor.js | 12 ++++------ addons/web/static/src/js/view_form.js | 5 ++-- addons/web/static/src/js/views.js | 1 - addons/web_process/static/src/js/process.js | 2 +- 5 files changed, 21 insertions(+), 25 deletions(-) diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 520345e1e23..edc703cf403 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -36,7 +36,7 @@ openerp.web.Notification = openerp.web.Widget.extend(/** @lends openerp.web.Not }); -openerp.web.Dialog = openerp.web.OldWidget.extend(/** @lends openerp.web.Dialog# */{ +openerp.web.Dialog = openerp.web.Widget.extend(/** @lends openerp.web.Dialog# */{ dialog_title: "", identifier_prefix: 'dialog', /** @@ -46,9 +46,12 @@ openerp.web.Dialog = openerp.web.OldWidget.extend(/** @lends openerp.web.Dialog# * @param parent * @param options */ - init: function (parent, options) { + init: function (parent, options, content) { var self = this; this._super(parent); + if (content) { + this.$element = content instanceof $ ? content : $(content); + } this.dialog_options = { modal: true, destroy_on_close: true, @@ -72,6 +75,11 @@ openerp.web.Dialog = openerp.web.OldWidget.extend(/** @lends openerp.web.Dialog# if (options) { _.extend(this.dialog_options, options); } + if (this.dialog_options.autoOpen) { + this.open(); + } else { + this.$element.dialog(this.get_options()); + } }, get_options: function(options) { var self = this, @@ -103,11 +111,6 @@ openerp.web.Dialog = openerp.web.OldWidget.extend(/** @lends openerp.web.Dialog# return parseInt(val, 10); } }, - start: function () { - this.$element.dialog(this.dialog_options); - this._super(); - return this; - }, open: function(options) { // TODO fme: bind window on resize if (this.template) { @@ -195,13 +198,12 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({ } var dialog = new openerp.web.Dialog(this, { title: "OpenERP " + _.str.capitalize(this.error.type), - autoOpen: true, width: '80%', height: '50%', min_width: '800px', min_height: '600px', buttons: buttons - }).start(); + }).open(); dialog.$element.html(QWeb.render('CrashManagerError', {session: openerp.connection, error: error})); }, }); @@ -782,8 +784,7 @@ openerp.web.Header = openerp.web.Widget.extend(/** @lends openerp.web.Header# * } } ] - }); - this.dialog.start().open(); + }).open(); action_manager.appendTo(this.dialog); action_manager.render(this.dialog); }, @@ -793,8 +794,7 @@ openerp.web.Header = openerp.web.Widget.extend(/** @lends openerp.web.Header# * this.dialog = new openerp.web.Dialog(this, { title: _t("Change Password"), width : 'auto' - }); - this.dialog.start().open(); + }).open(); this.dialog.$element.html(QWeb.render("Change_Pwd", self)); this.dialog.$element.find("form[name=change_password_form]").validate({ submitHandler: function (form) { diff --git a/addons/web/static/src/js/view_editor.js b/addons/web/static/src/js/view_editor.js index 3635b988318..3461c9f658e 100644 --- a/addons/web/static/src/js/view_editor.js +++ b/addons/web/static/src/js/view_editor.js @@ -47,7 +47,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ {text: _t("Remove"), click: function() { self.do_delete_view(); }}, {text: _t("Close"), click: function() { self.view_edit_dialog.close(); }} ] - }).start().open(); + }).open(); this.main_view_id = this.parent.fields_view.view_id; this.action_manager = new openerp.web.ActionManager(this); this.action_manager.appendTo(this.view_edit_dialog); @@ -92,8 +92,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ }}, {text: _t("Cancel"), click: function () { self.create_view_dialog.close(); }} ] - }); - this.create_view_dialog.start().open(); + }).open(); var view_widget = [{'name': 'view_name', 'string':'View Name', 'type': 'char', 'required': true, 'value' : this.model + '.custom_' + Math.round(Math.random() * 1000)}, {'name': 'view_type', 'string': 'View Type', 'type': 'selection', 'required': true, 'value': 'Form', 'selection': [['',''],['tree', 'Tree'],['form', 'Form'],['graph', 'Graph'],['calendar', 'Calender']]}, {'name': 'proirity', 'string': 'Priority', 'type': 'float', 'required': true, 'value':'16'}]; @@ -382,7 +381,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ self.edit_xml_dialog.close(); }} ] - }).start().open(); + }).open(); var no_property_att = []; _.each(_PROPERTIES, function(val, key) { if (! val.length) no_property_att.push(key); @@ -769,8 +768,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ }}, {text: _t("Cancel"), click: function () { self.edit_node_dialog.close(); }} ] - }); - this.edit_node_dialog.start().open(); + }).open(); var _PROPERTIES_ATTRIBUTES = { 'name' : {'name':'name', 'string': 'Name', 'type': 'char'}, 'string' : {'name':'string', 'string': 'String', 'type': 'char'}, @@ -896,7 +894,7 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({ }}, {text: _t("Cancel"), click: function() { self.add_node_dialog.close(); }} ] - }).start().open(); + }).open(); this.add_node_dialog.$element.append('
'); var table_selector = self.add_node_dialog.$element.find('table[id=rec_table] tbody'); _.each(render_list, function(node) { diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 2d0cf214135..48b90216907 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -1698,9 +1698,8 @@ openerp.web.form.dialog = function(content, options) { height: 'auto', min_width: '800px' }, options || {}); - options.autoOpen = true; - var dialog = new openerp.web.Dialog(null, options).open(); - return dialog.$element.html(content); + var dialog = new openerp.web.Dialog(null, options, content).open(); + return dialog.$element; }; openerp.web.form.FieldMany2One = openerp.web.form.Field.extend({ diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 18119650262..79060e64b88 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -137,7 +137,6 @@ session.web.ActionManager = session.web.Widget.extend({ this.dialog = new session.web.Dialog(this, { width: '80%' }); if(on_close) this.dialog.on_close.add(on_close); - this.dialog.start(); } else { this.dialog_viewmanager.stop(); } diff --git a/addons/web_process/static/src/js/process.js b/addons/web_process/static/src/js/process.js index 8d4396ba403..52a3d5c7656 100644 --- a/addons/web_process/static/src/js/process.js +++ b/addons/web_process/static/src/js/process.js @@ -286,7 +286,7 @@ openerp.web_process = function (openerp) { $(this).dialog('destroy'); }} ] - }).start().open(); + }).open(); action_manager.appendTo(dialog.$element); action_manager.do_action({