|
|
@ -24,18 +24,28 @@ openerp.web_ir_actions_act_window_message = function(instance) |
|
|
|
instance.web.ActionManager.include({ |
|
|
|
ir_actions_act_window_message: function(action, options) |
|
|
|
{ |
|
|
|
var self = this, |
|
|
|
buttons = []; |
|
|
|
|
|
|
|
if(action.close_button_title !== false) |
|
|
|
{ |
|
|
|
buttons.push({ |
|
|
|
text: action.close_button_title || |
|
|
|
instance.web._t('Close'), |
|
|
|
click: function() { dialog.close() }, |
|
|
|
oe_link_class: 'oe_highlight', |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
var dialog = new instance.web.Dialog( |
|
|
|
this, |
|
|
|
{ |
|
|
|
size: 'medium', |
|
|
|
title: action.title, |
|
|
|
buttons: [ |
|
|
|
{ |
|
|
|
text: instance.web._t('Close'), |
|
|
|
click: function() { dialog.close() }, |
|
|
|
oe_link_class: 'oe_highlight', |
|
|
|
}, |
|
|
|
], |
|
|
|
buttons: buttons.concat( |
|
|
|
this.ir_actions_act_window_message_get_buttons( |
|
|
|
action, function() { dialog.close() }) |
|
|
|
), |
|
|
|
}, |
|
|
|
jQuery(instance.web.qweb.render( |
|
|
|
'web_ir_actions_act_window_message', |
|
|
@ -46,5 +56,52 @@ openerp.web_ir_actions_act_window_message = function(instance) |
|
|
|
) |
|
|
|
return dialog.open(); |
|
|
|
}, |
|
|
|
ir_actions_act_window_message_get_buttons: function(action, close_func) |
|
|
|
{ |
|
|
|
// return an array of button definitions from action
|
|
|
|
var self = this; |
|
|
|
return _.map(action.buttons || [], function(button_definition) |
|
|
|
{ |
|
|
|
return { |
|
|
|
text: button_definition.name || 'No name set', |
|
|
|
oe_link_class: button_definition.oe_link_class || |
|
|
|
'oe_highlight', |
|
|
|
click: function() { |
|
|
|
if(button_definition.type == 'method') |
|
|
|
{ |
|
|
|
(new instance.web.Model(button_definition.model)) |
|
|
|
.call( |
|
|
|
button_definition.method, |
|
|
|
button_definition.args, |
|
|
|
button_definition.kwargs |
|
|
|
).then(function(result) |
|
|
|
{ |
|
|
|
if(_.isObject(result)) |
|
|
|
{ |
|
|
|
self.do_action(result); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
if( |
|
|
|
self.inner_widget && |
|
|
|
self.inner_widget.views |
|
|
|
) |
|
|
|
{ |
|
|
|
self.inner_widget |
|
|
|
.views[self.inner_widget.active_view] |
|
|
|
.controller.recursive_reload(); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
self.do_action(button_definition); |
|
|
|
} |
|
|
|
close_func(); |
|
|
|
}, |
|
|
|
} |
|
|
|
}); |
|
|
|
}, |
|
|
|
}); |
|
|
|
} |