work in progress, several bugs
This commit is contained in:
@@ -7,6 +7,12 @@ var FilterCriteriaActions = {
|
||||
actionType: FilterCriteriaConstants.CLEAR_CATEGORY_FILTERS
|
||||
});
|
||||
},
|
||||
setAppliedCategoryFilters: function(filters) {
|
||||
AppDispatcher.handleAction({
|
||||
actionType: FilterCriteriaConstants.SET_APPLIED_CATEGORY_FILTER,
|
||||
filters: filters
|
||||
});
|
||||
},
|
||||
addAppliedCategoryFilter: function(name, value) {
|
||||
AppDispatcher.handleAction({
|
||||
actionType: FilterCriteriaConstants.ADD_APPLIED_CATEGORY_FILTER,
|
||||
|
||||
@@ -24,14 +24,17 @@ var NavigationActions = {
|
||||
goToCategory: function(category,section, query) {
|
||||
var url ='/sekcija/' + section.get('name') +'/kategorija/'+ category.get('id') + '/' + category.get('name');
|
||||
|
||||
q = '';
|
||||
var q = '';
|
||||
if(query) {
|
||||
q = '?';
|
||||
var qp = [];
|
||||
for(var key in query) {
|
||||
if (query.hasOwnProperty(key)) {
|
||||
q += "&" + key + '=' + query[key];
|
||||
qp.push(key + '=' + query[key]);
|
||||
}
|
||||
}
|
||||
if (qp.length > 0) {
|
||||
q = '?' + qp.join('&');
|
||||
}
|
||||
}
|
||||
AppDispatcher.handleAction({
|
||||
actionType: NavigationConstants.CHANGE_URL,
|
||||
|
||||
@@ -31,14 +31,14 @@ var ByCategory = React.createClass({
|
||||
var category = this.state.category;
|
||||
|
||||
FilterCriteriaActions.addAppliedCategoryFilter(fc.field_name, fcv.filter_value);
|
||||
NavigationActions.goToCategory(category, section, q)
|
||||
//NavigationActions.goToCategory(category, section, q)
|
||||
},
|
||||
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);
|
||||
//var section = new Section(this.state.category.get('section'));
|
||||
//var category = this.state.category;
|
||||
//var q = {};
|
||||
//NavigationActions.goToCategory(category, section, q);
|
||||
|
||||
},
|
||||
render: function() {
|
||||
@@ -99,13 +99,16 @@ var ByCategory = React.createClass({
|
||||
return filters;
|
||||
},
|
||||
componentWillReceiveProps: function() {
|
||||
console.log("RECEIVING PROPS!!!!!!!!!!!!!!!!!!!!!!!!");
|
||||
var categoryId = this.getParams().id;
|
||||
ItemActions.loadByCategory(categoryId, FilterCriteriaStore.getAppliedCategoryFilters());
|
||||
CategoryActions.loadCategoryDetails(categoryId);
|
||||
},
|
||||
componentDidMount: function() {
|
||||
var categoryId = this.getParams().id;
|
||||
|
||||
//var query = this.getQuery();
|
||||
//FilterCriteriaActions.setAppliedCategoryFilters(query);
|
||||
|
||||
ItemActions.loadByCategory(categoryId, this.getQuery());
|
||||
|
||||
CategoryActions.loadCategoryDetails(categoryId);
|
||||
@@ -121,14 +124,17 @@ var ByCategory = React.createClass({
|
||||
},
|
||||
_onAppliedFiltersChange: function() {
|
||||
if(this.isMounted()) {
|
||||
console.log('FILTERS CHANGING: ', FilterCriteriaStore.getAppliedCategoryFilters());
|
||||
this.setState({
|
||||
appliedCategoryFilters: FilterCriteriaStore.getAppliedCategoryFilters()
|
||||
});
|
||||
var categoryId = this.getParams().id;
|
||||
//ItemActions.loadByCategory(categoryId, FilterCriteriaStore.getAppliedCategoryFilters());
|
||||
//CategoryActions.loadCategoryDetails(categoryId);
|
||||
|
||||
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() {
|
||||
|
||||
@@ -4,5 +4,6 @@ var keyMirror = require('react/lib/keyMirror');
|
||||
module.exports = keyMirror({
|
||||
CLEAR_CATEGORY_FILTERS: null,
|
||||
ADD_APPLIED_CATEGORY_FILTER: null,
|
||||
REMOVE_APPLIED_CATEGORY_FILTER: null
|
||||
REMOVE_APPLIED_CATEGORY_FILTER: null,
|
||||
SET_APPLIED_CATEGORY_FILTERS: null
|
||||
});
|
||||
|
||||
@@ -15,6 +15,10 @@ var addAppliedCategoryFilter = function(name, value) {
|
||||
_appliedCategoryFilters[name] = value;
|
||||
};
|
||||
|
||||
var setAppliedCategoryFilters = function(filters) {
|
||||
_appliedCategoryFilters = filters;
|
||||
};
|
||||
|
||||
var removeAppliedCategoryFilter = function(name) {
|
||||
delete _appliedCategoryFilters[name];
|
||||
};
|
||||
@@ -70,6 +74,9 @@ AppDispatcher.register(function(payload) {
|
||||
case FilterCriteriaConstants.REMOVE_APPLIED_CATEGORY_FILTER:
|
||||
removeAppliedCategoryFilter(action.name);
|
||||
break;
|
||||
case FilterCriteriaConstants.SET_APPLIED_CATEGORY_FILTERS:
|
||||
setAppliedCategoryFilters(action.filters);
|
||||
break;
|
||||
default:
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user