[IMP] mark a bunch of dialog stuff as exportable (mostly buttons, but also dialog titles)

bzr revid: xmo@openerp.com-20111215104031-h2xjkf0zwf8x8zjk
This commit is contained in:
Xavier Morel 2011-12-15 11:40:31 +01:00
parent 68ff6cb98a
commit b5a797ba0a
9 changed files with 146 additions and 172 deletions

View File

@ -2,7 +2,8 @@
* OpenERP Web chrome * OpenERP Web chrome
*---------------------------------------------------------*/ *---------------------------------------------------------*/
openerp.web.chrome = function(openerp) { openerp.web.chrome = function(openerp) {
var QWeb = openerp.web.qweb; var QWeb = openerp.web.qweb,
_t = openerp.web._t;
openerp.web.Notification = openerp.web.Widget.extend(/** @lends openerp.web.Notification# */{ openerp.web.Notification = openerp.web.Widget.extend(/** @lends openerp.web.Notification# */{
template: 'Notification', template: 'Notification',
@ -157,11 +158,9 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({
on_managed_error: function(error) { on_managed_error: function(error) {
$('<div>' + QWeb.render('DialogWarning', {error: error}) + '</div>').dialog({ $('<div>' + QWeb.render('DialogWarning', {error: error}) + '</div>').dialog({
title: "OpenERP " + _.str.capitalize(error.type), title: "OpenERP " + _.str.capitalize(error.type),
buttons: { buttons: [
Ok: function() { {text: _t("Ok"), click: function() { $(this).dialog("close"); }}
$(this).dialog("close"); ]
}
}
}); });
}, },
on_traceback: function(error) { on_traceback: function(error) {
@ -172,11 +171,9 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({
height: '90%', height: '90%',
min_width: '800px', min_width: '800px',
min_height: '600px', min_height: '600px',
buttons: { buttons: [
Ok: function() { {text: _t("Ok"), click: function() { $(this).dialog("close"); }}
$(this).dialog("close"); ]
}
}
}).start(); }).start();
dialog.$element.html(QWeb.render('DialogTraceback', {error: error})); dialog.$element.html(QWeb.render('DialogTraceback', {error: error}));
} }
@ -368,11 +365,9 @@ openerp.web.Database = openerp.web.Widget.extend(/** @lends openerp.web.Database
return $('<div>').dialog({ return $('<div>').dialog({
modal: true, modal: true,
title: error.title, title: error.title,
buttons: { buttons: [
Ok: function() { {text: _t("Ok"), click: function() { $(this).dialog("close"); }}
$(this).dialog("close"); ]
}
}
}).html(error.error); }).html(error.error);
}, },
do_create: function() { do_create: function() {
@ -680,7 +675,7 @@ openerp.web.Header = openerp.web.Widget.extend(/** @lends openerp.web.Header# *
self.rpc("/web/webclient/version_info", {}).then(function(res) { self.rpc("/web/webclient/version_info", {}).then(function(res) {
var $help = $(QWeb.render("About-Page", {version_info: res})); var $help = $(QWeb.render("About-Page", {version_info: res}));
$help.dialog({autoOpen: true, $help.dialog({autoOpen: true,
modal: true, width: 960, title: "About"}); modal: true, width: 960, title: _t("About")});
}); });
}, },
shortcut_load :function(){ shortcut_load :function(){
@ -760,25 +755,22 @@ openerp.web.Header = openerp.web.Widget.extend(/** @lends openerp.web.Header# *
}); });
this.dialog = new openerp.web.Dialog(this,{ this.dialog = new openerp.web.Dialog(this,{
modal: true, modal: true,
title: 'Preferences', title: _t("Preferences"),
width: 600, width: 600,
height: 500, height: 500,
buttons: { buttons: [
"Change password": function(){ {text: _t("Change password"), click: function(){ self.change_password(); }},
self.change_password(); {text: _t("Cancel"), click: function(){ $(this).dialog('destroy'); }},
}, {text: _t("Save"), click: function(){
Cancel: function(){ var inner_viewmanager = action_manager.inner_viewmanager;
$(this).dialog('destroy'); inner_viewmanager.views[inner_viewmanager.active_view].controller.do_save()
}, .then(function() {
Save: function(){ self.dialog.stop();
var inner_viewmanager = action_manager.inner_viewmanager; window.location.reload();
inner_viewmanager.views[inner_viewmanager.active_view].controller.do_save() });
.then(function() { }
self.dialog.stop();
window.location.reload();
});
} }
} ]
}); });
this.dialog.start().open(); this.dialog.start().open();
action_manager.appendTo(this.dialog); action_manager.appendTo(this.dialog);
@ -789,7 +781,7 @@ openerp.web.Header = openerp.web.Widget.extend(/** @lends openerp.web.Header# *
var self = this; var self = this;
this.dialog = new openerp.web.Dialog(this,{ this.dialog = new openerp.web.Dialog(this,{
modal : true, modal : true,
title : 'Change Password', title: _t("Change Password"),
width : 'auto', width : 'auto',
height : 'auto' height : 'auto'
}); });
@ -814,11 +806,9 @@ openerp.web.Header = openerp.web.Widget.extend(/** @lends openerp.web.Header# *
return $('<div>').dialog({ return $('<div>').dialog({
modal: true, modal: true,
title: error.title, title: error.title,
buttons: { buttons: [
Ok: function() { {text: _("Ok"), click: function() { $(this).dialog("close"); }}
$(this).dialog("close"); ]
}
}
}).html(error.error); }).html(error.error);
}, },
on_logout: function() { on_logout: function() {

View File

@ -1,8 +1,9 @@
openerp.web.data_export = function(openerp) { openerp.web.data_export = function(openerp) {
var QWeb = openerp.web.qweb; var QWeb = openerp.web.qweb,
_t = openerp.web._t;
openerp.web.DataExport = openerp.web.Dialog.extend({ openerp.web.DataExport = openerp.web.Dialog.extend({
template: 'ExportTreeView', template: 'ExportTreeView',
dialog_title: 'Export Data', dialog_title: {toString: function () { return _t("Export Data"); }},
init: function(parent, dataset) { init: function(parent, dataset) {
this._super(parent); this._super(parent);
this.records = {}; this.records = {};
@ -18,14 +19,10 @@ openerp.web.DataExport = openerp.web.Dialog.extend({
width: '55%', width: '55%',
height: 'auto', height: 'auto',
position: 'top', position: 'top',
buttons : { buttons : [
"Close" : function() { {text: _t("Close"), click: function() { self.close(); }},
self.close(); {text: _t("Export To File"), click: function() { self.on_click_export_data(); }}
}, ],
"Export To File" : function() {
self.on_click_export_data();
}
},
close: function(event, ui){ self.close();} close: function(event, ui){ self.close();}
}); });
self.$element.removeClass('ui-dialog-content ui-widget-content'); self.$element.removeClass('ui-dialog-content ui-widget-content');

View File

@ -31,7 +31,7 @@ function jsonp(form, attributes, callback) {
openerp.web.DataImport = openerp.web.Dialog.extend({ openerp.web.DataImport = openerp.web.Dialog.extend({
template: 'ImportDataView', template: 'ImportDataView',
dialog_title: "Import Data", dialog_title: {toString: function () { return _t("Import Data"); }},
init: function(parent, dataset){ init: function(parent, dataset){
var self = this; var self = this;
this._super(parent, {}); this._super(parent, {});

View File

@ -35,28 +35,19 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
pager: false, pager: false,
radio: true, radio: true,
select_view_id: self.parent.fields_view.view_id select_view_id: self.parent.fields_view.view_id
}, }
}; };
this.view_edit_dialog = new openerp.web.Dialog(this, { this.view_edit_dialog = new openerp.web.Dialog(this, {
modal: true, modal: true,
title: 'ViewEditor', title: _t("ViewEditor"),
width: 750, width: 750,
height: 500, height: 500,
buttons: { buttons: [
"Create": function(){ {text: _t("Create"), click: function() { self.on_create_view(); }},
self.on_create_view(); {text: _t("Edit"), click: function() { self.xml_element_id = 0; self.get_arch(); }},
}, {text: _t("Remove"), click: function() { self.do_delete_view(); }},
"Edit": function(){ {text: _t("Close"), click: function() { self.view_edit_dialog.close(); }}
self.xml_element_id = 0; ]
self.get_arch();
},
"Remove": function(){
self.do_delete_view();
},
"Close": function(){
self.view_edit_dialog.close();
}
},
}).start().open(); }).start().open();
this.main_view_id = this.parent.fields_view.view_id; this.main_view_id = this.parent.fields_view.view_id;
this.action_manager = new openerp.web.ActionManager(this); this.action_manager = new openerp.web.ActionManager(this);
@ -77,36 +68,34 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
var self = this; var self = this;
this.create_view_dialog = new openerp.web.Dialog(this, { this.create_view_dialog = new openerp.web.Dialog(this, {
modal: true, modal: true,
title: _.str.sprintf("Create a view (%s)", self.model), title: _.str.sprintf(_t("Create a view (%s)"), self.model),
width: 500, width: 500,
height: 400, height: 400,
buttons: { buttons: [
"Save": function(){ {text: _t("Save"), click: function () {
var view_values = {}; var view_values = {};
var warn = false; var warn = false;
_.each(self.create_view_widget, function(widget) { _.each(self.create_view_widget, function(widget) {
if (widget.is_invalid) { if (widget.is_invalid) {
warn = true; warn = true;
return false; return false;
};
if (widget.dirty && !widget.is_invalid) {
view_values[widget.name] = widget.get_value();
}
});
if (warn) {
self.on_valid_create_view(self.create_view_widget);
} else {
$.when(self.do_save_view(view_values)).then(function() {
self.create_view_dialog.close();
var controller = self.action_manager.inner_viewmanager.views[self.action_manager.inner_viewmanager.active_view].controller;
controller.reload_content();
});
} }
}, if (widget.dirty && !widget.is_invalid) {
"Cancel": function(){ view_values[widget.name] = widget.get_value();
self.create_view_dialog.close(); }
});
if (warn) {
self.on_valid_create_view(self.create_view_widget);
} else {
$.when(self.do_save_view(view_values)).then(function() {
self.create_view_dialog.close();
var controller = self.action_manager.inner_viewmanager.views[self.action_manager.inner_viewmanager.active_view].controller;
controller.reload_content();
});
} }
} }},
{text: _t("Cancel"), click: function () { self.create_view_dialog.close(); }}
]
}); });
this.create_view_dialog.start().open(); this.create_view_dialog.start().open();
var view_widget = [{'name': 'view_name', 'string':'View Name', 'type': 'char', 'required': true, 'value' : this.model + '.custom_' + Math.round(Math.random() * 1000)}, var view_widget = [{'name': 'view_name', 'string':'View Name', 'type': 'char', 'required': true, 'value' : this.model + '.custom_' + Math.round(Math.random() * 1000)},
@ -375,11 +364,11 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
this.one_object = one_object; this.one_object = one_object;
this.edit_xml_dialog = new openerp.web.Dialog(this, { this.edit_xml_dialog = new openerp.web.Dialog(this, {
modal: true, modal: true,
title: _.str.sprintf("View Editor %d - %s", self.main_view_id, self.model), title: _.str.sprintf(_t("View Editor %d - %s"), self.main_view_id, self.model),
width: 750, width: 750,
height: 500, height: 500,
buttons: { buttons: [
"Preview": function() { {text: _t("Preview"), click: function() {
var action = { var action = {
context: self.session.user_context, context: self.session.user_context,
res_model: self.model, res_model: self.model,
@ -389,16 +378,16 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
flags: { flags: {
sidebar: false, sidebar: false,
views_switcher: false, views_switcher: false,
action_buttons: false, action_buttons: false
}, }
}; };
var action_manager = new openerp.web.ActionManager(self); var action_manager = new openerp.web.ActionManager(self);
action_manager.do_action(action); action_manager.do_action(action);
}, }},
"Close": function(){ {text: _t("Close"), click: function(){
self.edit_xml_dialog.close(); self.edit_xml_dialog.close();
} }}
} ]
}).start().open(); }).start().open();
var no_property_att = []; var no_property_att = [];
_.each(_PROPERTIES, function(val, key) { _.each(_PROPERTIES, function(val, key) {
@ -764,17 +753,17 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
var self = this; var self = this;
this.edit_node_dialog = new openerp.web.Dialog(this,{ this.edit_node_dialog = new openerp.web.Dialog(this,{
modal: true, modal: true,
title: 'Properties', title: _t("Properties"),
width: 500, width: 500,
height: 400, height: 400,
buttons: { buttons: [
"Update": function(){ {text: _t("Update"), click: function () {
var warn = false, update_values = []; var warn = false, update_values = [];
_.each(self.edit_widget, function(widget) { _.each(self.edit_widget, function(widget) {
if (widget.is_invalid) { if (widget.is_invalid) {
warn = true; warn = true;
return false; return false;
}; }
if (widget.dirty && !widget.is_invalid) { if (widget.dirty && !widget.is_invalid) {
update_values.push([widget.name, widget.get_value()]); update_values.push([widget.name, widget.get_value()]);
} }
@ -785,11 +774,9 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
self.do_save_update_arch("update_node", update_values); self.do_save_update_arch("update_node", update_values);
self.edit_node_dialog.close(); self.edit_node_dialog.close();
} }
}, }},
"Cancel": function(){ {text: _t("Cancel"), click: function () { self.edit_node_dialog.close(); }}
self.edit_node_dialog.close(); ]
}
}
}); });
this.edit_node_dialog.start().open(); this.edit_node_dialog.start().open();
var _PROPERTIES_ATTRIBUTES = { var _PROPERTIES_ATTRIBUTES = {
@ -893,32 +880,32 @@ openerp.web.ViewEditor = openerp.web.Widget.extend({
this.add_widget = []; this.add_widget = [];
this.add_node_dialog = new openerp.web.Dialog(this,{ this.add_node_dialog = new openerp.web.Dialog(this,{
modal: true, modal: true,
title: 'Properties', title: _t("Properties"),
width: 450, width: 450,
height: 190, height: 190,
buttons: { buttons: [
"Update": function(){ {text: _t("Update"), click: function() {
var check_add_node = true, values = {}; var check_add_node = true, values = {};
_.each(self.add_widget, function(widget) { _.each(self.add_widget, function(widget) {
values[widget.name] = widget.get_value() || false; values[widget.name] = widget.get_value() || false;
}); });
(values.position == "Inside")? (values.position == "Inside")?
check_add_node =(_.include(_CHILDREN[properties[0]],values.node_type))?true:false: check_add_node =(_.include(_CHILDREN[properties[0]],values.node_type))?true:false:
check_add_node =(_.include(_CHILDREN[properties[1]],values.node_type))?true:false; check_add_node =(_.include(_CHILDREN[properties[1]],values.node_type))?true:false;
if(values.node_type == "field" && check_add_node ) if(values.node_type == "field" && check_add_node )
{check_add_node = (values.field_value != " ")?true:false; {check_add_node = (values.field_value != " ")?true:false;
}
if(check_add_node){
var tag = (values.node_type == "field")?
_.str.sprintf("<%s name='%s'> </%s>",values.node_type,values.field_value,values.node_type):
_.str.sprintf("<%s> </%s>",values.node_type,values.node_type);
self.do_save_update_arch("add_node", [tag, values.position]);
}else{alert("Can't Update View");}
},
"Cancel": function(){
self.add_node_dialog.close();
} }
} if(check_add_node){
var tag = (values.node_type == "field")?
_.str.sprintf("<%s name='%s'> </%s>",values.node_type,values.field_value,values.node_type):
_.str.sprintf("<%s> </%s>",values.node_type,values.node_type);
self.do_save_update_arch("add_node", [tag, values.position]);
} else {
alert("Can't Update View");
}
}},
{text: _t("Cancel"), click: function() { self.add_node_dialog.close(); }}
]
}).start().open(); }).start().open();
this.add_node_dialog.$element.append('<table id="rec_table" style="width:420px" class="oe_forms"><tbody><tr></tbody></table>'); 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'); var table_selector = self.add_node_dialog.$element.find('table[id=rec_table] tbody');

View File

@ -337,11 +337,9 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
if (!_.isEmpty(result.warning)) { if (!_.isEmpty(result.warning)) {
$(QWeb.render("DialogWarning", result.warning)).dialog({ $(QWeb.render("DialogWarning", result.warning)).dialog({
modal: true, modal: true,
buttons: { buttons: [
Ok: function() { {text: _t("Ok"), click: function() { $(this).dialog("close"); }}
$(this).dialog("close"); ]
}
}
}); });
} }
if (result.domain) { if (result.domain) {
@ -1053,18 +1051,20 @@ openerp.web.form.WidgetButton = openerp.web.form.Widget.extend({
var dialog = $('<div>' + self.node.attrs.confirm + '</div>').dialog({ var dialog = $('<div>' + self.node.attrs.confirm + '</div>').dialog({
title: _t('Confirm'), title: _t('Confirm'),
modal: true, modal: true,
buttons: { buttons: [
Ok: function() { {text: _t("Ok"), click: function() {
self.on_confirmed().then(function() { self.on_confirmed().then(function() {
def.resolve(); def.resolve();
}); });
$(this).dialog("close"); $(this).dialog("close");
}
}, },
Cancel: function() { {text: _t("Cancel"), click: function() {
def.resolve(); def.resolve();
$(this).dialog("close"); $(this).dialog("close");
}
} }
} ]
}); });
return def.promise(); return def.promise();
} else { } else {

View File

@ -840,7 +840,7 @@ session.web.Sidebar = session.web.Widget.extend({
}); });
session.web.TranslateDialog = session.web.Dialog.extend({ session.web.TranslateDialog = session.web.Dialog.extend({
dialog_title: _t("Translations"), dialog_title: {toString: function () { return _t("Translations"); }},
init: function(view) { init: function(view) {
// TODO fme: should add the language to fields_view_get because between the fields view get // TODO fme: should add the language to fields_view_get because between the fields view get
// and the moment the user opens the translation dialog, the user language could have been changed // and the moment the user opens the translation dialog, the user language could have been changed

View File

@ -1,5 +1,6 @@
openerp.web_dashboard = function(openerp) { openerp.web_dashboard = function(openerp) {
var QWeb = openerp.web.qweb; var QWeb = openerp.web.qweb,
_t = openerp.web._t;
if (!openerp.web_dashboard) { if (!openerp.web_dashboard) {
/** @namespace */ /** @namespace */
@ -59,7 +60,7 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
}; };
var $dialog = $('<div>').dialog({ var $dialog = $('<div>').dialog({
modal: true, modal: true,
title: 'Edit Layout', title: _t("Edit Layout"),
width: 'auto', width: 'auto',
height: 'auto' height: 'auto'
}).html(QWeb.render('DashBoard.layouts', qdict)); }).html(QWeb.render('DashBoard.layouts', qdict));

View File

@ -3,7 +3,8 @@
*---------------------------------------------------------*/ *---------------------------------------------------------*/
openerp.web_diagram = function (openerp) { openerp.web_diagram = function (openerp) {
var QWeb = openerp.web.qweb; var QWeb = openerp.web.qweb,
_t = openerp.web._t;
openerp.web.views.add('diagram', 'openerp.web.DiagramView'); openerp.web.views.add('diagram', 'openerp.web.DiagramView');
openerp.web.DiagramView = openerp.web.View.extend({ openerp.web.DiagramView = openerp.web.View.extend({
searchable: false, searchable: false,
@ -203,19 +204,18 @@ openerp.web.DiagramView = openerp.web.View.extend({
var dialog = new openerp.web.Dialog(this, { var dialog = new openerp.web.Dialog(this, {
width: 800, width: 800,
height: 600, height: 600,
buttons : { buttons : [
Cancel : function() { {text: _t("Cancel"), click: function() { $(this).dialog('destroy'); }},
$(this).dialog('destroy'); {text: _t("Save"), click: function() {
}, var form_view = action_manager.inner_viewmanager.views.form.controller;
Save : function() {
var form_view = action_manager.inner_viewmanager.views.form.controller;
form_view.do_save(function() { form_view.do_save(function() {
self.dataset.read_index(_.keys(self.fields_view.fields), self.on_diagram_loaded); self.dataset.read_index(_.keys(self.fields_view.fields), self.on_diagram_loaded);
}); });
$(this).dialog('destroy'); $(this).dialog('destroy');
}
} }
} ]
}).start().open(); }).start().open();
action_manager.appendTo(dialog.$element); action_manager.appendTo(dialog.$element);
action_manager.do_action({ action_manager.do_action({

View File

@ -1,5 +1,6 @@
openerp.web_process = function (openerp) { openerp.web_process = function (openerp) {
var QWeb = openerp.web.qweb; var QWeb = openerp.web.qweb,
_t = openerp.web._t;
openerp.web.ViewManager.include({ openerp.web.ViewManager.include({
start: function() { start: function() {
this._super(); this._super();
@ -275,19 +276,17 @@ openerp.web_process = function (openerp) {
var dialog = new openerp.web.Dialog(this, { var dialog = new openerp.web.Dialog(this, {
width: 800, width: 800,
height: 600, height: 600,
buttons : { buttons : [
Cancel : function() { {text: _t("Cancel"), click: function() { $(this).dialog('destroy'); }},
$(this).dialog('destroy'); {text: _t("Save"), click: function() {
},
Save : function() {
var form_view = action_manager.inner_viewmanager.views.form.controller; var form_view = action_manager.inner_viewmanager.views.form.controller;
form_view.do_save(function() { form_view.do_save(function() {
self.initialize_process_view(); self.initialize_process_view();
}); });
$(this).dialog('destroy'); $(this).dialog('destroy');
} }}
} ]
}).start().open(); }).start().open();
action_manager.appendTo(dialog.$element); action_manager.appendTo(dialog.$element);