[FIX] correctly deselect custom filter when removing it from search
bzr revid: xmo@openerp.com-20120626081055-x1j3em2v8zf54m4o
This commit is contained in:
parent
364ec932aa
commit
846cedf43d
|
@ -1540,9 +1540,14 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
|
|||
var self = this;
|
||||
this.model = new instance.web.Model('ir.filters');
|
||||
this.filters = {};
|
||||
this.view.query.on('reset', function () {
|
||||
self.$element.find('li.oe_selected').removeClass('oe_selected');
|
||||
});
|
||||
this.view.query
|
||||
.on('remove', function (facet) {
|
||||
if (!facet.get('is_custom_filter')) {
|
||||
return;
|
||||
}
|
||||
self.clear_selection();
|
||||
})
|
||||
.on('reset', this.proxy('clear_selection'));
|
||||
this.$element.on('submit', 'form', this.proxy('save_current'));
|
||||
this.$element.on('click', 'h4', function () {
|
||||
self.$element.toggleClass('oe_opened');
|
||||
|
@ -1552,6 +1557,9 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
|
|||
model: this.view.model
|
||||
}).pipe(this.proxy('set_filters'));
|
||||
},
|
||||
clear_selection: function () {
|
||||
this.$element.find('li.oe_selected').removeClass('oe_selected');
|
||||
},
|
||||
append_filter: function (filter) {
|
||||
var self = this;
|
||||
var key = _.str.sprintf('(%s)%s', filter.user_id, filter.name);
|
||||
|
@ -1586,6 +1594,7 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
|
|||
get_groupby: function () { return [filter.context]; },
|
||||
get_domain: function () { return filter.domain; }
|
||||
},
|
||||
is_custom_filter: true,
|
||||
values: [{label: filter.name, value: null}]
|
||||
}]);
|
||||
$filter.addClass('oe_selected');
|
||||
|
|
|
@ -1109,7 +1109,7 @@ $(document).ready(function () {
|
|||
mockifyRPC(instance.connection);
|
||||
}
|
||||
});
|
||||
asyncTest('checkboxing', function () {
|
||||
asyncTest('checkboxing', 6, function () {
|
||||
var view = makeSearchView();
|
||||
instance.connection.responses['/web/searchview/get_filters'] = function () {
|
||||
return {result: [{
|
||||
|
@ -1129,15 +1129,36 @@ $(document).ready(function () {
|
|||
ok($row.hasClass("oe_searchview_custom_private"),
|
||||
"should have private filter note/class");
|
||||
equal(view.query.length, 1, "should have only one facet");
|
||||
var values = view.query.at(0).values;
|
||||
equal(values.length, 1,
|
||||
"should have only one value in the facet");
|
||||
var values = view.query.at(0).values;
|
||||
equal(values.length, 1,
|
||||
"should have only one value in the facet");
|
||||
equal(values.at(0).get('label'), 'filter name',
|
||||
"displayed label should be the name of the filter");
|
||||
equal(values.at(0).get('value'), null,
|
||||
"should have no value set");
|
||||
})
|
||||
});
|
||||
asyncTest('removal', 1, function () {
|
||||
var view = makeSearchView();
|
||||
instance.connection.responses['/web/searchview/get_filters'] = function () {
|
||||
return {result: [{
|
||||
name: "filter name",
|
||||
user_id: 42
|
||||
}]};
|
||||
};
|
||||
var $fix = $('#qunit-fixture');
|
||||
|
||||
view.appendTo($fix)
|
||||
.always(start)
|
||||
.fail(function (error) { ok(false, error.message); })
|
||||
.done(function () {
|
||||
var $row = $fix.find('.oe_searchview_custom li:first').click();
|
||||
|
||||
view.query.remove(view.query.at(0));
|
||||
ok(!$row.hasClass('oe_selected'),
|
||||
"should not be checked anymore");
|
||||
})
|
||||
});
|
||||
|
||||
module('advanced', {
|
||||
setup: function () {
|
||||
|
|
Loading…
Reference in New Issue