diff --git a/app/Controllers/categoryController.php b/app/Controllers/categoryController.php index 181c4d81182..8b42e372a2f 100644 --- a/app/Controllers/categoryController.php +++ b/app/Controllers/categoryController.php @@ -229,11 +229,12 @@ public function emptyAction(): void { } $muted = Minz_Request::paramTernary('muted'); + $errored = Minz_Request::paramTernary('errored'); // List feeds to remove then related user queries. - $feeds = $feedDAO->listByCategory($id, $muted); + $feeds = $feedDAO->listByCategory($id, $muted, $errored); - if ($feedDAO->deleteFeedByCategory($id, $muted)) { + if ($feedDAO->deleteFeedByCategory($id, $muted, $errored)) { // TODO: Delete old favicons // Remove related queries diff --git a/app/Models/FeedDAO.php b/app/Models/FeedDAO.php index bb4209ecaaa..fa52838cac1 100644 --- a/app/Models/FeedDAO.php +++ b/app/Models/FeedDAO.php @@ -267,12 +267,16 @@ public function deleteFeed(int $id): int|false { /** * @param bool|null $muted to include only muted feeds + * @param bool|null $errored to include only errored feeds */ - public function deleteFeedByCategory(int $id, ?bool $muted = null): int|false { + public function deleteFeedByCategory(int $id, ?bool $muted = null, ?bool $errored = null): int|false { $sql = 'DELETE FROM `_feed` WHERE category=?'; if ($muted) { $sql .= ' AND ttl < 0'; } + if ($errored) { + $sql .= ' AND error <> 0'; + } $stm = $this->pdo->prepare($sql); $values = [$id]; @@ -406,13 +410,17 @@ public function listTitles(int $id, int $limit = 0): array { /** * @param bool|null $muted to include only muted feeds + * @param bool|null $errored to include only errored feeds * @return array */ - public function listByCategory(int $cat, ?bool $muted = null): array { + public function listByCategory(int $cat, ?bool $muted = null, ?bool $errored = null): array { $sql = 'SELECT * FROM `_feed` WHERE category=:category'; if ($muted) { $sql .= ' AND ttl < 0'; } + if ($errored) { + $sql .= ' AND error <> 0'; + } $res = $this->fetchAssoc($sql, [':category' => $cat]); if ($res == null) { return []; diff --git a/app/i18n/cs/gen.php b/app/i18n/cs/gen.php index e573ad26b5b..b566f5f1108 100644 --- a/app/i18n/cs/gen.php +++ b/app/i18n/cs/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Jít zpět na vaše kanály RSS', 'cancel' => 'Zrušit', 'create' => 'Vytvořit', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Odstranění ztlumených zdrojů', 'demote' => 'Snížit úroveň', 'disable' => 'Zakázat', diff --git a/app/i18n/de/gen.php b/app/i18n/de/gen.php index 4be0731089f..92579601bc9 100644 --- a/app/i18n/de/gen.php +++ b/app/i18n/de/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Zurück zu Ihren RSS-Feeds gehen', 'cancel' => 'Abbrechen', 'create' => 'Erstellen', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Lösche stumm gestellte Feeds', 'demote' => 'Zurückstufen', 'disable' => 'Deaktivieren', diff --git a/app/i18n/el/gen.php b/app/i18n/el/gen.php index bd33bfd2da1..6dddcad3860 100644 --- a/app/i18n/el/gen.php +++ b/app/i18n/el/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Go back to your RSS feeds', // TODO 'cancel' => 'Cancel', // TODO 'create' => 'Create', // TODO + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Delete muted feeds', // TODO 'demote' => 'Demote', // TODO 'disable' => 'Disable', // TODO diff --git a/app/i18n/el/sub.php b/app/i18n/el/sub.php index 89da23a88df..9d277fd07d5 100644 --- a/app/i18n/el/sub.php +++ b/app/i18n/el/sub.php @@ -193,7 +193,7 @@ ), 'method_help' => 'The POST payload has automatic support for application/x-www-form-urlencoded and application/json', // TODO 'method_postparams' => 'Payload for POST', // TODO - 'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under %s.', // TODO + 'moved_category_deleted' => 'When you remove a category, its feeds are automatically classified under %s.', // TODO 'mute' => array( '_' => 'mute', // TODO 'state_is_muted' => 'This feed is muted', // TODO diff --git a/app/i18n/en-us/gen.php b/app/i18n/en-us/gen.php index eb27424bdcb..035c6ad73d6 100644 --- a/app/i18n/en-us/gen.php +++ b/app/i18n/en-us/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Go back to your RSS feeds', // IGNORE 'cancel' => 'Cancel', // IGNORE 'create' => 'Create', // IGNORE + 'delete_all_feeds' => 'Delete all feeds', // IGNORE + 'delete_errored_feeds' => 'Delete feeds with errors', // IGNORE 'delete_muted_feeds' => 'Delete muted feeds', // IGNORE 'demote' => 'Demote', // IGNORE 'disable' => 'Disable', // IGNORE diff --git a/app/i18n/en-us/sub.php b/app/i18n/en-us/sub.php index 4a579a6ccff..da5eea49266 100644 --- a/app/i18n/en-us/sub.php +++ b/app/i18n/en-us/sub.php @@ -193,7 +193,7 @@ ), 'method_help' => 'The POST payload has automatic support for application/x-www-form-urlencoded and application/json', // IGNORE 'method_postparams' => 'Payload for POST', // IGNORE - 'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under %s.', // IGNORE + 'moved_category_deleted' => 'When you remove a category, its feeds are automatically classified under %s.', // IGNORE 'mute' => array( '_' => 'mute', // IGNORE 'state_is_muted' => 'This feed is muted', // IGNORE diff --git a/app/i18n/en/gen.php b/app/i18n/en/gen.php index 883a9f43994..c564b528050 100644 --- a/app/i18n/en/gen.php +++ b/app/i18n/en/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Go back to your RSS feeds', 'cancel' => 'Cancel', 'create' => 'Create', + 'delete_all_feeds' => 'Delete all feeds', + 'delete_errored_feeds' => 'Delete feeds with errors', 'delete_muted_feeds' => 'Delete muted feeds', 'demote' => 'Demote', 'disable' => 'Disable', diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index 3b41318e538..ddd720381c2 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -193,7 +193,7 @@ ), 'method_help' => 'The POST payload has automatic support for application/x-www-form-urlencoded and application/json', 'method_postparams' => 'Payload for POST', - 'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under %s.', + 'moved_category_deleted' => 'When you remove a category, its feeds are automatically classified under %s.', 'mute' => array( '_' => 'mute', 'state_is_muted' => 'This feed is muted', diff --git a/app/i18n/es/gen.php b/app/i18n/es/gen.php index 7da8b0c00fa..936abc1ff08 100644 --- a/app/i18n/es/gen.php +++ b/app/i18n/es/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← regresar a tus fuentes RSS', 'cancel' => 'Cancelar', 'create' => 'Crear', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Eliminar fuentes silenciadas', 'demote' => 'Degradar', 'disable' => 'Desactivar', diff --git a/app/i18n/fa/gen.php b/app/i18n/fa/gen.php index 104f0f2f402..12f1f809d59 100644 --- a/app/i18n/fa/gen.php +++ b/app/i18n/fa/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← به فیدهای RSS خود برگردید', 'cancel' => ' لغو', 'create' => ' ایجاد کنید', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => ' فیدهای خاموش را حذف کنید', 'demote' => ' تنزل دادن', 'disable' => ' غیر فعال کردن', diff --git a/app/i18n/fi/gen.php b/app/i18n/fi/gen.php index 001e84e52f3..c07b9b0841c 100644 --- a/app/i18n/fi/gen.php +++ b/app/i18n/fi/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Palaa RSS-syötteisiin', 'cancel' => 'Peruuta', 'create' => 'Luo', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Poista vaimennetut syötteet', 'demote' => 'Laske tärkeyttä', 'disable' => 'Poista käytöstä', diff --git a/app/i18n/fr/gen.php b/app/i18n/fr/gen.php index 8cfab2050b0..feb179b8c67 100644 --- a/app/i18n/fr/gen.php +++ b/app/i18n/fr/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Retour à vos flux RSS', 'cancel' => 'Annuler', 'create' => 'Créer', + 'delete_all_feeds' => 'Supprimer tous les flux', + 'delete_errored_feeds' => 'Supprimer les flux en erreur', 'delete_muted_feeds' => 'Supprimer les flux désactivés', 'demote' => 'Rétrograder', 'disable' => 'Désactiver', diff --git a/app/i18n/he/gen.php b/app/i18n/he/gen.php index f2513ef6d11..b86817389eb 100644 --- a/app/i18n/he/gen.php +++ b/app/i18n/he/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← חזרה להזנות הRSS שלך', 'cancel' => 'ביטול', 'create' => 'יצירה', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Delete muted feeds', // TODO 'demote' => 'Demote', // TODO 'disable' => 'Disable', // TODO diff --git a/app/i18n/hu/gen.php b/app/i18n/hu/gen.php index 08bc88e37df..beca2be856f 100644 --- a/app/i18n/hu/gen.php +++ b/app/i18n/hu/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Vissza az RSS hírforrásokhoz', 'cancel' => 'Mégsem', 'create' => 'Létrehoz', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Némított hírforrások törlése', 'demote' => 'Lefokoz', 'disable' => 'Kikapcsol', diff --git a/app/i18n/id/gen.php b/app/i18n/id/gen.php index 5b8d4f75ea9..33865da0427 100644 --- a/app/i18n/id/gen.php +++ b/app/i18n/id/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Go back to your RSS feeds', // TODO 'cancel' => 'Cancel', // TODO 'create' => 'Create', // TODO + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Delete muted feeds', // TODO 'demote' => 'Demote', // TODO 'disable' => 'Disable', // TODO diff --git a/app/i18n/id/sub.php b/app/i18n/id/sub.php index de1b171c7f6..023978fc743 100644 --- a/app/i18n/id/sub.php +++ b/app/i18n/id/sub.php @@ -193,7 +193,7 @@ ), 'method_help' => 'The POST payload has automatic support for application/x-www-form-urlencoded and application/json', // TODO 'method_postparams' => 'Payload for POST', // TODO - 'moved_category_deleted' => 'When you delete a category, its feeds are automatically classified under %s.', // TODO + 'moved_category_deleted' => 'When you remove a category, its feeds are automatically classified under %s.', // TODO 'mute' => array( '_' => 'mute', // TODO 'state_is_muted' => 'This feed is muted', // TODO diff --git a/app/i18n/it/gen.php b/app/i18n/it/gen.php index eb22cc2be67..d00abd9b1a7 100644 --- a/app/i18n/it/gen.php +++ b/app/i18n/it/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Indietro', 'cancel' => 'Annulla', 'create' => 'Crea', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Cancella i feed mutati', 'demote' => 'Retrocedi', 'disable' => 'Disabilita', diff --git a/app/i18n/ja/gen.php b/app/i18n/ja/gen.php index 417c620cab3..62a83e028bf 100644 --- a/app/i18n/ja/gen.php +++ b/app/i18n/ja/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← RSSフィードに戻る', 'cancel' => 'キャンセル', 'create' => '作成', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'ミュートにしているフィードを削除する', 'demote' => '寄付', 'disable' => '無効', diff --git a/app/i18n/ko/gen.php b/app/i18n/ko/gen.php index 6251de616b5..c912c7bf258 100644 --- a/app/i18n/ko/gen.php +++ b/app/i18n/ko/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← RSS 피드로 돌아가기', 'cancel' => '취소', 'create' => '생성', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => '음소거된 피드 삭제', 'demote' => '목록 수준 내리기', 'disable' => '비활성화', diff --git a/app/i18n/lv/gen.php b/app/i18n/lv/gen.php index a10e98269b2..912fca30893 100644 --- a/app/i18n/lv/gen.php +++ b/app/i18n/lv/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Atgriezieties pie RSS barotnēm', 'cancel' => 'Atcelt', 'create' => 'Uztaisīt', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Izdzēst izslēgtās barotnes', 'demote' => 'Pazemināt amatu', 'disable' => 'Izslēgt', diff --git a/app/i18n/nl/gen.php b/app/i18n/nl/gen.php index 79180010908..af8a836dcd1 100644 --- a/app/i18n/nl/gen.php +++ b/app/i18n/nl/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Ga terug naar je RSS feeds', 'cancel' => 'Annuleren', 'create' => 'Opslaan', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Gedempte feeds verwijderen', 'demote' => 'Degraderen', 'disable' => 'Uitzetten', diff --git a/app/i18n/oc/gen.php b/app/i18n/oc/gen.php index 2cb17d8eeb3..c47f1070ecb 100644 --- a/app/i18n/oc/gen.php +++ b/app/i18n/oc/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Tornar a vòstres fluxes RSS', 'cancel' => 'Anullar', 'create' => 'Crear', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Suprimir los flux muts', 'demote' => 'Retrogradar', 'disable' => 'Desactivar', diff --git a/app/i18n/pl/gen.php b/app/i18n/pl/gen.php index 690f2ecebd8..3034e57e112 100644 --- a/app/i18n/pl/gen.php +++ b/app/i18n/pl/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Wróć do subskrybowanych kanałów RSS', 'cancel' => 'Anuluj', 'create' => 'Stwórz', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Usuń wyciszone kanały', 'demote' => 'Zdegraduj', 'disable' => 'Wyłącz', diff --git a/app/i18n/pt-br/gen.php b/app/i18n/pt-br/gen.php index 0e2ea1d5723..0009f73283e 100644 --- a/app/i18n/pt-br/gen.php +++ b/app/i18n/pt-br/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Volte para o seu feeds RSS', 'cancel' => 'Cancelar', 'create' => 'Criar', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Excluir feeds silenciados', 'demote' => 'Despromover', 'disable' => 'Desabilitar', diff --git a/app/i18n/ru/gen.php b/app/i18n/ru/gen.php index 1adcf571ccb..89b727767d7 100644 --- a/app/i18n/ru/gen.php +++ b/app/i18n/ru/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Вернуться к вашим RSS-лентам', 'cancel' => 'Отменить', 'create' => 'Создать', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Удалить заглушенные ленты', 'demote' => 'Понизить', 'disable' => 'Отключить', diff --git a/app/i18n/sk/gen.php b/app/i18n/sk/gen.php index 512cfd4fbcd..1143ab7b5f7 100644 --- a/app/i18n/sk/gen.php +++ b/app/i18n/sk/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← Späť na vaše RSS kanály', 'cancel' => 'Zrušiť', 'create' => 'Vytvoriť', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Vymazať stíšené kanály', 'demote' => 'Degradovať', 'disable' => 'Zakázať', diff --git a/app/i18n/tr/gen.php b/app/i18n/tr/gen.php index 577913256a1..13df9d12a08 100644 --- a/app/i18n/tr/gen.php +++ b/app/i18n/tr/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← RSS akışlarınız için geri gidin', 'cancel' => 'İptal', 'create' => 'Oluştur', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => 'Sessize alınmış akışları sil', 'demote' => 'Yöneticilikten al', 'disable' => 'Pasif', diff --git a/app/i18n/zh-cn/gen.php b/app/i18n/zh-cn/gen.php index af3e657209f..8a3ec637643 100644 --- a/app/i18n/zh-cn/gen.php +++ b/app/i18n/zh-cn/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← 返回订阅源', 'cancel' => '取消', 'create' => '创建', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => '删除已暂停的订阅源', 'demote' => '撤销管理员', 'disable' => '禁用', diff --git a/app/i18n/zh-tw/gen.php b/app/i18n/zh-tw/gen.php index 4ea4c071586..c40987138e4 100644 --- a/app/i18n/zh-tw/gen.php +++ b/app/i18n/zh-tw/gen.php @@ -18,6 +18,8 @@ 'back_to_rss_feeds' => '← 返回訂閱源', 'cancel' => '取消', 'create' => '創建', + 'delete_all_feeds' => 'Delete all feeds', // TODO + 'delete_errored_feeds' => 'Delete feeds with errors', // TODO 'delete_muted_feeds' => '刪除已暫停的訂閱源', 'demote' => '撤銷管理員', 'disable' => '禁用', diff --git a/app/views/helpers/category/update.phtml b/app/views/helpers/category/update.phtml index 64f795d74a1..8d97a6eeca1 100644 --- a/app/views/helpers/category/update.phtml +++ b/app/views/helpers/category/update.phtml @@ -249,10 +249,16 @@
+ + + formmethod="post"> + category->isDefault()): ?>