99 lines
2.4 KiB
JavaScript
99 lines
2.4 KiB
JavaScript
var AppDispatcher = require('../dispatcher/appDispatcher');
|
|
var EventEmitter = require('events').EventEmitter;
|
|
|
|
var CategoryCollection = require('../models/categoryCollection');
|
|
var Category = require('../models/category');
|
|
|
|
var CategoryConstants = require('../constants/categoryConstants');
|
|
var _ = require('underscore');
|
|
|
|
var _categoryDetails = new Category();
|
|
|
|
//var loadSections = function() {
|
|
//var sections = new SectionCollection();
|
|
//sections.fetch({success: function() {
|
|
//sectionState.sections = sections.models;
|
|
//// change will be called automatically when
|
|
//// action is run but we need to emit it again
|
|
//// when the data arive
|
|
//// it's a bit "unfluxy" but convenient.
|
|
//// "true philosophy" would be to run another "data arrived" action
|
|
//SectionStore.emitChange();
|
|
//}});
|
|
//};
|
|
|
|
var loadCategoryDetails = function(categoryId) {
|
|
var category = new Category({id : categoryId});
|
|
category.fetch({
|
|
success: function() {
|
|
_categoryDetails = category;
|
|
CategoryStore.emitChange();
|
|
}
|
|
});
|
|
};
|
|
|
|
//var setHovered = function(id) {
|
|
//sectionState.hoveredSection = id;
|
|
//}
|
|
|
|
|
|
// Extend SectionStore with EventEmitter to add eventing capabilities
|
|
var CategoryStore = _.extend({}, EventEmitter.prototype, {
|
|
|
|
getCategoryDetails: function() {
|
|
return _categoryDetails;
|
|
},
|
|
// Emit Change event
|
|
emitChange: function() {
|
|
console.log("Emmiting Section change!");
|
|
this.emit('change');
|
|
},
|
|
|
|
// Add change listener
|
|
addChangeListener: function(callback) {
|
|
this.on('change', callback);
|
|
},
|
|
|
|
// Remove change listener
|
|
removeChangeListener: function(callback) {
|
|
this.removeListener('change', callback);
|
|
}
|
|
});
|
|
|
|
|
|
// Register callback with AppDispatcher
|
|
AppDispatcher.register(function(payload) {
|
|
var action = payload.action;
|
|
var text;
|
|
|
|
switch(action.actionType) {
|
|
|
|
// Respond to SELECT_ITEM action
|
|
//case SectionConstants.LOAD_SECTIONS:
|
|
//loadSections();
|
|
//break;
|
|
|
|
//case SectionConstants.SET_SECTION_HOVER:
|
|
//setHovered(action.section.get('id'));
|
|
//break;
|
|
|
|
//case SectionConstants.UNSET_SECTION_HOVER:
|
|
//setHovered('');
|
|
//break;
|
|
|
|
case CategoryConstants.LOAD_CATEGORY_DETAILS:
|
|
loadCategoryDetails(action.categoryId);
|
|
break;
|
|
|
|
default:
|
|
return true;
|
|
}
|
|
|
|
// If action was responded to, emit change event
|
|
CategoryStore.emitChange();
|
|
return true;
|
|
|
|
});
|
|
|
|
module.exports = CategoryStore;
|