diff options
| author | 2024-12-27 12:03:59 +0100 | |
|---|---|---|
| committer | 2024-12-27 12:03:59 +0100 | |
| commit | 897e4a3f4a273d50c28157edb67612b2d7fa2e6f (patch) | |
| tree | 5ea452b4edb58e272522a2932f42128d581ce1d9 | |
| parent | 1d10b3697d5fa04415d36059d5e04ad71aae0b78 (diff) | |
Search in all feeds (#7144)
* Search in all feeds
Search in PRIORITY_ARCHIVED with `&get=A`
fix https://github.com/FreshRSS/FreshRSS/discussions/7143
* Fix type
* Search in PRIORITY_ARCHIVED with `&get=Z`
* More
* Fixes
* One more fix
* Extra features in user queries
* Move i18n key
* Fix overview
* Enlarge query boxes
* Revert i18n spelling
* i18n: it
Thanks @UserRoot-Luca
Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>
---------
Co-authored-by: UserRoot-Luca <55756898+UserRoot-Luca@users.noreply.github.com>
40 files changed, 122 insertions, 25 deletions
diff --git a/app/Controllers/entryController.php b/app/Controllers/entryController.php index 2cbd256bc..5637bd101 100644 --- a/app/Controllers/entryController.php +++ b/app/Controllers/entryController.php @@ -96,6 +96,14 @@ class FreshRSS_entry_Controller extends FreshRSS_ActionController { $entryDAO->markReadEntries($id_max, false, FreshRSS_Feed::PRIORITY_MAIN_STREAM, FreshRSS_Feed::PRIORITY_IMPORTANT, FreshRSS_Context::$search, FreshRSS_Context::$state, $is_read); break; + case 'A': + $entryDAO->markReadEntries($id_max, false, FreshRSS_Feed::PRIORITY_CATEGORY, FreshRSS_Feed::PRIORITY_IMPORTANT, + FreshRSS_Context::$search, FreshRSS_Context::$state, $is_read); + break; + case 'Z': + $entryDAO->markReadEntries($id_max, false, FreshRSS_Feed::PRIORITY_ARCHIVED, FreshRSS_Feed::PRIORITY_IMPORTANT, + FreshRSS_Context::$search, FreshRSS_Context::$state, $is_read); + break; case 'i': $entryDAO->markReadEntries($id_max, false, FreshRSS_Feed::PRIORITY_IMPORTANT, null, FreshRSS_Context::$search, FreshRSS_Context::$state, $is_read); diff --git a/app/Controllers/indexController.php b/app/Controllers/indexController.php index a977386a3..70bb25a77 100644 --- a/app/Controllers/indexController.php +++ b/app/Controllers/indexController.php @@ -205,7 +205,9 @@ class FreshRSS_index_Controller extends FreshRSS_ActionController { $this->view->excludeMutedFeeds = $type !== 'f'; // Exclude muted feeds except when we focus on a feed switch ($type) { - case 'a': + case 'a': // All PRIORITY_MAIN_STREAM + case 'A': // All except PRIORITY_ARCHIVED + case 'Z': // All including PRIORITY_ARCHIVED $this->view->categories = FreshRSS_Context::categories(); break; case 'c': diff --git a/app/Models/Context.php b/app/Models/Context.php index eeb16f414..6cdda909c 100644 --- a/app/Models/Context.php +++ b/app/Models/Context.php @@ -20,7 +20,7 @@ final class FreshRSS_Context { public static int $total_unread = 0; public static int $total_important_unread = 0; - /** @var array{'all':int,'read':int,'unread':int} */ + /** @var array{all:int,read:int,unread:int} */ public static array $total_starred = [ 'all' => 0, 'read' => 0, @@ -29,15 +29,17 @@ final class FreshRSS_Context { public static int $get_unread = 0; - /** @var array{'all':bool,'starred':bool,'important':bool,'feed':int|false,'category':int|false,'tag':int|false,'tags':bool} */ + /** @var array{all:bool,A:bool,starred:bool,important:bool,feed:int|false,category:int|false,tag:int|false,tags:bool,Z:bool} */ public static array $current_get = [ 'all' => false, + 'A' => false, 'starred' => false, 'important' => false, 'feed' => false, 'category' => false, 'tag' => false, 'tags' => false, + 'Z' => false, ]; public static string $next_get = 'a'; @@ -271,12 +273,14 @@ final class FreshRSS_Context { * Return the current get as a string or an array. * * If $array is true, the first item of the returned value is 'f' or 'c' or 't' and the second is the id. - * @phpstan-return ($asArray is true ? array{'a'|'c'|'f'|'i'|'s'|'t'|'T',bool|int} : string) + * @phpstan-return ($asArray is true ? array{'a'|'A'|'c'|'f'|'i'|'s'|'t'|'T'|'Z',bool|int} : string) * @return string|array{string,bool|int} */ public static function currentGet(bool $asArray = false): string|array { if (self::$current_get['all']) { return $asArray ? ['a', true] : 'a'; + } elseif (self::$current_get['A']) { + return $asArray ? ['A', true] : 'A'; } elseif (self::$current_get['important']) { return $asArray ? ['i', true] : 'i'; } elseif (self::$current_get['starred']) { @@ -301,6 +305,8 @@ final class FreshRSS_Context { } } elseif (self::$current_get['tags']) { return $asArray ? ['T', true] : 'T'; + } elseif (self::$current_get['Z']) { + return $asArray ? ['Z', true] : 'Z'; } return ''; } @@ -312,6 +318,14 @@ final class FreshRSS_Context { return self::$current_get['all'] != false; } + public static function isAllAndCategories(): bool { + return self::$current_get['A'] != false; + } + + public static function isAllAndArchived(): bool { + return self::$current_get['Z'] != false; + } + /** * @return bool true if the current request targets important feeds, false otherwise. */ @@ -349,12 +363,14 @@ final class FreshRSS_Context { return match ($type) { 'a' => self::$current_get['all'], + 'A' => self::$current_get['A'], 'i' => self::$current_get['important'], 's' => self::$current_get['starred'], 'f' => self::$current_get['feed'] == $id, 'c' => self::$current_get['category'] == $id, 't' => self::$current_get['tag'] == $id, 'T' => self::$current_get['tags'] || self::$current_get['tag'], + 'Z' => self::$current_get['Z'], default => false, }; } @@ -386,13 +402,23 @@ final class FreshRSS_Context { } switch ($type) { - case 'a': + case 'a': // All PRIORITY_MAIN_STREAM self::$current_get['all'] = true; + self::$description = FreshRSS_Context::systemConf()->meta_description; + self::$get_unread = self::$total_unread; + break; + case 'A': // All except PRIORITY_ARCHIVED + self::$current_get['A'] = true; + self::$description = FreshRSS_Context::systemConf()->meta_description; + self::$get_unread = self::$total_unread; + break; + case 'Z': // All including PRIORITY_ARCHIVED + self::$current_get['Z'] = true; self::$name = _t('index.feed.title'); self::$description = FreshRSS_Context::systemConf()->meta_description; self::$get_unread = self::$total_unread; break; - case 'i': + case 'i': // Priority important feeds self::$current_get['important'] = true; self::$name = _t('index.menu.important'); self::$description = FreshRSS_Context::systemConf()->meta_description; diff --git a/app/Models/EntryDAO.php b/app/Models/EntryDAO.php index f9bf57220..525687c90 100644 --- a/app/Models/EntryDAO.php +++ b/app/Models/EntryDAO.php @@ -1170,7 +1170,7 @@ SQL; } /** - * @phpstan-param 'a'|'A'|'i'|'s'|'S'|'c'|'f'|'t'|'T'|'ST' $type + * @phpstan-param 'a'|'A'|'i'|'s'|'S'|'c'|'f'|'t'|'T'|'ST'|'Z' $type * @param int $id category/feed/tag ID * @param 'ASC'|'DESC' $order * @return array{0:array<int|string>,1:string} @@ -1185,13 +1185,16 @@ SQL; $where = ''; $values = []; switch ($type) { - case 'a': //All PRIORITY_MAIN_STREAM + case 'a': // All PRIORITY_MAIN_STREAM $where .= 'f.priority >= ' . FreshRSS_Feed::PRIORITY_MAIN_STREAM . ' '; break; - case 'A': //All except PRIORITY_ARCHIVED - $where .= 'f.priority > ' . FreshRSS_Feed::PRIORITY_ARCHIVED . ' '; + case 'A': // All except PRIORITY_ARCHIVED + $where .= 'f.priority >= ' . FreshRSS_Feed::PRIORITY_CATEGORY . ' '; + break; + case 'Z': // All including PRIORITY_ARCHIVED + $where .= 'f.priority >= ' . FreshRSS_Feed::PRIORITY_ARCHIVED . ' '; break; - case 'i': //Priority important feeds + case 'i': // Priority important feeds $where .= 'f.priority >= ' . FreshRSS_Feed::PRIORITY_IMPORTANT . ' '; break; case 's': //Starred. Deprecated: use $state instead @@ -1240,7 +1243,7 @@ SQL; } /** - * @phpstan-param 'a'|'A'|'s'|'S'|'i'|'c'|'f'|'t'|'T'|'ST' $type + * @phpstan-param 'a'|'A'|'s'|'S'|'i'|'c'|'f'|'t'|'T'|'ST'|'Z' $type * @param 'ASC'|'DESC' $order * @param int $id category/feed/tag ID * @throws FreshRSS_EntriesGetter_Exception @@ -1275,7 +1278,7 @@ SQL; } /** - * @phpstan-param 'a'|'A'|'s'|'S'|'i'|'c'|'f'|'t'|'T'|'ST' $type + * @phpstan-param 'a'|'A'|'s'|'S'|'i'|'c'|'f'|'t'|'T'|'ST'|'Z' $type * @param int $id category/feed/tag ID * @param 'ASC'|'DESC' $order * @return Traversable<FreshRSS_Entry> @@ -1341,7 +1344,7 @@ SQL; } /** - * @phpstan-param 'a'|'A'|'s'|'S'|'c'|'f'|'t'|'T'|'ST' $type + * @phpstan-param 'a'|'A'|'s'|'S'|'c'|'f'|'t'|'T'|'ST'|'Z' $type * @param int $id category/feed/tag ID * @param 'ASC'|'DESC' $order * @return array<numeric-string>|null diff --git a/app/Models/UserQuery.php b/app/Models/UserQuery.php index d3a56bb6a..6933deb1f 100644 --- a/app/Models/UserQuery.php +++ b/app/Models/UserQuery.php @@ -126,12 +126,18 @@ class FreshRSS_UserQuery { $this->get = $get; if ($this->get === '') { $this->get_type = 'all'; - } elseif (preg_match('/(?P<type>[acfistT])(_(?P<id>\d+))?/', $get, $matches)) { + } elseif (preg_match('/(?P<type>[aAcfistTZ])(_(?P<id>\d+))?/', $get, $matches)) { $id = intval($matches['id'] ?? '0'); switch ($matches['type']) { - case 'a': + case 'a': // All PRIORITY_MAIN_STREAM $this->get_type = 'all'; break; + case 'A': // All except PRIORITY_ARCHIVED + $this->get_type = 'A'; + break; + case 'Z': // All including PRIORITY_ARCHIVED + $this->get_type = 'Z'; + break; case 'c': $this->get_type = 'category'; $c = $this->categories[$id] ?? null; diff --git a/app/i18n/cs/conf.php b/app/i18n/cs/conf.php index ea87356bd..b4cef925b 100644 --- a/app/i18n/cs/conf.php +++ b/app/i18n/cs/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Zobrazit podle štítku', 'type' => 'Typ', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Zobrazit všechny články', 'get_all_labels' => 'Zobrazit články s libovolným štítkem', 'get_category' => 'Zobrazit kategorii „%s“', diff --git a/app/i18n/de/conf.php b/app/i18n/de/conf.php index 71ed1438e..22d2a3938 100644 --- a/app/i18n/de/conf.php +++ b/app/i18n/de/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Nach Labels filtern', 'type' => 'Filter-Typ', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Alle Artikel anzeigen', 'get_all_labels' => 'Alle Artikle mit beliebigem Label anzeigen', 'get_category' => 'Kategorie „%s“ anzeigen', diff --git a/app/i18n/el/conf.php b/app/i18n/el/conf.php index dfd8e92f4..86477370e 100644 --- a/app/i18n/el/conf.php +++ b/app/i18n/el/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Display by label', // TODO 'type' => 'Type', // TODO ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Display all articles', // TODO 'get_all_labels' => 'Display articles with any label', // TODO 'get_category' => 'Display “%s” category', // TODO diff --git a/app/i18n/el/sub.php b/app/i18n/el/sub.php index 42d2607eb..79e64bbb5 100644 --- a/app/i18n/el/sub.php +++ b/app/i18n/el/sub.php @@ -217,7 +217,7 @@ return array( 'show_rendered' => 'Show content', // TODO ), 'show' => array( - 'all' => 'Show all feeds', // TODO + 'all' => 'All feeds', // TODO 'error' => 'Show only feeds with errors', // TODO ), 'showing' => array( diff --git a/app/i18n/en-us/conf.php b/app/i18n/en-us/conf.php index 6527a2ed6..0288bc0d9 100644 --- a/app/i18n/en-us/conf.php +++ b/app/i18n/en-us/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Display by label', // IGNORE 'type' => 'Type', // IGNORE ), + 'get_A' => 'Show all feeds, also those shown in their category', // IGNORE + 'get_Z' => 'Show all feeds, also archived ones', // IGNORE 'get_all' => 'Display all articles', // IGNORE 'get_all_labels' => 'Display articles with any label', // IGNORE 'get_category' => 'Display “%s” category', // IGNORE diff --git a/app/i18n/en-us/sub.php b/app/i18n/en-us/sub.php index c885e5861..a6afee939 100644 --- a/app/i18n/en-us/sub.php +++ b/app/i18n/en-us/sub.php @@ -217,7 +217,7 @@ return array( 'show_rendered' => 'Show content', // IGNORE ), 'show' => array( - 'all' => 'Show all feeds', // IGNORE + 'all' => 'All feeds', // IGNORE 'error' => 'Show only feeds with errors', // IGNORE ), 'showing' => array( diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index b0114f7d4..da0230a30 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Display by label', 'type' => 'Type', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Display all articles', 'get_all_labels' => 'Display articles with any label', 'get_category' => 'Display “%s” category', diff --git a/app/i18n/en/sub.php b/app/i18n/en/sub.php index 640e5bfda..c6e2c24d9 100644 --- a/app/i18n/en/sub.php +++ b/app/i18n/en/sub.php @@ -217,7 +217,7 @@ return array( 'show_rendered' => 'Show content', ), 'show' => array( - 'all' => 'Show all feeds', + 'all' => 'All feeds', 'error' => 'Show only feeds with errors', ), 'showing' => array( diff --git a/app/i18n/es/conf.php b/app/i18n/es/conf.php index 40d982557..610c7333c 100644 --- a/app/i18n/es/conf.php +++ b/app/i18n/es/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Mostrar por etiqueta', 'type' => 'Tipo', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Mostrar todos los artículos', 'get_all_labels' => 'Mostrar artículos con cualquier etiqueta', 'get_category' => 'Mostrar la categoría “%s”', diff --git a/app/i18n/fa/conf.php b/app/i18n/fa/conf.php index afae6e3df..9a1890c0a 100644 --- a/app/i18n/fa/conf.php +++ b/app/i18n/fa/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => ' نمایش بر اساس برچسب', 'type' => ' نوع', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => ' نمایش همه مقالات', 'get_all_labels' => 'Display articles with any label', // TODO 'get_category' => ' دسته «%s» را نمایش دهید', diff --git a/app/i18n/fi/conf.php b/app/i18n/fi/conf.php index 441526f1a..3a9a12b88 100644 --- a/app/i18n/fi/conf.php +++ b/app/i18n/fi/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Näytä merkinnän mukaan', 'type' => 'Laji', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Näytä kaikki artikkelit', 'get_all_labels' => 'Näytä artikkelit, joissa on mikä tahansa merkintä', 'get_category' => 'Näytä luokka “%s”', diff --git a/app/i18n/fr/conf.php b/app/i18n/fr/conf.php index 79e31dd23..bbf7fd6d1 100644 --- a/app/i18n/fr/conf.php +++ b/app/i18n/fr/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Afficher par étiquette', 'type' => 'Type', // IGNORE ), + 'get_A' => 'Tous les flux, y compris ceux limités à leur catégorie', + 'get_Z' => 'Tous les flux, y compris les archivés', 'get_all' => 'Afficher tous les articles', 'get_all_labels' => 'Afficher les articles avec une étiquette', 'get_category' => 'Afficher la catégorie <em>%s<em>', diff --git a/app/i18n/he/conf.php b/app/i18n/he/conf.php index bd63c2d01..704459b97 100644 --- a/app/i18n/he/conf.php +++ b/app/i18n/he/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Display by label', // TODO 'type' => 'Type', // TODO ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'הצגת כל המאמרים', 'get_all_labels' => 'Display articles with any label', // TODO 'get_category' => 'הצגת קטגוריה “%s”', diff --git a/app/i18n/he/sub.php b/app/i18n/he/sub.php index 049d63729..64d5f5bbe 100644 --- a/app/i18n/he/sub.php +++ b/app/i18n/he/sub.php @@ -217,7 +217,7 @@ return array( 'show_rendered' => 'Show content', // TODO ), 'show' => array( - 'all' => 'Show all feeds', // TODO + 'all' => 'All feeds', // TODO 'error' => 'Show only feeds with errors', // TODO ), 'showing' => array( diff --git a/app/i18n/hu/conf.php b/app/i18n/hu/conf.php index bdf15aecb..9a9e896a1 100644 --- a/app/i18n/hu/conf.php +++ b/app/i18n/hu/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Rendezés címke szerint', 'type' => 'Típus', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Minden cikk megjelenítése', 'get_all_labels' => 'Cikkek megjelenítése bármilyen címkével', 'get_category' => '„%s” kategória megjelenítése', diff --git a/app/i18n/id/conf.php b/app/i18n/id/conf.php index ba95372d5..f9e7e39d8 100644 --- a/app/i18n/id/conf.php +++ b/app/i18n/id/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Tampilkan berdasarkan label', 'type' => 'Tipe', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Tampilkan semua artikel', 'get_all_labels' => 'Tampilkan artikel dengan setiap label', 'get_category' => 'Tampilkan kategori "%s"', diff --git a/app/i18n/id/sub.php b/app/i18n/id/sub.php index c0194397a..bcc6a86ab 100644 --- a/app/i18n/id/sub.php +++ b/app/i18n/id/sub.php @@ -217,7 +217,7 @@ return array( 'show_rendered' => 'Show content', // TODO ), 'show' => array( - 'all' => 'Show all feeds', // TODO + 'all' => 'All feeds', // TODO 'error' => 'Show only feeds with errors', // TODO ), 'showing' => array( diff --git a/app/i18n/it/conf.php b/app/i18n/it/conf.php index 1fa9b51c5..dbb6a696e 100644 --- a/app/i18n/it/conf.php +++ b/app/i18n/it/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Tag', 'type' => 'Tipo', ), + 'get_A' => 'Mostra tutti i feed, anche quelli mostrati nella loro categoria', + 'get_Z' => 'Mostra tutti i feed, anche quelli archiviati', 'get_all' => 'Mostra tutti gli articoli', 'get_all_labels' => 'Mostra gli articoli con qualsiasi etichetta', 'get_category' => 'Mostra la categoria “%s” ', diff --git a/app/i18n/ja/conf.php b/app/i18n/ja/conf.php index 9d043f58d..1421b8c19 100644 --- a/app/i18n/ja/conf.php +++ b/app/i18n/ja/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'タグごとに表示する', 'type' => 'タイプ', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'すべての記事を表示する', 'get_all_labels' => '任意のラベルで記事を表示する', 'get_category' => 'カテゴリ“%s”を表示する', diff --git a/app/i18n/ko/conf.php b/app/i18n/ko/conf.php index a51faf522..e26171384 100644 --- a/app/i18n/ko/conf.php +++ b/app/i18n/ko/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => '태그별로 표시', 'type' => '유형', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => '모든 글 표시', 'get_all_labels' => '라벨이 있는 글 표시', 'get_category' => '“%s” 카테고리 표시', diff --git a/app/i18n/lv/conf.php b/app/i18n/lv/conf.php index 7e370db5d..d921d7694 100644 --- a/app/i18n/lv/conf.php +++ b/app/i18n/lv/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Rādīt pēc birkas', 'type' => 'Veids', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Rādīt visus rakstus', 'get_all_labels' => 'Display articles with any label', // TODO 'get_category' => 'Rādīt kategoriju “%s”', diff --git a/app/i18n/nl/conf.php b/app/i18n/nl/conf.php index 5013d08f1..ab680930c 100644 --- a/app/i18n/nl/conf.php +++ b/app/i18n/nl/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Weergeven op label', 'type' => 'Type', // IGNORE ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Toon alle artikelen', 'get_all_labels' => 'Artikelen met elk label tonen', 'get_category' => 'Toon „%s” categorie', diff --git a/app/i18n/oc/conf.php b/app/i18n/oc/conf.php index 23663142c..7cc11693d 100644 --- a/app/i18n/oc/conf.php +++ b/app/i18n/oc/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Afichatge per etiqueta', 'type' => 'Tipe', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Mostrar totes los articles', 'get_all_labels' => 'Display articles with any label', // TODO 'get_category' => 'Mostrar la categoria « %s »', diff --git a/app/i18n/pl/conf.php b/app/i18n/pl/conf.php index fe08d0c65..34d9fa773 100644 --- a/app/i18n/pl/conf.php +++ b/app/i18n/pl/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Według tagu', 'type' => 'Rodzaj', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Wyświetlenie wszystkich wiadomości', 'get_all_labels' => 'Wyświetl wiadomości z dowolnymi etykietami', 'get_category' => 'Wyświetlenie kategorii “%s”', diff --git a/app/i18n/pt-br/conf.php b/app/i18n/pt-br/conf.php index b9c5b7e45..ec4c24d9e 100644 --- a/app/i18n/pt-br/conf.php +++ b/app/i18n/pt-br/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Exibir por tag', 'type' => 'Tipo', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Mostrar todos os artigos', 'get_all_labels' => 'Exibir artigos com qualquer rótulo', 'get_category' => 'Visualizar “%s” categoria', diff --git a/app/i18n/ru/conf.php b/app/i18n/ru/conf.php index 80ce407c7..c52f20ac9 100644 --- a/app/i18n/ru/conf.php +++ b/app/i18n/ru/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Отображение по метке', 'type' => 'Тип', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Показать все статьи', 'get_all_labels' => 'Показать все статьи с любыми метками', 'get_category' => 'Показать категорию “%s”', diff --git a/app/i18n/sk/conf.php b/app/i18n/sk/conf.php index c605c3dab..000a943a1 100644 --- a/app/i18n/sk/conf.php +++ b/app/i18n/sk/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Zobraziť podľa štítku', 'type' => 'Typ', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Zobraziť všetky články', 'get_all_labels' => 'Zobraziť články so všetkými štítkami', 'get_category' => 'Zobraziť kategóriu “%s”', diff --git a/app/i18n/tr/conf.php b/app/i18n/tr/conf.php index 7c1d7cf51..68fa16819 100644 --- a/app/i18n/tr/conf.php +++ b/app/i18n/tr/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => 'Etikete göre göster', 'type' => 'Tür', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => 'Tüm makaleleri göster', 'get_all_labels' => 'Herhangi etikete sahip makaleleri göster ', 'get_category' => '“%s” kategorisini göster', diff --git a/app/i18n/zh-cn/conf.php b/app/i18n/zh-cn/conf.php index 8795dacb3..e80136b10 100644 --- a/app/i18n/zh-cn/conf.php +++ b/app/i18n/zh-cn/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => '按标签显示', 'type' => '类型', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => '显示所有文章', 'get_all_labels' => '显示所有打了标签的文章', 'get_category' => '显示分类“%s”', diff --git a/app/i18n/zh-tw/conf.php b/app/i18n/zh-tw/conf.php index 61bf61d7a..4b1a6f4af 100644 --- a/app/i18n/zh-tw/conf.php +++ b/app/i18n/zh-tw/conf.php @@ -138,6 +138,8 @@ return array( 'tags' => '按標籤顯示', 'type' => '類型', ), + 'get_A' => 'Show all feeds, also those shown in their category', // TODO + 'get_Z' => 'Show all feeds, also archived ones', // TODO 'get_all' => '顯示所有文章', 'get_all_labels' => '顯示任何標籤的文章', 'get_category' => '顯示分類 “%s”', diff --git a/app/layout/aside_feed.phtml b/app/layout/aside_feed.phtml index 18a1a9939..166d3954d 100644 --- a/app/layout/aside_feed.phtml +++ b/app/layout/aside_feed.phtml @@ -29,7 +29,7 @@ <form id="mark-read-aside" method="post"> <input type="hidden" name="_csrf" value="<?= FreshRSS_Auth::csrfToken() ?>" /> <ul id="sidebar" class="tree scrollbar-thin"> - <li class="tree-folder category all<?= FreshRSS_Context::isCurrentGet('a') ? ' active' : '' ?>"> + <li class="tree-folder category all<?= FreshRSS_Context::isCurrentGet('a') || FreshRSS_Context::isCurrentGet('A') || FreshRSS_Context::isCurrentGet('Z') ? ' active' : '' ?>"> <a class="tree-folder-title" data-unread="<?= format_number(FreshRSS_Context::$total_unread) ?>" href="<?= _url('index', $actual_view) . $state_filter_manual ?>"> <?= _i('all') ?><span class="title" data-unread="<?= format_number(FreshRSS_Context::$total_unread) ?>"><?= _t('index.menu.main_stream') ?></span> </a> diff --git a/app/layout/layout.phtml b/app/layout/layout.phtml index 685d2d48f..217239f01 100644 --- a/app/layout/layout.phtml +++ b/app/layout/layout.phtml @@ -49,7 +49,7 @@ } ?> <link rel="alternate" type="application/rss+xml" title="<?= $this->rss_title ?>" href="<?= Minz_Url::display($url_rss) ?>" /> -<?php } if (FreshRSS_Context::isAll() || FreshRSS_Context::isCategory() || FreshRSS_Context::isFeed()) { +<?php } if (FreshRSS_Context::isAll() || FreshRSS_Context::isAllAndCategories() || FreshRSS_Context::isAllAndArchived() || FreshRSS_Context::isCategory() || FreshRSS_Context::isFeed()) { $opml_rss = $url_base; $opml_rss['a'] = 'opml'; $opml_rss['params']['user'] = Minz_User::name() ?? ''; diff --git a/app/views/helpers/configure/query.phtml b/app/views/helpers/configure/query.phtml index 97ef0c480..f0f339276 100644 --- a/app/views/helpers/configure/query.phtml +++ b/app/views/helpers/configure/query.phtml @@ -121,6 +121,8 @@ <label class="group-name" for="query_get"><?= _t('conf.query.filter.type') ?></label> <div class="group-controls"> <select name="query[get]" class="w100" id="query_get" size="10"> + <option value="Z" <?= 'Z' === $this->query->getGet() ? 'selected="selected"' : '' ?>><?= _t('conf.query.get_Z') ?></option> + <option value="A" <?= 'A' === $this->query->getGet() ? 'selected="selected"' : '' ?>><?= _t('conf.query.get_A') ?></option> <option value="a" <?= in_array($this->query->getGet(), ['', 'a'], true) ? 'selected="selected"' : '' ?>><?= _t('index.feed.title') ?></option> <option value="i" <?= 'i' === $this->query->getGet() ? 'selected="selected"' : '' ?>><?= _t('index.menu.important') ?></option> <option value="s" <?= 's' === $this->query->getGet() ? 'selected="selected"' : '' ?>><?= _t('index.feed.title_fav') ?></option> diff --git a/p/themes/base-theme/frss.css b/p/themes/base-theme/frss.css index a39d393c6..fe988986d 100644 --- a/p/themes/base-theme/frss.css +++ b/p/themes/base-theme/frss.css @@ -937,7 +937,7 @@ input[type="checkbox"]:focus-visible { margin: 20px 20px 20px 0; display: inline-block; max-width: 95%; - width: 20rem; + width: 30rem; vertical-align: top; } diff --git a/p/themes/base-theme/frss.rtl.css b/p/themes/base-theme/frss.rtl.css index 4e4e25979..d3d76f6a9 100644 --- a/p/themes/base-theme/frss.rtl.css +++ b/p/themes/base-theme/frss.rtl.css @@ -937,7 +937,7 @@ input[type="checkbox"]:focus-visible { margin: 20px 0 20px 20px; display: inline-block; max-width: 95%; - width: 20rem; + width: 30rem; vertical-align: top; } |
