diff --git a/front-ui/app/components/browsing/byCategory.js b/front-ui/app/components/browsing/byCategory.js
index 21e2948..adc052e 100644
--- a/front-ui/app/components/browsing/byCategory.js
+++ b/front-ui/app/components/browsing/byCategory.js
@@ -9,10 +9,7 @@ var React = require('react'),
ItemStore = require('../../stores/itemStore'),
NavigationStore = require('../../stores/navigationStore'),
ItemList = require('../items/itemList'),
- NavigationActions = require('../../actions/navigationActions'),
-
- FilterCriteriaStore = require('../../stores/filterCriteriaStore'),
- FilterCriteriaActions = require('../../actions/filterCriteriaActions');
+ NavigationActions = require('../../actions/navigationActions');
var ByCategory = React.createClass({
mixins: [Router.State],
@@ -21,25 +18,25 @@ var ByCategory = React.createClass({
var items = new ItemCollection();
return {
category: category,
- items: items
+ items: items,
+ filter :{}
};
},
+ filter: {},
onFCClick: function(fc, fcv) {
var q = {};
q[fc.field_name] = fcv.filter_value;
var section = new Section(this.state.category.get('section'));
var category = this.state.category;
-
- FilterCriteriaActions.addAppliedCategoryFilter(fc.field_name, fcv.filter_value);
- //NavigationActions.goToCategory(category, section, q)
+
+ this.filter[fc.field_name] = fcv.filter_value;
+ NavigationActions.goToCategory(category, section, this.filter);
},
removeAppliedFilter: function(name) {
- FilterCriteriaActions.removeAppliedCategoryFilter(name);
- //var section = new Section(this.state.category.get('section'));
- //var category = this.state.category;
- //var q = {};
- //NavigationActions.goToCategory(category, section, q);
-
+ delete this.filter[name];
+ var section = new Section(this.state.category.get('section'));
+ var category = this.state.category;
+ NavigationActions.goToCategory(category, section, this.filter);
},
render: function() {
var self = this;
@@ -73,13 +70,12 @@ var ByCategory = React.createClass({
Browse products by category : {this.state.category.get('name')}
Number of items in this category: {this.state.items.length}
- need to filter brand: {this.getQuery().brand}
{this.appliedCategoryFiltersArray().map(function(acf) {
- return (
+ return (
{acf.name} : {acf.value}
-
)
+ )
})}
@@ -91,51 +87,39 @@ var ByCategory = React.createClass({
},
appliedCategoryFiltersArray: function() {
var filters = [];
- for(var key in this.state.appliedCategoryFilters) {
- if(this.state.appliedCategoryFilters.hasOwnProperty(key)) {
- filters.push({name: key, value: this.state.appliedCategoryFilters[key]});
+ for(var key in this.state.filter) {
+ if(this.state.filter.hasOwnProperty(key)) {
+ filters.push({name: key, value: this.state.filter[key]});
}
}
return filters;
},
componentWillReceiveProps: function() {
var categoryId = this.getParams().id;
- ItemActions.loadByCategory(categoryId, FilterCriteriaStore.getAppliedCategoryFilters());
+
+ this.setState({
+ filter: this.filter
+ });
+ ItemActions.loadByCategory(categoryId, this.filter);
CategoryActions.loadCategoryDetails(categoryId);
},
componentDidMount: function() {
var categoryId = this.getParams().id;
-
- //var query = this.getQuery();
- //FilterCriteriaActions.setAppliedCategoryFilters(query);
- ItemActions.loadByCategory(categoryId, this.getQuery());
+ this.filter = this.getQuery();
+ this.setState({
+ filter: this.filter
+ });
+ ItemActions.loadByCategory(categoryId, this.getQuery());
CategoryActions.loadCategoryDetails(categoryId);
ItemStore.addChangeListener(this._onChange);
CategoryStore.addChangeListener(this._onChange);
- FilterCriteriaStore.addChangeListener(this._onAppliedFiltersChange);
},
componentWillUnmount: function() {
ItemStore.removeChangeListener(this._onChange);
CategoryStore.removeChangeListener(this._onChange);
- FilterCriteriaStore.removeChangeListener(this._onAppliedFiltersChange);
- },
- _onAppliedFiltersChange: function() {
- if(this.isMounted()) {
- this.setState({
- appliedCategoryFilters: FilterCriteriaStore.getAppliedCategoryFilters()
- });
-
- var section = new Section(this.state.category.get('section'));
- var category = this.state.category;
-
- // TODO: investigate how to do this without setTimeout call
- setTimeout(function(){
- NavigationActions.goToCategory(category, section, this.state.appliedCategoryFilters);
- }.bind(this),0);
- }
},
_onChange: function() {
if(this.isMounted()) {