summaryrefslogtreecommitdiffstats
path: root/js/app
diff options
context:
space:
mode:
authorBernhard Posselt <nukeawhale@gmail.com>2013-04-29 13:25:04 +0200
committerBernhard Posselt <nukeawhale@gmail.com>2013-04-29 13:30:01 +0200
commit3fc18156ae0b586e8de0c82949acfa6291317536 (patch)
tree201e97511bea44c58b5e9d78d8cf36ae2e2b54f9 /js/app
parenta03b54c6a59837d0045c140ea7aef3fae95daa95 (diff)
go back to order by id, fix #138, use a newest item id to prevent marking items as read that the user didnt see yet fix #141, also update the starred count periodically
Diffstat (limited to 'js/app')
-rw-r--r--js/app/services/businesslayer/businesslayer.coffee2
-rw-r--r--js/app/services/businesslayer/feedbusinesslayer.coffee11
-rw-r--r--js/app/services/businesslayer/itembusinesslayer.coffee7
-rw-r--r--js/app/services/models/itemmodel.coffee14
-rw-r--r--js/app/services/persistence.coffee22
5 files changed, 21 insertions, 35 deletions
diff --git a/js/app/services/businesslayer/businesslayer.coffee b/js/app/services/businesslayer/businesslayer.coffee
index 622351333..3096eb71e 100644
--- a/js/app/services/businesslayer/businesslayer.coffee
+++ b/js/app/services/businesslayer/businesslayer.coffee
@@ -25,7 +25,7 @@ angular.module('News').factory '_BusinessLayer', ->
class BusinessLayer
- constructor: (@_activeFeed, @_persistence, @_itemModel, @_type, @_newest) ->
+ constructor: (@_activeFeed, @_persistence, @_itemModel, @_type) ->
load: (id) ->
diff --git a/js/app/services/businesslayer/feedbusinesslayer.coffee b/js/app/services/businesslayer/feedbusinesslayer.coffee
index 796a6a6eb..d7b78a75b 100644
--- a/js/app/services/businesslayer/feedbusinesslayer.coffee
+++ b/js/app/services/businesslayer/feedbusinesslayer.coffee
@@ -66,14 +66,11 @@ FeedModel, NewLoading, _ExistsError, Utils, $rootScope, UndoQueue, NewestItem)->
markFeedRead: (feedId) ->
feed = @_feedModel.getById(feedId)
- if angular.isDefined(feed)
+ newestItemId = @_newestItem.getId()
+
+ if angular.isDefined(feed) and angular.isDefined(newestItemId)
feed.unreadCount = 0
- if @_activeFeed.getId() == feedId and
- @_activeFeed.getType() == @_feedType.Feed
- highestItemId = @_newestItem.getId()
- else
- highestItemId = 0
- @_persistence.setFeedRead(feedId, highestItemId)
+ @_persistence.setFeedRead(feedId, newestItemId)
for item in @_itemModel.getAll()
item.setRead()
diff --git a/js/app/services/businesslayer/itembusinesslayer.coffee b/js/app/services/businesslayer/itembusinesslayer.coffee
index 7a2063a97..d9b5951ac 100644
--- a/js/app/services/businesslayer/itembusinesslayer.coffee
+++ b/js/app/services/businesslayer/itembusinesslayer.coffee
@@ -106,12 +106,11 @@ StarredBusinessLayer, NewestItem) ->
loadNext: (callback) ->
- size = @_itemModel.size()
- if size != 0
+ lowestItemId = @_itemModel.getLowestId()
+ if lowestItemId != 0
@_persistence.getItems @_activeFeed.getType(),
@_activeFeed.getId(),
- size,
- @_newestItem.getId(),
+ lowestItemId,
callback
else
callback()
diff --git a/js/app/services/models/itemmodel.coffee b/js/app/services/models/itemmodel.coffee
index 12f557421..1104db4b3 100644
--- a/js/app/services/models/itemmodel.coffee
+++ b/js/app/services/models/itemmodel.coffee
@@ -21,8 +21,8 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
###
angular.module('News').factory 'ItemModel',
-['_Model', '_MaximumQuery', '_MinimumQuery', 'StatusFlag',
-(_Model, _MaximumQuery, _MinimumQuery, StatusFlag) ->
+['_Model', '_MinimumQuery', 'StatusFlag',
+(_Model, _MinimumQuery, StatusFlag) ->
class ItemModel extends _Model
@@ -99,5 +99,15 @@ angular.module('News').factory 'ItemModel',
super(id)
+ getLowestId: ->
+ query = new _MinimumQuery('id')
+ lowestId = @get(query)
+
+ if angular.isDefined(lowestId)
+ return lowestId.id
+ else
+ return 0
+
+
return new ItemModel()
] \ No newline at end of file
diff --git a/js/app/services/persistence.coffee b/js/app/services/persistence.coffee
index 92ced046b..341cf66f6 100644
--- a/js/app/services/persistence.coffee
+++ b/js/app/services/persistence.coffee
@@ -44,14 +44,13 @@ $rootScope) ->
@getAllFolders()
@getAllFeeds()
@userSettingsRead()
- @getStarredItems()
@userSettingsLanguage()
###
ITEM CONTROLLER
###
- getItems: (type, id, offset, newestItemId=0, onSuccess=null) ->
+ getItems: (type, id, offset, onSuccess=null) ->
onSuccess or= ->
# show different loading signs
@@ -74,31 +73,12 @@ $rootScope) ->
offset: offset
id: id
type: type
- newestItemId: newestItemId
onSuccess: successCallbackWrapper
onFailure: failureCallbackWrapper
@_request.get 'news_items', params
- getStarredItems: (onSuccess) ->
- onSuccess or= ->
-
- # loading sign handling
- @_feedLoading.increase()
- successCallbackWrapper = (data) =>
- onSuccess()
- @_feedLoading.decrease()
- failureCallbackWrapper = (data) =>
- @_feedLoading.decrease()
-
- params =
- onSuccess: successCallbackWrapper
- onFailure: failureCallbackWrapper
-
- @_request.get 'news_items_starred', params
-
-
starItem: (feedId, guidHash) ->
###
Stars an item