case -2: $items = $itemMapper->findEveryItemByStatus(OCA\News\StatusFlag::UNREAD); break; case -1: $items = $itemMapper->findEveryItemByStatus(OCA\News\StatusFlag::UNREAD | OCA\News\StatusFlag::IMPORTANT); break; default: $items = $itemMapper->findAllStatus($feedId, OCA\News\StatusFlag::UNREAD); break; } // FIXME: maybe there is a way to set all items read in the // FeedMapper instead of iterating through every item and updating as // necessary $success = false; if ($mostRecentItemId !== 0) { $mostRecentItem = $itemMapper->findById($mostRecentItemId); } $unreadCount = count($items); foreach ($items as $item) { // FIXME: this should compare the modified date if ($mostRecentItemId === 0 || $item->getDate() <= $mostRecentItem->getDate()) { $item->setRead(); $success = $itemMapper->update($item); $unreadCount--; } } $l = OC_L10N::get('news'); // FIXME: when we have no items we to mark read we shouldnt throw an error $success = true; if (!$success) { OCP\JSON::error(array('data' => array('message' => $l->t('Error setting all items as read.'))));
* @author Alessandro Cosentino * Copyright (c) 2012 - Alessandro Cosentino <*****@*****.**> * * This file is licensed under the Affero General Public License version 3 or later. * See the COPYING-README file * */ // Check if we are a user OCP\JSON::checkLoggedIn(); OCP\JSON::checkAppEnabled('news'); OCP\JSON::callCheck(); session_write_close(); $itemId = $_POST['itemId']; $status = $_POST['status']; $itemMapper = new OCA\News\ItemMapper(); $item = $itemMapper->findById($itemId); switch ($status) { case 'read': $item->setRead(); break; case 'unread': $item->setUnread(); break; case 'important': $item->setImportant(); break; case 'unimportant': $item->setUnimportant(); break; default: break;