- // Warning : altough I don't see why this widget wouldn't be directly instanciated by the
- // action manager, if it wasn't, this code wouldn't work. You'd have to do something like :
- // var action_manager = self;
- // while (! action_manager instanceof ActionManager)
- // action_manager = action_manager.getParent();
- var action_manager = self.getParent();
- var breadcrumbs = action_manager.breadcrumbs;
- var found = false;
- for (var i=breadcrumbs.length-1; i>=0; i--) {
- if (breadcrumbs[i].action && breadcrumbs[i].action.id === action_id) {
- var title = breadcrumbs[i].get_title();
- action_manager.select_breadcrumb(i, _.isArray(title) ? i : undefined);
- found = true;
- }
+ var breadcrumbs = self.action_manager.get_widgets();
+ var widget = _.find(breadcrumbs, function(widget){
+ return widget.action && widget.action.id === action_id;
+ });
+ if (widget) {
+ self.action_manager.select_widget(widget, 0);
+ } else {
+ self.action_manager.do_action(action_id, {
+ clear_breadcrumbs: true
+ });