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