aboutsummaryrefslogtreecommitdiff
path: root/src/web/js/components
diff options
context:
space:
mode:
authorFrançois Schmidts <francois.schmidts@gmail.com>2016-01-31 18:59:36 +0100
committerFrançois Schmidts <francois.schmidts@gmail.com>2016-01-31 18:59:36 +0100
commit64964d2fcfa73e18b1316d788bacd11e2180bb7d (patch)
tree9c11cbd18ae6bf3a8c852c5e66a7eeb0e131c115 /src/web/js/components
parentsaving categ (diff)
downloadnewspipe-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.js8
-rw-r--r--src/web/js/components/RightPanel.react.js32
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()}
bgstack15