work in progress, several bugs

This commit is contained in:
Edin Dazdarevic
2015-02-12 07:35:48 +01:00
parent 2ec8721920
commit 2dc5572cb1
5 changed files with 37 additions and 14 deletions

View File

@@ -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,

View File

@@ -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,

View File

@@ -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() {

View File

@@ -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
});

View File

@@ -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;
}