summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2011-11-21 17:34:41 +0100
committerFabien Meghazi <fme@openerp.com>2011-11-21 17:34:41 +0100
commit5c014979c22adfa32e8aa2bbe186f24e85bcab84 (patch)
treeef15f64856800612eb1624a00087d20af009d9d6 /addons/web/static/src
parent89e5c72b6ea9e29b7f8a2e73b97e4cfa51e165f2 (diff)
[IMP] Ensure form is saved when xmo's protocol for sidebar context is used
bzr revid: fme@openerp.com-20111121163441-y200rwxk4g2jtzuj
Diffstat (limited to 'addons/web/static/src')
-rw-r--r--addons/web/static/src/js/view_form.js3
-rw-r--r--addons/web/static/src/js/views.js26
2 files changed, 11 insertions, 18 deletions
diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js
index 36e5491dad1..8a58dec13ec 100644
--- a/addons/web/static/src/js/view_form.js
+++ b/addons/web/static/src/js/view_form.js
@@ -580,8 +580,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView#
return true;
},
sidebar_context: function () {
- // TODO: ensure form is saved?
- return $.Deferred().resolve(this.get_fields_values()).promise();
+ return this.do_save().pipe($.proxy(this, 'get_fields_values'));
}
});
openerp.web.FormDialog = openerp.web.Dialog.extend({
diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js
index e119f2deabe..5a26ef58b03 100644
--- a/addons/web/static/src/js/views.js
+++ b/addons/web/static/src/js/views.js
@@ -679,13 +679,7 @@ session.web.Sidebar = session.web.Widget.extend({
item.callback.apply(self, [item]);
}
if (item.action) {
- if (self.widget_parent instanceof session.web.FormView) {
- self.widget_parent.do_save(function() {
- self.on_item_action_clicked(item);
- });
- } else {
- self.on_item_action_clicked(item);
- }
+ self.on_item_action_clicked(item);
}
return false;
});
@@ -699,16 +693,16 @@ session.web.Sidebar = session.web.Widget.extend({
},
on_item_action_clicked: function(item) {
var self = this;
- var ids = self.widget_parent.get_selected_ids();
- if (ids.length == 0) {
- //TODO: make prettier warning?
- $("<div />").text(_t("You must choose at least one record.")).dialog({
- title: _t("Warning"),
- modal: true
- });
- return false;
- }
self.widget_parent.sidebar_context().then(function (context) {
+ var ids = self.widget_parent.get_selected_ids();
+ if (ids.length == 0) {
+ //TODO: make prettier warning?
+ $("<div />").text(_t("You must choose at least one record.")).dialog({
+ title: _t("Warning"),
+ modal: true
+ });
+ return false;
+ }
var additional_context = _.extend({
active_id: ids[0],
active_ids: ids,