var React = require('react'), Router = require('react-router'), Category = require('../../models/category'), SubCategory = require('../../models/subCategory'), Section = require('../../models/section'), ItemCollection = require('../../models/itemCollection'), ItemActions = require('../../actions/itemActions.js'), CategoryActions = require('../../actions/categoryActions.js'), CategoryStore = require('../../stores/categoryStore'), ItemStore = require('../../stores/itemStore'), NavigationStore = require('../../stores/navigationStore'), ItemList = require('../items/itemList'), NavigationActions = require('../../actions/navigationActions'), LinkBanner = require('../linkBanner/linkBanner'), Globals = require('../../globals'); var FilterCriteriaSelector = require('./filterCriteriaSelector'); var AppliedFiltersList = require('./appliedFiltersList'); var ByCategory = React.createClass({ mixins: [Router.State], getInitialState: function() { var category = new Category(); var items = new ItemCollection(); return { category: category, items: items, filter :{}, pagination: {} }; }, 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; this.filter[fc.field_name] = fcv.filter_value; NavigationActions.goToCategory(category, section, this.filter, 0, this.state.pagination.limit); }, removeAppliedFilter: function(name) { delete this.filter[name]; var section = new Section(this.state.category.get('section')); var category = this.state.category; NavigationActions.goToCategory(category, section, this.filter, 0, this.state.pagination.limit); }, onSCClick: function(sc) { var subCategory = new SubCategory(sc); NavigationActions.goToSubCategory(subCategory, 0, Globals.defaultLimit); event.preventDefault(); }, changePage: function(page) { var section = new Section(this.state.category.get('section')); var category = this.state.category; NavigationActions.goToCategory(category, section, this.filter, parseInt(page) * this.state.pagination.limit, this.state.pagination.limit); }, render: function() { var self = this; return (