summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorChristophe Simonis <chs@openerp.com>2013-03-14 15:44:16 +0100
committerChristophe Simonis <chs@openerp.com>2013-03-14 15:44:16 +0100
commit089bec0d9a0cbda93727deb9eb442e510d090b3d (patch)
tree0a935e1a90cb19feb1569be9cf953f4858ee0c21 /addons/web/static/src
parent9dd5e354fda3acd759d2a411efd73c4469c324fe (diff)
parent1bc43748ee85c95c49aa79a7f653f71d46408f7c (diff)
[MERGE] [ADD] `hide_breadcrumb` option
bzr revid: chs@openerp.com-20130314144416-v3eb8czyr44qiub8
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/views.js31
1 files changed, 25 insertions, 6 deletions
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index 1ba65f7ec18..7b2fc87aa97 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -149,6 +149,9 @@ instance.web.ActionManager = instance.web.Widget.extend({
for (var i = 0; i < this.breadcrumbs.length; i += 1) {
var item = this.breadcrumbs[i];
var tit = item.get_title();
+ if (item.hide_breadcrumb) {
+ continue;
+ }
if (!_.isArray(tit)) {
tit = [tit];
}
@@ -282,6 +285,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
* @param {Object} [options]
* @param {Boolean} [options.clear_breadcrumbs=false] Clear the breadcrumbs history list
* @param {Function} [options.on_reverse_breadcrumb] Callback to be executed whenever an anterior breadcrumb item is clicked on.
+ * @param {Function} [options.hide_breadcrumb] Do not display this widget's title in the breadcrumb
* @param {Function} [options.on_close] Callback to be executed when the dialog is closed (only relevant for target=new actions)
* @param {Function} [options.action_menu_id] Manually set the menu id on the fly.
* @param {Object} [options.additional_context] Additional context to be merged with the action's context.
@@ -291,6 +295,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
options = _.defaults(options || {}, {
clear_breadcrumbs: false,
on_reverse_breadcrumb: function() {},
+ hide_breadcrumb: false,
on_close: function() {},
action_menu_id: null,
additional_context: {},
@@ -403,7 +408,12 @@ instance.web.ActionManager = instance.web.Widget.extend({
widget: function () { return new instance.web.ViewManagerAction(self, action); },
action: action,
klass: 'oe_act_window',
- post_process: function (widget) { widget.add_breadcrumb(options.on_reverse_breadcrumb); }
+ post_process: function (widget) {
+ widget.add_breadcrumb({
+ on_reverse_breadcrumb: options.on_reverse_breadcrumb,
+ hide_breadcrumb: options.hide_breadcrumb,
+ });
+ },
}, options);
},
ir_actions_client: function (action, options) {
@@ -427,6 +437,7 @@ instance.web.ActionManager = instance.web.Widget.extend({
widget: widget,
title: action.name,
on_reverse_breadcrumb: options.on_reverse_breadcrumb,
+ hide_breadcrumb: options.hide_breadcrumb,
});
if (action.tag !== 'reload') {
self.do_push_state({});
@@ -649,7 +660,15 @@ instance.web.ViewManager = instance.web.Widget.extend({
set_title: function(title) {
this.$el.find('.oe_view_title_text:first').text(title);
},
- add_breadcrumb: function(on_reverse_breadcrumb) {
+ add_breadcrumb: function(options) {
+ var options = options || {};
+ // 7.0 backward compatibility
+ if (typeof options == 'function') {
+ options = {
+ on_reverse_breadcrumb: options
+ };
+ }
+ // end of 7.0 backward compatibility
var self = this;
var views = [this.active_view || this.views_src[0].view_type];
this.on('switch_mode', self, function(mode) {
@@ -661,7 +680,7 @@ instance.web.ViewManager = instance.web.Widget.extend({
views.push(mode);
}
});
- this.getParent().push_breadcrumb({
+ var item = _.extend({
widget: this,
action: this.action,
show: function(index) {
@@ -695,9 +714,9 @@ instance.web.ViewManager = instance.web.Widget.extend({
titles.pop();
}
return titles;
- },
- on_reverse_breadcrumb: on_reverse_breadcrumb,
- });
+ }
+ }, options);
+ this.getParent().push_breadcrumb(item);
},
/**
* Returns to the view preceding the caller view in this manager's