From 265d9e1ef4efebc15d5d04ef412de9f5452296c4 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Fri, 16 Dec 2011 12:20:54 +0100 Subject: [PATCH] [ADD] translatable name to views lp bug: https://launchpad.net/bugs/904989 fixed bzr revid: xmo@openerp.com-20111216112054-xys9q3ap6dcatppr --- addons/web/static/src/js/core.js | 5 ++++- addons/web/static/src/js/view_form.js | 1 + addons/web/static/src/js/view_list.js | 1 + addons/web/static/src/js/view_page.js | 1 + addons/web/static/src/js/view_tree.js | 4 +++- addons/web/static/src/js/views.js | 15 ++++++++++++++- addons/web/static/src/xml/base.xml | 2 +- addons/web_calendar/static/src/js/calendar.js | 1 + addons/web_diagram/static/src/js/diagram.js | 1 + addons/web_gantt/static/src/js/gantt.js | 1 + addons/web_graph/static/src/js/graph.js | 4 +++- addons/web_kanban/static/src/js/kanban.js | 1 + 12 files changed, 32 insertions(+), 5 deletions(-) diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index 3d66c4f4ccf..12422fb5434 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -254,14 +254,16 @@ openerp.web.Registry = openerp.web.Class.extend( /** @lends openerp.web.Registry * Retrieves the object matching the provided key string. * * @param {String} key the key to fetch the object for + * @param {Boolean} [silent_error=false] returns undefined if the key or object is not found, rather than throwing an exception * @returns {Class} the stored class, to initialize * * @throws {openerp.web.KeyNotFound} if the object was not in the mapping * @throws {openerp.web.ObjectNotFound} if the object path was invalid */ - get_object: function (key) { + get_object: function (key, silent_error) { var path_string = this.map[key]; if (path_string === undefined) { + if (silent_error) { return void 'nooo'; } throw new openerp.web.KeyNotFound(key); } @@ -272,6 +274,7 @@ openerp.web.Registry = openerp.web.Class.extend( /** @lends openerp.web.Registry object_match = object_match[path[i]]; if (object_match === undefined) { + if (silent_error) { return void 'noooooo'; } throw new openerp.web.ObjectNotFound(path_string); } } diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 2e00e343b50..0d962353b78 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -13,6 +13,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# readonly : false, form_template: "FormView", identifier_prefix: 'formview-', + display_name: {toString: function () { return _t('Form'); }}, /** * @constructs openerp.web.FormView * @extends openerp.web.View diff --git a/addons/web/static/src/js/view_list.js b/addons/web/static/src/js/view_list.js index 86749849053..8ed475c75f6 100644 --- a/addons/web/static/src/js/view_list.js +++ b/addons/web/static/src/js/view_list.js @@ -4,6 +4,7 @@ var QWeb = openerp.web.qweb; openerp.web.views.add('list', 'openerp.web.ListView'); openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# */ { _template: 'ListView', + display_name: {toString: function () { return _t('List'); }}, defaults: { // records can be selected one by one 'selectable': true, diff --git a/addons/web/static/src/js/view_page.js b/addons/web/static/src/js/view_page.js index 060c95e86e3..1b23198da67 100644 --- a/addons/web/static/src/js/view_page.js +++ b/addons/web/static/src/js/view_page.js @@ -5,6 +5,7 @@ openerp.web.page = function (openerp) { openerp.web.views.add('page', 'openerp.web.PageView'); openerp.web.PageView = openerp.web.FormView.extend({ form_template: "PageView", + display_name: {toString: function () { return _t('Page'); }}, init: function () { this._super.apply(this, arguments); this.registry = openerp.web.page.readonly; diff --git a/addons/web/static/src/js/view_tree.js b/addons/web/static/src/js/view_tree.js index 869e23fc16d..48f7290c8d9 100644 --- a/addons/web/static/src/js/view_tree.js +++ b/addons/web/static/src/js/view_tree.js @@ -3,10 +3,12 @@ *---------------------------------------------------------*/ openerp.web.view_tree = function(openerp) { -var QWeb = openerp.web.qweb; +var QWeb = openerp.web.qweb, + _t = openerp.web._t; openerp.web.views.add('tree', 'openerp.web.TreeView'); openerp.web.TreeView = openerp.web.View.extend(/** @lends openerp.web.TreeView# */{ + display_name: {toString: function () { return _t('Tree'); }}, /** * Indicates that this view is not searchable, and thus that no search * view should be displayed (if there is one active). diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index 579027a360a..5800939ec36 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -210,7 +210,18 @@ session.web.ViewManager = session.web.Widget.extend(/** @lends session.web.View this.dataset = dataset; this.searchview = null; this.active_view = null; - this.views_src = _.map(views, function(x) {return x instanceof Array? {view_id: x[0], view_type: x[1]} : x;}); + this.views_src = _.map(views, function(x) { + if (x instanceof Array) { + var View = session.web.views.get_object(x[1], true); + return { + view_id: x[0], + view_type: x[1], + label: View ? View.prototype.display_name : (void 'nope') + }; + } else { + return x; + } + }); this.views = {}; this.flags = flags || {}; this.registry = session.web.views; @@ -967,6 +978,8 @@ session.web.TranslateDialog = session.web.Dialog.extend({ session.web.View = session.web.Widget.extend(/** @lends session.web.View# */{ template: "EmptyComponent", + // name displayed in view switchers + display_name: '', set_default_options: function(options) { this.options = options || {}; _.defaults(this.options, { diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index ff21856aeff..c7b32cef6d7 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -424,7 +424,7 @@
diff --git a/addons/web_calendar/static/src/js/calendar.js b/addons/web_calendar/static/src/js/calendar.js index ee49af272d4..96a1f2ed0cf 100644 --- a/addons/web_calendar/static/src/js/calendar.js +++ b/addons/web_calendar/static/src/js/calendar.js @@ -7,6 +7,7 @@ var _t = openerp.web._t; var QWeb = openerp.web.qweb; openerp.web.views.add('calendar', 'openerp.web_calendar.CalendarView'); openerp.web_calendar.CalendarView = openerp.web.View.extend({ + display_name: {toString: function () { return _t('Calendar'); }}, // Dhtmlx scheduler ? init: function(parent, dataset, view_id, options) { this._super(parent); diff --git a/addons/web_diagram/static/src/js/diagram.js b/addons/web_diagram/static/src/js/diagram.js index 0572b7f6fed..8ac0edf4128 100644 --- a/addons/web_diagram/static/src/js/diagram.js +++ b/addons/web_diagram/static/src/js/diagram.js @@ -7,6 +7,7 @@ var QWeb = openerp.web.qweb, _t = openerp.web._t; openerp.web.views.add('diagram', 'openerp.web.DiagramView'); openerp.web.DiagramView = openerp.web.View.extend({ + display_name: {toString: function () { return _t('Diagram'); }}, searchable: false, init: function(parent, dataset, view_id, options) { this._super(parent); diff --git a/addons/web_gantt/static/src/js/gantt.js b/addons/web_gantt/static/src/js/gantt.js index ccf2ac07bfb..7fb67247974 100644 --- a/addons/web_gantt/static/src/js/gantt.js +++ b/addons/web_gantt/static/src/js/gantt.js @@ -6,6 +6,7 @@ var _t = openerp.web._t; var QWeb = openerp.web.qweb; openerp.web.views.add('gantt', 'openerp.web_gantt.GanttView'); openerp.web_gantt.GanttView = openerp.web.View.extend({ + display_name: {toString: function () { return _t('Gantt'); }}, init: function(parent, dataset, view_id) { this._super(parent); diff --git a/addons/web_graph/static/src/js/graph.js b/addons/web_graph/static/src/js/graph.js index acab0b73f5e..77e9e952ad2 100644 --- a/addons/web_graph/static/src/js/graph.js +++ b/addons/web_graph/static/src/js/graph.js @@ -12,9 +12,11 @@ var COLOR_PALETTE = [ '#ad7fa8', '#729fcf', '#8ae234', '#e9b96e', '#fce94f', '#f57900', '#cc0000', '#d400a8']; -var QWeb = openerp.web.qweb; +var QWeb = openerp.web.qweb, + _t = openerp.web._t; openerp.web.views.add('graph', 'openerp.web_graph.GraphView'); openerp.web_graph.GraphView = openerp.web.View.extend({ + display_name: {toString: function () { return _t('Graph'); }}, init: function(parent, dataset, view_id, options) { this._super(parent); diff --git a/addons/web_kanban/static/src/js/kanban.js b/addons/web_kanban/static/src/js/kanban.js index 053e1cdfd00..348bf65d63e 100644 --- a/addons/web_kanban/static/src/js/kanban.js +++ b/addons/web_kanban/static/src/js/kanban.js @@ -6,6 +6,7 @@ openerp.web.views.add('kanban', 'openerp.web_kanban.KanbanView'); openerp.web_kanban.KanbanView = openerp.web.View.extend({ template: "KanbanView", + display_name: {toString: function () { return _t('Kanban'); }}, default_nr_columns: 3, init: function (parent, dataset, view_id, options) { this._super(parent);