[fix] problem in form open popup a form select create popup

lp bug: https://launchpad.net/bugs/888395 fixed

bzr revid: nicolas.vanhoren@openerp.com-20111110093221-u1ry76juajt6c1lz
This commit is contained in:
niv-openerp
2011-11-10 10:32:21 +01:00
parent 4a48b9abad
commit 390b83c7fc
2 changed files with 10 additions and 11 deletions
+6 -9
View File
@@ -887,8 +887,11 @@ openerp.web.Widget = openerp.web.CallbackEnabled.extend(/** @lends openerp.web.W
*/
render_element: function() {
var rendered = this.render();
if (rendered || rendered === "")
this.$element = $(rendered);
if (rendered) {
var elem = $(rendered);
this.$element.replaceWith(elem);
this.$element = elem;
}
return this;
},
/**
@@ -900,7 +903,7 @@ openerp.web.Widget = openerp.web.CallbackEnabled.extend(/** @lends openerp.web.W
render: function (additional) {
if (this.template)
return openerp.web.qweb.render(this.template, _.extend({widget: this}, additional || {}));
return false;
return null;
},
/**
* Method called after rendering. Mostly used to bind actions, perform asynchronous
@@ -912,12 +915,6 @@ openerp.web.Widget = openerp.web.CallbackEnabled.extend(/** @lends openerp.web.W
* @returns {jQuery.Deferred}
*/
start: function() {
/* The default implementation is only useful for retro-compatibility, it is
not necessary to call it using _super() when using Widget for new components. */
if (!this.$element) {
var tmp = document.getElementById(this.element_id);
this.$element = tmp ? $(tmp) : undefined;
}
return $.Deferred().done().promise();
},
/**
+4 -2
View File
@@ -2419,7 +2419,8 @@ openerp.web.form.SelectCreatePopup = openerp.web.OldWidget.extend(/** @lends ope
}, read_function: null});
this.initial_ids = this.options.initial_ids;
this.created_elements = [];
openerp.web.form.dialog(this.render(), {close:function() {
this.render_element();
openerp.web.form.dialog(this.$element, {close:function() {
self.check_exit();
}});
this.start();
@@ -2607,7 +2608,8 @@ openerp.web.form.FormOpenPopup = openerp.web.OldWidget.extend(/** @lends openerp
this.row_id = row_id;
this.context = context || {};
this.options = _.defaults(options || {}, {"auto_write": true});
jQuery(this.render()).dialog({title: '',
this.render_element();
this.$element.dialog({title: '',
modal: true,
width: 960,
height: 600});