From 8df587aaade4ce2661dbe785edc0d49cab03be93 Mon Sep 17 00:00:00 2001 From: Athou Date: Thu, 1 Aug 2013 11:17:38 +0200 Subject: [PATCH] don't display entries twice when refreshing during loading (fix #473) --- .../com/commafeed/frontend/model/Entries.java | 22 +++++++++++++++++++ .../frontend/rest/resources/CategoryREST.java | 2 ++ .../frontend/rest/resources/EntryREST.java | 4 +++- .../frontend/rest/resources/FeedREST.java | 3 +++ src/main/webapp/js/controllers.js | 3 +++ 5 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/commafeed/frontend/model/Entries.java b/src/main/java/com/commafeed/frontend/model/Entries.java index 1ce2a0a6..80a44a0f 100644 --- a/src/main/java/com/commafeed/frontend/model/Entries.java +++ b/src/main/java/com/commafeed/frontend/model/Entries.java @@ -35,6 +35,12 @@ public class Entries implements Serializable { @ApiProperty("if the query has more elements") private boolean hasMore; + @ApiProperty("the requested offset") + private int offset; + + @ApiProperty("the requested limit") + private int limit; + @ApiProperty("list of entries") private List entries = Lists.newArrayList(); @@ -94,4 +100,20 @@ public class Entries implements Serializable { this.hasMore = hasMore; } + public int getOffset() { + return offset; + } + + public void setOffset(int offset) { + this.offset = offset; + } + + public int getLimit() { + return limit; + } + + public void setLimit(int limit) { + this.limit = limit; + } + } diff --git a/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java b/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java index f017a261..88a1b007 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/CategoryREST.java @@ -106,6 +106,8 @@ public class CategoryREST extends AbstractResourceREST { limit = Math.max(0, limit); Entries entries = new Entries(); + entries.setOffset(offset); + entries.setLimit(limit); boolean unreadOnly = readType == ReadType.unread; if (StringUtils.isBlank(id)) { id = ALL; diff --git a/src/main/java/com/commafeed/frontend/rest/resources/EntryREST.java b/src/main/java/com/commafeed/frontend/rest/resources/EntryREST.java index 1bc0cbd8..c4dcbf5a 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/EntryREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/EntryREST.java @@ -98,7 +98,9 @@ public class EntryREST extends AbstractResourceREST { Preconditions.checkArgument(StringUtils.length(keywords) >= 3); Entries entries = new Entries(); - + entries.setOffset(offset); + entries.setLimit(limit); + List subs = feedSubscriptionDAO.findAll(getUser()); List entriesStatus = feedEntryStatusDAO.findBySubscriptions(subs, false, keywords, null, offset, limit + 1, ReadingOrder.desc, true); diff --git a/src/main/java/com/commafeed/frontend/rest/resources/FeedREST.java b/src/main/java/com/commafeed/frontend/rest/resources/FeedREST.java index 00b666fb..d1d5c9b2 100644 --- a/src/main/java/com/commafeed/frontend/rest/resources/FeedREST.java +++ b/src/main/java/com/commafeed/frontend/rest/resources/FeedREST.java @@ -145,6 +145,9 @@ public class FeedREST extends AbstractResourceREST { limit = Math.max(0, limit); Entries entries = new Entries(); + entries.setOffset(offset); + entries.setLimit(limit); + boolean unreadOnly = readType == ReadType.unread; Date newerThanDate = newerThan == null ? null : new Date(Long.valueOf(newerThan)); diff --git a/src/main/webapp/js/controllers.js b/src/main/webapp/js/controllers.js index a9d0dbb2..b17961d2 100644 --- a/src/main/webapp/js/controllers.js +++ b/src/main/webapp/js/controllers.js @@ -721,6 +721,9 @@ module.controller('FeedListCtrl', [ } var callback = function(data) { + if (data.offset == 0) { + $scope.entries = []; + } for ( var i = 0; i < data.entries.length; i++) { $scope.entries.push(data.entries[i]); }