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.'))));
Exemple #2
0
* @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;