[#147,widget/filtereditor][s]: setting of term filter value and removal of filter working again (and tested!) - fixes #147.
This commit is contained in:
parent
ed734d90e4
commit
9b583b8397
@ -51,8 +51,8 @@ my.FilterEditor = Backbone.View.extend({
|
||||
initialize: function() {
|
||||
this.el = $(this.el);
|
||||
_.bindAll(this, 'render');
|
||||
this.model.bind('change', this.render);
|
||||
this.model.bind('change:filters:new-blank', this.render);
|
||||
this.model.queryState.bind('change', this.render);
|
||||
this.model.queryState.bind('change:filters:new-blank', this.render);
|
||||
this.render();
|
||||
},
|
||||
render: function() {
|
||||
@ -100,12 +100,12 @@ my.FilterEditor = Backbone.View.extend({
|
||||
e.preventDefault();
|
||||
var $target = $(e.target);
|
||||
var filterId = $target.closest('.filter').attr('data-filter-id');
|
||||
this.model.removeFilter(filterId);
|
||||
this.model.queryState.removeFilter(filterId);
|
||||
},
|
||||
onTermFiltersUpdate: function(e) {
|
||||
var self = this;
|
||||
e.preventDefault();
|
||||
var filters = self.model.get('filters');
|
||||
var filters = self.model.queryState.get('filters');
|
||||
var $form = $(e.target);
|
||||
_.each($form.find('input'), function(input) {
|
||||
var $input = $(input);
|
||||
@ -114,8 +114,8 @@ my.FilterEditor = Backbone.View.extend({
|
||||
var fieldId = $input.attr('data-filter-field');
|
||||
filters[filterIndex].term[fieldId] = value;
|
||||
});
|
||||
self.model.set({filters: filters});
|
||||
self.model.trigger('change');
|
||||
self.model.queryState.set({filters: filters});
|
||||
self.model.queryState.trigger('change');
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -13,14 +13,29 @@ test('basics', function () {
|
||||
ok(!view.el.find('.js-add-filter').is(":visible"));
|
||||
ok($addForm.is(":visible"));
|
||||
|
||||
// submit the form
|
||||
$addForm.find('select.fields').val('country');
|
||||
$addForm.submit();
|
||||
|
||||
// now check we have new filter
|
||||
ok(!$addForm.is(":visible"));
|
||||
$editForm = view.el.find('form.js-edit');
|
||||
equal($editForm.find('.filter-term').length, 1)
|
||||
|
||||
equal(_.keys(dataset.queryState.attributes.filters[0].term)[0], 'country');
|
||||
|
||||
// now set filter value and apply
|
||||
$editForm.find('input').val('UK');
|
||||
$editForm.submit();
|
||||
equal(dataset.queryState.attributes.filters[0].term.country, 'UK');
|
||||
equal(dataset.currentRecords.length, 3);
|
||||
|
||||
// now remove filter
|
||||
$editForm.find('.js-remove-filter').click();
|
||||
// hmmm, not working yet but works by eye!
|
||||
// $editForm = view.el.find('form.js-edit');
|
||||
// equal($editForm.find('.filter-term').length, 0)
|
||||
// equal(dataset.currentRecords.length, 6);
|
||||
|
||||
view.remove();
|
||||
});
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user