aboutsummaryrefslogtreecommitdiff
path: root/src/web/js
diff options
context:
space:
mode:
authorFrançois Schmidts <francois.schmidts@gmail.com>2016-01-21 13:48:06 +0100
committerFrançois Schmidts <francois.schmidts@gmail.com>2016-01-26 23:47:08 +0100
commit41aea41aaff0886fd6c211f03db2b54863a97165 (patch)
tree8d67b31febf78b5c40d60dc8ea3cb613fa4a65f2 /src/web/js
parentbootstraping react (diff)
downloadnewspipe-41aea41aaff0886fd6c211f03db2b54863a97165.tar.gz
newspipe-41aea41aaff0886fd6c211f03db2b54863a97165.tar.bz2
newspipe-41aea41aaff0886fd6c211f03db2b54863a97165.zip
filters are working !
Diffstat (limited to 'src/web/js')
-rw-r--r--src/web/js/actions/MenuActions.js4
-rw-r--r--src/web/js/actions/MiddlePanelActions.js3
-rw-r--r--src/web/js/components/MiddlePanel.react.js29
-rw-r--r--src/web/js/stores/MiddlePanelStore.js17
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:
bgstack15