forked from Archives/Athou_commafeed
fix #25
This commit is contained in:
@@ -66,6 +66,7 @@ public class FeedEntryService extends GenericDAO<FeedEntry> {
|
||||
|
||||
feed.setLastUpdated(Calendar.getInstance().getTime());
|
||||
feed.setMessage(null);
|
||||
feed.setErrorCount(0);
|
||||
feedService.update(feed);
|
||||
}
|
||||
|
||||
|
||||
@@ -49,6 +49,7 @@ public class FeedUpdater {
|
||||
+ e.getMessage());
|
||||
feed.setLastUpdated(Calendar.getInstance().getTime());
|
||||
feed.setMessage("Unable to refresh feed: " + e.getMessage());
|
||||
feed.setErrorCount(feed.getErrorCount() + 1);
|
||||
feedService.update(feed);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,6 +34,8 @@ public class Feed extends AbstractModel {
|
||||
@Column(length = 1024)
|
||||
private String message;
|
||||
|
||||
private int errorCount;
|
||||
|
||||
@ManyToMany(mappedBy = "feeds")
|
||||
private Set<FeedEntry> entries = Sets.newHashSet();
|
||||
|
||||
@@ -104,4 +106,12 @@ public class Feed extends AbstractModel {
|
||||
this.link = link;
|
||||
}
|
||||
|
||||
public int getErrorCount() {
|
||||
return errorCount;
|
||||
}
|
||||
|
||||
public void setErrorCount(int errorCount) {
|
||||
this.errorCount = errorCount;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.google.common.collect.Lists;
|
||||
public class Entries implements Serializable {
|
||||
private String name;
|
||||
private String message;
|
||||
private int errorCount;
|
||||
private List<Entry> entries = Lists.newArrayList();
|
||||
|
||||
public String getName() {
|
||||
@@ -35,4 +36,12 @@ public class Entries implements Serializable {
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public int getErrorCount() {
|
||||
return errorCount;
|
||||
}
|
||||
|
||||
public void setErrorCount(int errorCount) {
|
||||
this.errorCount = errorCount;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -55,6 +55,7 @@ public class EntriesREST extends AbstractREST {
|
||||
if (subscription != null) {
|
||||
entries.setName(subscription.getTitle());
|
||||
entries.setMessage(subscription.getFeed().getMessage());
|
||||
entries.setErrorCount(subscription.getFeed().getErrorCount());
|
||||
|
||||
List<FeedEntryStatus> unreadEntries = feedEntryStatusService
|
||||
.getStatuses(subscription.getFeed(), getUser(),
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
ng-class="{selected: (node.id == selectedId && selectedType == 'category')}">{{formatCategoryName({category:node})}}
|
||||
</label>
|
||||
<ul>
|
||||
<li ng-repeat="feed in node.feeds" ng-mouseenter="hovered=feed" ng-mouseleave="hovered=null" ng-class="{error: feed.message}">
|
||||
<li ng-repeat="feed in node.feeds" ng-mouseenter="hovered=feed" ng-mouseleave="hovered=null" ng-class="{error: feed.message && feed.errorCount > 10}">
|
||||
<div class="dropdown pull-right">
|
||||
<a dropdown-toggle class="pull-right"><i ng-show="hovered==feed" class="icon icon-chevron-down"></i> </a>
|
||||
<ul class="dropdown-menu">
|
||||
|
||||
@@ -253,6 +253,7 @@ module.controller('FeedListCtrl', function($scope, $stateParams, $http, $route,
|
||||
|
||||
$scope.name = null;
|
||||
$scope.message = null;
|
||||
$scope.errorCount = 0;
|
||||
$scope.entries = [];
|
||||
|
||||
$scope.settingsService = SettingsService;
|
||||
@@ -287,6 +288,7 @@ module.controller('FeedListCtrl', function($scope, $stateParams, $http, $route,
|
||||
}
|
||||
$scope.name = data.name;
|
||||
$scope.message = data.message;
|
||||
$scope.errorCount = data.errorCount;
|
||||
$scope.busy = false;
|
||||
$scope.hasMore = data.entries.length == limit;
|
||||
};
|
||||
@@ -407,6 +409,8 @@ module.controller('FeedListCtrl', function($scope, $stateParams, $http, $route,
|
||||
$scope.$on('reload', function(event, args) {
|
||||
$scope.name = null;
|
||||
$scope.entries = [];
|
||||
$scope.message = null;
|
||||
$scope.errorCount = 0;
|
||||
$scope.busy = false;
|
||||
$scope.hasMore = true;
|
||||
$scope.loadMoreEntries();
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
</div>
|
||||
|
||||
<div infinite-scroll="loadMoreEntries()" infinite-scroll-disabled="busy || !settingsService.settings.readingMode" infinite-scroll-distance="1" id="feed-accordion">
|
||||
<div ng-show="message">Error while loading this feed : {{message}}</div>
|
||||
<div ng-show="message && errorCount > 10">Error while loading this feed : {{message}}</div>
|
||||
<div ng-repeat="entry in entries" class="entry" scroll-to="isOpen && current == entry" scroll-to-offset="-58">
|
||||
<a href="{{entry.url}}" target="_blank" class="entry-heading" ng-click="entryClicked(entry, $event)"
|
||||
ng-class="{open: current == entry, closed: current != entry}">
|
||||
@@ -29,6 +29,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="no-entries" ng-show="!message && name && entries.length == 0 && !busy">"{{name}}" has no unread items.</div>
|
||||
<div class="no-entries" ng-show="name && entries.length == 0 && !busy">"{{name}}" has no unread items.</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user