[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;
|
var self = this;
|
||||||
this.model = new instance.web.Model('ir.filters');
|
this.model = new instance.web.Model('ir.filters');
|
||||||
this.filters = {};
|
this.filters = {};
|
||||||
this.view.query.on('reset', function () {
|
this.view.query
|
||||||
self.$element.find('li.oe_selected').removeClass('oe_selected');
|
.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('submit', 'form', this.proxy('save_current'));
|
||||||
this.$element.on('click', 'h4', function () {
|
this.$element.on('click', 'h4', function () {
|
||||||
self.$element.toggleClass('oe_opened');
|
self.$element.toggleClass('oe_opened');
|
||||||
|
@ -1552,6 +1557,9 @@ instance.web.search.CustomFilters = instance.web.search.Input.extend({
|
||||||
model: this.view.model
|
model: this.view.model
|
||||||
}).pipe(this.proxy('set_filters'));
|
}).pipe(this.proxy('set_filters'));
|
||||||
},
|
},
|
||||||
|
clear_selection: function () {
|
||||||
|
this.$element.find('li.oe_selected').removeClass('oe_selected');
|
||||||
|
},
|
||||||
append_filter: function (filter) {
|
append_filter: function (filter) {
|
||||||
var self = this;
|
var self = this;
|
||||||
var key = _.str.sprintf('(%s)%s', filter.user_id, filter.name);
|
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_groupby: function () { return [filter.context]; },
|
||||||
get_domain: function () { return filter.domain; }
|
get_domain: function () { return filter.domain; }
|
||||||
},
|
},
|
||||||
|
is_custom_filter: true,
|
||||||
values: [{label: filter.name, value: null}]
|
values: [{label: filter.name, value: null}]
|
||||||
}]);
|
}]);
|
||||||
$filter.addClass('oe_selected');
|
$filter.addClass('oe_selected');
|
||||||
|
|
|
@ -1109,7 +1109,7 @@ $(document).ready(function () {
|
||||||
mockifyRPC(instance.connection);
|
mockifyRPC(instance.connection);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
asyncTest('checkboxing', function () {
|
asyncTest('checkboxing', 6, function () {
|
||||||
var view = makeSearchView();
|
var view = makeSearchView();
|
||||||
instance.connection.responses['/web/searchview/get_filters'] = function () {
|
instance.connection.responses['/web/searchview/get_filters'] = function () {
|
||||||
return {result: [{
|
return {result: [{
|
||||||
|
@ -1129,15 +1129,36 @@ $(document).ready(function () {
|
||||||
ok($row.hasClass("oe_searchview_custom_private"),
|
ok($row.hasClass("oe_searchview_custom_private"),
|
||||||
"should have private filter note/class");
|
"should have private filter note/class");
|
||||||
equal(view.query.length, 1, "should have only one facet");
|
equal(view.query.length, 1, "should have only one facet");
|
||||||
var values = view.query.at(0).values;
|
var values = view.query.at(0).values;
|
||||||
equal(values.length, 1,
|
equal(values.length, 1,
|
||||||
"should have only one value in the facet");
|
"should have only one value in the facet");
|
||||||
equal(values.at(0).get('label'), 'filter name',
|
equal(values.at(0).get('label'), 'filter name',
|
||||||
"displayed label should be the name of the filter");
|
"displayed label should be the name of the filter");
|
||||||
equal(values.at(0).get('value'), null,
|
equal(values.at(0).get('value'), null,
|
||||||
"should have no value set");
|
"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', {
|
module('advanced', {
|
||||||
setup: function () {
|
setup: function () {
|
||||||
|
|
Loading…
Reference in New Issue