[IMP] Refactored web.Dialog (again)

bzr revid: fme@openerp.com-20120111110648-thxst5ot0te60fj5
This commit is contained in:
Fabien Meghazi 2012-01-11 12:06:48 +01:00
parent 2b736ee2cf
commit fca894050a
5 changed files with 21 additions and 25 deletions

View File

@ -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) {

View File

@ -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('<table id="rec_table" style="width:420px" class="oe_forms"><tbody><tr></tbody></table>');
var table_selector = self.add_node_dialog.$element.find('table[id=rec_table] tbody');
_.each(render_list, function(node) {

View File

@ -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({

View File

@ -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();
}

View File

@ -286,7 +286,7 @@ openerp.web_process = function (openerp) {
$(this).dialog('destroy');
}}
]
}).start().open();
}).open();
action_manager.appendTo(dialog.$element);
action_manager.do_action({