[FIX] disable advanced search apply button in search view when there are no propositions

avoids locking up the browser by entering an infinite loop when unshifting ors on domains

bzr revid: xmo@openerp.com-20121106161715-7vc55kps8gi8h3lb
This commit is contained in:
Xavier Morel 2012-11-06 17:17:15 +01:00
parent 2a9779045f
commit 1c721d43c5
1 changed files with 13 additions and 4 deletions

View File

@ -1656,11 +1656,20 @@ instance.web.search.Advanced = instance.web.search.Input.extend({
});
},
append_proposition: function () {
var self = this;
return (new instance.web.search.ExtendedSearchProposition(this, this.fields))
.appendTo(this.$('ul'));
.appendTo(this.$('ul')).then(function () {
self.$('button.oe_apply').prop('disabled', false);
});
},
remove_proposition: function (prop) {
// removing last proposition, disable apply button
if (this.getChildren().length <= 1) {
this.$('button.oe_apply').prop('disabled', true);
}
prop.destroy();
},
commit_search: function () {
var self = this;
// Get domain sections from all propositions
var children = this.getChildren();
var propositions = _.invoke(children, 'get_proposition');
@ -1694,7 +1703,7 @@ instance.web.search.ExtendedSearchProposition = instance.web.Widget.extend(/** @
'change .searchview_extended_prop_field': 'changed',
'click .searchview_extended_delete_prop': function (e) {
e.stopPropagation();
this.destroy();
this.getParent().remove_proposition(this);
}
},
/**
@ -1714,7 +1723,7 @@ instance.web.search.ExtendedSearchProposition = instance.web.Widget.extend(/** @
this.value = null;
},
start: function () {
this.changed();
return this._super().then(this.proxy('changed'));
},
changed: function() {
var nval = this.$(".searchview_extended_prop_field").val();