[FIX] web: avoid double write in the form view
This commit is contained in:
committed by
Géry Debongnie
parent
41c94f6c77
commit
bbbf3db581
@@ -723,9 +723,20 @@ var FormView = View.extend(common.FieldManagerMixin, {
|
||||
}
|
||||
}
|
||||
},
|
||||
disable_button: function () {
|
||||
this.$('.oe_form_buttons').add(this.$buttons).find('button').addClass('o_disabled').prop('disabled', true);
|
||||
this.is_disabled = true;
|
||||
},
|
||||
enable_button: function () {
|
||||
this.$('.oe_form_buttons').add(this.$buttons).find('button.o_disabled').removeClass('o_disabled').prop('disabled', false);
|
||||
this.is_disabled = false;
|
||||
},
|
||||
on_button_save: function(e) {
|
||||
var self = this;
|
||||
$(e.target).attr("disabled", true);
|
||||
if (this.is_disabled) {
|
||||
return;
|
||||
}
|
||||
this.disable_button();
|
||||
return this.save().done(function(result) {
|
||||
self.trigger("save", result);
|
||||
self.reload().then(function() {
|
||||
@@ -734,7 +745,7 @@ var FormView = View.extend(common.FieldManagerMixin, {
|
||||
core.bus.trigger('form_view_saved', self);
|
||||
});
|
||||
}).always(function(){
|
||||
$(e.target).attr("disabled", false);
|
||||
self.enable_button();
|
||||
});
|
||||
},
|
||||
on_button_cancel: function(event) {
|
||||
|
||||
@@ -51,9 +51,14 @@ var WidgetButton = common.FormWidget.extend({
|
||||
},
|
||||
on_click: function() {
|
||||
var self = this;
|
||||
if (this.view.is_disabled) {
|
||||
return;
|
||||
}
|
||||
this.force_disabled = true;
|
||||
this.check_disable();
|
||||
this.view.disable_button();
|
||||
this.execute_action().always(function() {
|
||||
self.view.enable_button();
|
||||
self.force_disabled = false;
|
||||
self.check_disable();
|
||||
if (self.$el.hasClass('o_wow')) {
|
||||
@@ -1499,6 +1504,9 @@ var FieldStatus = common.AbstractField.extend({
|
||||
on_click_stage: function (ev) {
|
||||
var self = this;
|
||||
var $li = $(ev.currentTarget);
|
||||
if (this.view.is_disabled) {
|
||||
return;
|
||||
}
|
||||
var val;
|
||||
if (this.field.type == "many2one") {
|
||||
val = parseInt($li.data("id"), 10);
|
||||
|
||||
Reference in New Issue
Block a user