diff options
Diffstat (limited to 'src/web/js')
-rw-r--r-- | src/web/js/actions/MiddlePanelActions.js | 1 | ||||
-rw-r--r-- | src/web/js/components/RightPanel.react.js | 2 | ||||
-rw-r--r-- | src/web/js/stores/MenuStore.js | 34 |
3 files changed, 30 insertions, 7 deletions
diff --git a/src/web/js/actions/MiddlePanelActions.js b/src/web/js/actions/MiddlePanelActions.js index 08510f29..f805b7b1 100644 --- a/src/web/js/actions/MiddlePanelActions.js +++ b/src/web/js/actions/MiddlePanelActions.js @@ -39,6 +39,7 @@ var reloadIfNecessaryAndDispatch = function(dispath_payload) { jquery.getJSON('/middle_panel', filters, function(payload) { dispath_payload.articles = payload.articles; + dispath_payload.filters = filters; JarrDispatcher.dispatch(dispath_payload); _last_fetched_with = MiddlePanelStore.getRequestFilter(); }); diff --git a/src/web/js/components/RightPanel.react.js b/src/web/js/components/RightPanel.react.js index 3b625689..1e66ce39 100644 --- a/src/web/js/components/RightPanel.react.js +++ b/src/web/js/components/RightPanel.react.js @@ -39,7 +39,7 @@ var PanelMixin = { </ButtonGroup>); } return (<div id="right-panel-heading" className="panel-heading"> - <h4>{icon}<strong>Title:</strong> {this.getTitle()}</h4> + <h4>{icon}{this.getTitle()}</h4> {btn_grp} </div>); }, diff --git a/src/web/js/stores/MenuStore.js b/src/web/js/stores/MenuStore.js index d3c44355..36dee363 100644 --- a/src/web/js/stores/MenuStore.js +++ b/src/web/js/stores/MenuStore.js @@ -56,12 +56,34 @@ MenuStore.dispatchToken = JarrDispatcher.register(function(action) { break; case ActionTypes.PARENT_FILTER: MenuStore.setActive(action.filter_type, action.filter_id); - break; - case ActionTypes.MENU_FILTER: - MenuStore.setFilter(action.filter); - break; - case ActionTypes.MENU_FILTER: - MenuStore.setFilter(action.filter); + if(action.filters && action.articles && !action.filters.query + && action.filters.filter == 'unread') { + var new_unread = {}; + action.articles.map(function(article) { + if(!(article.feed_id in new_unread)) { + new_unread[article.feed_id] = 0; + } + if(!article.read) { + new_unread[article.feed_id] += 1; + } + }); + var changed = false; + for(var feed_id in new_unread) { + var old_unread = MenuStore._datas.feeds[feed_id].unread; + if(old_unread == new_unread[feed_id]) { + continue; + } + changed = true; + MenuStore._datas.feeds[feed_id].unread = new_unread[feed_id]; + var cat_id = MenuStore._datas.feeds[feed_id].category_id; + MenuStore._datas.categories[cat_id].unread -= old_unread; + MenuStore._datas.categories[cat_id].unread += new_unread[feed_id]; + } + if(changed) { + MenuStore.emitChange(); + } + } + break; case ActionTypes.MENU_FILTER: MenuStore.setFilter(action.filter); |