diff options
Diffstat (limited to 'src/web/js')
-rw-r--r-- | src/web/js/actions/MenuActions.js | 4 | ||||
-rw-r--r-- | src/web/js/actions/MiddlePanelActions.js | 3 | ||||
-rw-r--r-- | src/web/js/components/MiddlePanel.react.js | 29 | ||||
-rw-r--r-- | src/web/js/stores/MiddlePanelStore.js | 17 |
4 files changed, 32 insertions, 21 deletions
diff --git a/src/web/js/actions/MenuActions.js b/src/web/js/actions/MenuActions.js index ce3a1030..f02ea5a0 100644 --- a/src/web/js/actions/MenuActions.js +++ b/src/web/js/actions/MenuActions.js @@ -1,11 +1,13 @@ var JarrDispatcher = require('../dispatcher/JarrDispatcher'); var MenuActionTypes = require('../constants/JarrConstants').MenuActionTypes; +var jquery = require('jquery'); + var MenuActions = { // PARENT FILTERS reload: function() { - $.getJSON('/menu', function(payload) { + jquery.getJSON('/menu', function(payload) { JarrDispatcher.dispatch({ type: MenuActionTypes.RELOAD_MENU, categories: payload.categories, diff --git a/src/web/js/actions/MiddlePanelActions.js b/src/web/js/actions/MiddlePanelActions.js index 9877d0d5..42c18b58 100644 --- a/src/web/js/actions/MiddlePanelActions.js +++ b/src/web/js/actions/MiddlePanelActions.js @@ -1,10 +1,11 @@ var JarrDispatcher = require('../dispatcher/JarrDispatcher'); var MiddlePanelActionTypes = require('../constants/JarrConstants').MiddlePanelActionTypes; +var jquery = require('jquery'); var MiddlePanelActions = { reload: function() { - $.getJSON('/middle_panel', function(payload) { + jquery.getJSON('/middle_panel', function(payload) { JarrDispatcher.dispatch({ type: MiddlePanelActionTypes.RELOAD_MIDDLE_PANEL, articles: payload.articles, diff --git a/src/web/js/components/MiddlePanel.react.js b/src/web/js/components/MiddlePanel.react.js index 51d582c0..c5a9c3f9 100644 --- a/src/web/js/components/MiddlePanel.react.js +++ b/src/web/js/components/MiddlePanel.react.js @@ -50,10 +50,8 @@ var TableLine = React.createClass({ }); var TableBody = React.createClass({ - propTypes: {articles: React.PropTypes.array.isRequired, - }, getInitialState: function() { - return {articles: this.props.articles, + return {articles: [], }; }, render: function() { @@ -73,19 +71,6 @@ var TableBody = React.createClass({ </table> </div> ); - } -}); - -var MiddlePanel = React.createClass({ - getInitialState: function() { - return {articles: []}; - }, - render: function() { - var body = null; - if(this.state.articles.length) { - body = (<TableBody articles={this.state.articles} />); - } - return (<div className="col-md-offset-2 col-md-10 main">{body}</div>); }, componentDidMount: function() { MiddlePanelActions.reload(); @@ -95,8 +80,16 @@ var MiddlePanel = React.createClass({ MiddlePanelStore.removeChangeListener(this._onChange); }, _onChange: function() { - var datas = MiddlePanelStore.getAll(); - this.setState({articles: datas.articles}); + this.setState({articles: MiddlePanelStore.getArticles()}); + }, +}); + +var MiddlePanel = React.createClass({ + render: function() { + return (<div className="col-md-offset-2 col-md-10 main"> + <TableBody /> + </div> + ); }, }); diff --git a/src/web/js/stores/MiddlePanelStore.js b/src/web/js/stores/MiddlePanelStore.js index d5744e20..4e6e04c4 100644 --- a/src/web/js/stores/MiddlePanelStore.js +++ b/src/web/js/stores/MiddlePanelStore.js @@ -11,6 +11,21 @@ var MiddlePanelStore = assign({}, EventEmitter.prototype, { getAll: function() { return this._datas; }, + getArticles: function() { + var articles = []; + var key = null; + var id = null; + if (this._datas.parent_filter_type) { + key = this._datas.parent_filter_type + '_id'; + id = this._datas.parent_filter_id; + } + this._datas.articles.map(function(article) { + if(!key || article[key] == id) { + articles.push(article); + } + }); + return articles; + }, setFilter: function(value) { if(this._datas.filter != value) { this._datas.filter = value; @@ -46,7 +61,7 @@ MiddlePanelStore.dispatchToken = JarrDispatcher.register(function(action) { // PARENT FILTER case MiddlePanelActionTypes.MIDDLE_PANEL_PARENT_FILTER: MiddlePanelStore.setParentFilter(action.parent_type, - action.filter_id); + action.parent_id); break; // FILTER case MiddlePanelActionTypes.MIDDLE_PANEL_FILTER_ALL: |