summaryrefslogtreecommitdiff
path: root/addons/web_dashboard/static/src/js
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2011-12-08 17:10:14 +0100
committerFabien Meghazi <fme@openerp.com>2011-12-08 17:10:14 +0100
commit4ab671d3fc69ccf6e6a13f522dacde6fb703f7bf (patch)
tree3ce23b58d21bf5eb370735058a4e47a5986ec2a1 /addons/web_dashboard/static/src/js
parentcf6fedf5bbb666ca1d9bb72f665cda1f2e2246ba (diff)
[ADD] Dashboard: support for @creatable attribute in dashboard's actions
bzr revid: fme@openerp.com-20111208161014-itkek0cct619i8fh
Diffstat (limited to 'addons/web_dashboard/static/src/js')
-rw-r--r--addons/web_dashboard/static/src/js/dashboard.js20
1 files changed, 18 insertions, 2 deletions
diff --git a/addons/web_dashboard/static/src/js/dashboard.js b/addons/web_dashboard/static/src/js/dashboard.js
index 07c9f83ef1f..49217cdb984 100644
--- a/addons/web_dashboard/static/src/js/dashboard.js
+++ b/addons/web_dashboard/static/src/js/dashboard.js
@@ -182,13 +182,29 @@ openerp.web.form.DashBoard = openerp.web.form.Widget.extend({
selectable: false
}
};
- var am = new openerp.web.ActionManager(this);
+ var am = new openerp.web.ActionManager(this),
+ // FIXME: ideally the dashboard view shall be refactored like kanban.
+ $action = $('#' + this.view.element_id + '_action_' + index);
this.action_managers.push(am);
- am.appendTo($('#' + this.view.element_id + '_action_' + index));
+ am.appendTo($action);
am.do_action(action);
am.do_action = function(action) {
self.do_action(action);
}
+ if (action_attrs.creatable && action_attrs.creatable !== 'false') {
+ var form_id = parseInt(action_attrs.creatable, 10);
+ $action.parent().find('button.oe_dashboard_button_create').click(function() {
+ var create_action = _.extend({}, action_orig, {
+ views : [[(isNaN(form_id) ? false : form_id), 'form']]
+ });
+ _.each(action.views, function(v) {
+ if (v[1] !== 'form') {
+ create_action.views.push(v);
+ }
+ });
+ self.do_action(create_action);
+ });
+ }
if (am.inner_viewmanager) {
am.inner_viewmanager.on_mode_switch.add(function(mode) {
var new_views = [];