diff options
author | François Schmidts <francois.schmidts@gmail.com> | 2016-01-31 18:59:36 +0100 |
---|---|---|
committer | François Schmidts <francois.schmidts@gmail.com> | 2016-01-31 18:59:36 +0100 |
commit | 64964d2fcfa73e18b1316d788bacd11e2180bb7d (patch) | |
tree | 9c11cbd18ae6bf3a8c852c5e66a7eeb0e131c115 /src/web/js/components | |
parent | saving categ (diff) | |
download | newspipe-64964d2fcfa73e18b1316d788bacd11e2180bb7d.tar.gz newspipe-64964d2fcfa73e18b1316d788bacd11e2180bb7d.tar.bz2 newspipe-64964d2fcfa73e18b1316d788bacd11e2180bb7d.zip |
handling errors from one page app
Diffstat (limited to 'src/web/js/components')
-rw-r--r-- | src/web/js/components/Menu.react.js | 8 | ||||
-rw-r--r-- | src/web/js/components/RightPanel.react.js | 32 |
2 files changed, 36 insertions, 4 deletions
diff --git a/src/web/js/components/Menu.react.js b/src/web/js/components/Menu.react.js index ad28015c..b68a84eb 100644 --- a/src/web/js/components/Menu.react.js +++ b/src/web/js/components/Menu.react.js @@ -32,9 +32,9 @@ var FeedItem = React.createClass({ if(this.props.active) { classes += " bg-primary"; } - if(this.props.error_count >= 6) { + if(this.props.error_count >= MenuStore._datas.max_error) { classes += " bg-danger"; - } else if(this.props.error_count > 3) { + } else if(this.props.error_count > MenuStore._datas.error_threshold) { classes += " bg-warning"; } var title = <span className="title">{this.props.title}</span>; @@ -97,7 +97,7 @@ var CategoryGroup = React.createClass({ var feeds = this.props.feeds.filter(function(feed) { if (filter == 'unread' && feed.unread <= 0) { return false; - } else if (filter == 'error' && feed.error_count <= 3) { + } else if (filter == 'error' && feed.error_count <= MenuStore._datas.error_threshold) { return false; } return true; @@ -201,7 +201,7 @@ var Menu = React.createClass({ var feeds = []; var unread = 0; this.state.categories[cat_id].feeds.map(function(feed_id) { - if(this.state.feeds[feed_id].error_count > 3) { + if(this.state.feeds[feed_id].error_count > MenuStore._datas.error_threshold) { feed_in_error = true; } unread += this.state.feeds[feed_id].unread; diff --git a/src/web/js/components/RightPanel.react.js b/src/web/js/components/RightPanel.react.js index 009b40df..bf352a61 100644 --- a/src/web/js/components/RightPanel.react.js +++ b/src/web/js/components/RightPanel.react.js @@ -247,7 +247,38 @@ var Feed = React.createClass({ <dt>Category</dt><dd>{content}</dd> </dl>); }, + getErrorFields: function() { + if(this.props.obj.error_count < MenuStore._datas.error_threshold) { + return; + } + if(this.props.obj.error_count < MenuStore._datas.max_error) { + return (<dl className="dl-horizontal"> + <dt>State</dt> + <dd>The download of this feed has encountered some problems. However its error counter will be reinitialized at the next successful retrieving.</dd> + <dt>Last error</dt> + <dd>{this.props.obj.last_error}</dd> + </dl>); + } + return (<dl className="dl-horizontal"> + <dt>State</dt> + <dd>That feed has encountered too much consecutive errors and won't be retrieved anymore.</dd> + + <dt>Last error</dt> + <dd>{this.props.obj.last_error}</dd> + <dd> + <Button onClick={this.resetErrors}>Reset error count + </Button> + </dd> + </dl>); + }, + resetErrors: function() { + var obj = this.state.obj; + obj.error_count = 0; + this.setState({obj: obj}, function() { + RightPanelActions.resetErrors(this.props.obj.id); + }.bind(this)); + }, getBody: function() { return (<div className="panel-body"> <dl className="dl-horizontal"> @@ -260,6 +291,7 @@ var Feed = React.createClass({ text={this.props.obj.last_retrieved} /> </dd> </dl> + {this.getErrorFields()} {this.getCategorySelect()} {this.getCore()} {this.getFilterRows()} |