From 2ba25ab970f9430116b55578aa9cef6ce157db88 Mon Sep 17 00:00:00 2001 From: Bernhard Posselt Date: Thu, 16 Aug 2012 12:56:17 +0200 Subject: set only non displayed items as read --- ajax/setallitemsread.php | 7 +++++-- js/news.js | 12 +++++++++++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/ajax/setallitemsread.php b/ajax/setallitemsread.php index 2d2ccead5..c5b589481 100644 --- a/ajax/setallitemsread.php +++ b/ajax/setallitemsread.php @@ -16,6 +16,7 @@ OCP\JSON::checkAppEnabled('news'); OCP\JSON::callCheck(); $feedId = $_POST['feedId']; +$mostRecentItemId = $_POST['mostRecentItemId']; $itemMapper = new OCA\News\ItemMapper(); $items = $itemMapper->findAllStatus($feedId, OCA\News\StatusFlag::UNREAD); @@ -24,8 +25,10 @@ $items = $itemMapper->findAllStatus($feedId, OCA\News\StatusFlag::UNREAD); // FeedMapper instead of iterating through every item and updating as // necessary foreach($items as $item){ - $item->setRead(); - $success = $itemMapper->update($item); + if($item->getId() <= $mostRecentItemId){ + $item->setRead(); + $success = $itemMapper->update($item); + } } $l = OC_L10N::get('news'); diff --git a/js/news.js b/js/news.js index e17565b85..1c89fcc61 100644 --- a/js/news.js +++ b/js/news.js @@ -232,7 +232,17 @@ News={ return false; }, setAllItemsRead:function(feedId) { - $.post(OC.filePath('news', 'ajax', 'setallitemsread.php'), { 'feedId' : feedId }, function(jsonData) { + $items = $('.feed_item'); + // dont execute if there are not read + if($items.length <= 0){ + return; + } + // get the first items id to set lower ids as read + data = { + 'feedId' : feedId, + 'mostRecentItemId': $('.feed_item:first').data('id'), + }; + $.post(OC.filePath('news', 'ajax', 'setallitemsread.php'), data, function(jsonData) { if(jsonData.status == 'success'){ // mark ui items as read $("#feed_items .feed_item:not(.read)").each(function(){ -- cgit v1.2.3