From 79032a17fb1f458aae723098ddc1a96c28daad05 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Fri, 30 May 2014 00:06:49 +0200 Subject: add autopaging --- js/controller/ContentController.js | 54 ++++++++++++++++++++++++++++---------- 1 file changed, 40 insertions(+), 14 deletions(-) (limited to 'js/controller/ContentController.js') diff --git a/js/controller/ContentController.js b/js/controller/ContentController.js index 804c898e5..5a75f68ab 100644 --- a/js/controller/ContentController.js +++ b/js/controller/ContentController.js @@ -8,7 +8,8 @@ * @copyright Bernhard Posselt 2014 */ app.controller('ContentController', -function (Publisher, FeedResource, ItemResource, SettingsResource, data) { +function (Publisher, FeedResource, ItemResource, SettingsResource, data, + $route, $routeParams) { 'use strict'; this.isAutoPagingEnabled = true; @@ -27,10 +28,12 @@ function (Publisher, FeedResource, ItemResource, SettingsResource, data) { }; this.markRead = (itemId) => { - ItemResource.markItemRead(itemId); - let item = ItemResource.get(itemId); - FeedResource.markItemOfFeedRead(item.feedId); + + if (!item.keepUnread) { + ItemResource.markItemRead(itemId); + FeedResource.markItemOfFeedRead(item.feedId); + } }; this.getFeed = (feedId) => { @@ -59,25 +62,48 @@ function (Publisher, FeedResource, ItemResource, SettingsResource, data) { return SettingsResource.get('compact'); }; - // TBD - this.getRelativeDate = (timestamp) => { - console.log(timestamp); + this.autoPagingEnabled = () => { + return this.isAutoPagingEnabled; }; - this.autoPage = () => { - console.log('hi'); + this.markReadEnabled = () => { + return !SettingsResource.get('preventReadOnScroll'); }; this.scrollRead = (itemIds) => { - console.log(itemIds); + let ids = []; + + for (let itemId of itemIds) { + let item = ItemResource.get(itemId); + if (!item.keepUnread) { + ids.push(itemId); + FeedResource.markItemOfFeedRead(item.feedId); + } + } + + ItemResource.markItemsRead(ids); }; - this.autoPagingEnabled = () => { - return this.isAutoPagingEnabled; + this.autoPage = () => { + this.isAutoPagingEnabled = false; + + let type = $route.current.$$route.type; + let id = $routeParams.id; + + ItemResource.autoPage(type, id).success((data) => { + Publisher.publishAll(data); + + if (data.items.length > 0) { + this.isAutoPagingEnabled = true; + } + }).error(() => { + this.isAutoPagingEnabled = true; + }); }; - this.markReadEnabled = () => { - return !SettingsResource.get('preventReadOnScroll'); + // TBD + this.getRelativeDate = (timestamp) => { + console.log(timestamp); }; }); \ No newline at end of file -- cgit v1.2.3