diff --git a/app/controllers/history.php b/app/controllers/history.php index aa6d167..2d8849b 100644 --- a/app/controllers/history.php +++ b/app/controllers/history.php @@ -60,7 +60,7 @@ Router\get_action('flush-history', function () { $group_id = Request\int_param('group_id', null); if ($group_id !== null) { - Model\Item\mark_group_as_removed($group_id); + Model\ItemGroup\mark_all_as_removed($group_id); } else { Model\Item\mark_all_as_removed(); } diff --git a/app/controllers/item.php b/app/controllers/item.php index f4b2989..ce02061 100644 --- a/app/controllers/item.php +++ b/app/controllers/item.php @@ -161,7 +161,7 @@ Router\get_action('mark-all-read', function () { $group_id = Request\int_param('group_id', null); if ($group_id !== null) { - Model\Item\mark_group_as_read($group_id); + Model\ItemGroup\mark_all_as_read($group_id); } else { Model\Item\mark_all_as_read(); } diff --git a/app/models/bookmark.php b/app/models/bookmark.php index 79c0670..55542ec 100644 --- a/app/models/bookmark.php +++ b/app/models/bookmark.php @@ -47,7 +47,6 @@ function get_all_items($offset = null, $limit = null, $feed_ids = array()) ->findAll(); } -// Enable/disable bookmark flag function set_flag($id, $value) { if ($value == 1) { diff --git a/app/models/item.php b/app/models/item.php index 93287f5..f2d1264 100644 --- a/app/models/item.php +++ b/app/models/item.php @@ -297,32 +297,6 @@ function mark_all_as_removed() ->save(array('status' => 'removed', 'content' => '')); } -// Mark all items of a group as read -function mark_group_as_read($group_id) -{ - // workaround for missing update with join - $feed_ids = Group\get_feeds_by_group($group_id); - - return Database::getInstance('db') - ->table('items') - ->eq('status', 'unread') - ->in('feed_id', $feed_ids) - ->update(array('status' => 'read')); -} - -// Mark all items of a group as removed -function mark_group_as_removed($group_id) -{ - $feed_ids = Group\get_feeds_by_group($group_id); - - return Database::getInstance('db') - ->table('items') - ->eq('status', 'read') - ->eq('bookmark', 0) - ->in('feed_id', $feed_ids) - ->save(array('status' => 'removed', 'content' => '')); -} - // Mark all read items to removed after X days function autoflush_read() { diff --git a/app/models/item_group.php b/app/models/item_group.php new file mode 100644 index 0000000..a4b2545 --- /dev/null +++ b/app/models/item_group.php @@ -0,0 +1,29 @@ +table('items') + ->eq('status', 'unread') + ->in('feed_id', $feed_ids) + ->update(array('status' => 'read')); +} + +function mark_all_as_removed($group_id) +{ + $feed_ids = Group\get_feeds_by_group($group_id); + + return Database::getInstance('db') + ->table('items') + ->eq('status', 'read') + ->eq('bookmark', 0) + ->in('feed_id', $feed_ids) + ->save(array('status' => 'removed', 'content' => '')); +} diff --git a/composer.json b/composer.json index 30dde02..4ccae91 100644 --- a/composer.json +++ b/composer.json @@ -44,6 +44,7 @@ "app/models/feed.php", "app/models/item.php", "app/models/item_feed.php", + "app/models/item_group.php", "app/models/bookmark.php", "app/models/proxy.php", "app/models/auto_update.php", diff --git a/vendor/composer/autoload_files.php b/vendor/composer/autoload_files.php index 0af2422..f527e31 100644 --- a/vendor/composer/autoload_files.php +++ b/vendor/composer/autoload_files.php @@ -25,6 +25,7 @@ return array( 'e8bcd5701df9db676003b87e27b091c9' => $baseDir . '/app/models/feed.php', '7318478c1ab18cc398507355a29a93c3' => $baseDir . '/app/models/item.php', 'c0f7d31e45ab3b885f3f3567be6b8cda' => $baseDir . '/app/models/item_feed.php', + 'c9e2906d32a129f63c98d210037c227b' => $baseDir . '/app/models/item_group.php', '546998ee103e300ad614144f30a1de8e' => $baseDir . '/app/models/bookmark.php', '0bdc342df97b8a477df96dbb288b21bf' => $baseDir . '/app/models/proxy.php', 'd06207bd4580f7e9250cf39d0d648fc5' => $baseDir . '/app/models/auto_update.php', diff --git a/vendor/composer/autoload_static.php b/vendor/composer/autoload_static.php index 257e94c..8b44d37 100644 --- a/vendor/composer/autoload_static.php +++ b/vendor/composer/autoload_static.php @@ -26,6 +26,7 @@ class ComposerStaticInitfd7e8d436e1dc450edc3153ac8bc31b4 'e8bcd5701df9db676003b87e27b091c9' => __DIR__ . '/../..' . '/app/models/feed.php', '7318478c1ab18cc398507355a29a93c3' => __DIR__ . '/../..' . '/app/models/item.php', 'c0f7d31e45ab3b885f3f3567be6b8cda' => __DIR__ . '/../..' . '/app/models/item_feed.php', + 'c9e2906d32a129f63c98d210037c227b' => __DIR__ . '/../..' . '/app/models/item_group.php', '546998ee103e300ad614144f30a1de8e' => __DIR__ . '/../..' . '/app/models/bookmark.php', '0bdc342df97b8a477df96dbb288b21bf' => __DIR__ . '/../..' . '/app/models/proxy.php', 'd06207bd4580f7e9250cf39d0d648fc5' => __DIR__ . '/../..' . '/app/models/auto_update.php',