diff options
| author | Christophe Simonis <chs@openerp.com> | 2013-03-14 15:44:16 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@openerp.com> | 2013-03-14 15:44:16 +0100 |
| commit | 089bec0d9a0cbda93727deb9eb442e510d090b3d (patch) | |
| tree | 0a935e1a90cb19feb1569be9cf953f4858ee0c21 /addons/web/static/src | |
| parent | 9dd5e354fda3acd759d2a411efd73c4469c324fe (diff) | |
| parent | 1bc43748ee85c95c49aa79a7f653f71d46408f7c (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.js | 31 |
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 |
