[ADD] translatable name to views

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

bzr revid: xmo@openerp.com-20111216112054-xys9q3ap6dcatppr
This commit is contained in:
Xavier Morel 2011-12-16 12:20:54 +01:00
parent b3a04d317b
commit 265d9e1ef4
12 changed files with 32 additions and 5 deletions

View File

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

View File

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

View File

@ -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,

View File

@ -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;

View File

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

View File

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

View File

@ -424,7 +424,7 @@
<div class="oe_vm_switch">
<t t-if="views.length != 1" t-foreach="views" t-as="view">
<button type="button" t-att-data-view-type="view.view_type">
<t t-esc="view.view_type"/>
<t t-esc="view.label || view.view_type"/>
</button>
</t>
</div>

View File

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

View File

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

View File

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

View File

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

View File

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