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