diff --git a/app/Models/Themes.php b/app/Models/Themes.php index 02f7909dd..585ff30f4 100644 --- a/app/Models/Themes.php +++ b/app/Models/Themes.php @@ -70,52 +70,52 @@ class FreshRSS_Themes extends Minz_Model { public static function alt($name) { static $alts = array( - 'add' => '✚', + 'add' => '➕', //✚ 'all' => '☰', - 'bookmark' => '★', - 'bookmark-add' => '✚', - 'bookmark-tag' => '🔖', - 'category' => '☷', + 'bookmark' => '✨', //★ + 'bookmark-add' => '➕', //✚ + 'bookmark-tag' => '📑', + 'category' => '🗂️', //☷ 'close' => '❌', - 'configure' => '⚙', + 'configure' => '⚙️', 'debug' => '🐛', - 'down' => '▽', + 'down' => '🔽', //▽ 'error' => '❌', - 'favorite' => '★', + 'favorite' => '⭐', //★ 'FreshRSS-logo' => '⊚', - 'help' => 'ⓘ', + 'help' => 'ℹ️', //ⓘ 'icon' => '⊚', - 'key' => '⚿', + 'key' => '🔑', //⚿ 'label' => '🏷️', - 'link' => '↗', - 'look' => '👁', + 'link' => '↗️', //↗ + 'look' => '👀', //👁 'login' => '🔒', 'logout' => '🔓', 'next' => '⏩', 'non-starred' => '☆', - 'notice' => 'ⓘ', + 'notice' => 'ℹ️', //ⓘ 'prev' => '⏪', - 'read' => '☑', - 'rss' => '☄', - 'unread' => '☐', + 'read' => '☑️', //☑ + 'rss' => '📣', //☄ + 'unread' => '🔲', //☐ 'refresh' => '🔃', //↻ 'search' => '🔍', - 'share' => '♺', - 'sort-down' => '↓', - 'sort-up' => '↑', - 'starred' => '★', - 'stats' => '%', - 'tag' => '⚐', - 'up' => '△', - 'view-normal' => '☰', - 'view-global' => '☷', - 'view-reader' => '☕', - 'warning' => '△', + 'share' => '♻️', //♺ + 'sort-down' => '⬇️', //↓ + 'sort-up' => '⬆️', //↑ + 'starred' => '⭐', //★ + 'stats' => '📈', //% + 'tag' => '🔖', //⚐ + 'up' => '🔼', //△ + 'view-normal' => '📰', //☰ + 'view-global' => '📖', //☷ + 'view-reader' => '📜', + 'warning' => '⚠️', //△ ); return isset($name) ? $alts[$name] : ''; } - public static function icon($name, $urlOnly = false, $altOnly = false) { + public static function icon($name, $urlOnly = false) { $alt = self::alt($name); if ($alt == '') { return ''; @@ -124,6 +124,14 @@ class FreshRSS_Themes extends Minz_Model { $url = $name . '.svg'; $url = isset(self::$themeIcons[$url]) ? (self::$themeIconsUrl . $url) : (self::$defaultIconsUrl . $url); - return $urlOnly ? Minz_Url::display($url) : '' . $alt . ''; + if ($urlOnly) { + return Minz_Url::display($url); + } + + if (FreshRSS_Context::$user_conf->icons_as_emojis) { + return '' . $alt . ''; + } + + return '' . $alt . ''; } } diff --git a/app/Models/UserConfiguration.php b/app/Models/UserConfiguration.php index 864bf4ec8..26346bc62 100644 --- a/app/Models/UserConfiguration.php +++ b/app/Models/UserConfiguration.php @@ -39,6 +39,7 @@ * @property int $since_hours_posts_per_rss * @property bool $show_fav_unread * @property bool $show_favicons + * @property bool $icons_as_emojis * @property bool $show_nav_buttons * @property string $sort_order * @property array> $sharing diff --git a/config-user.default.php b/config-user.default.php index d8ef7d10d..0b849d838 100644 --- a/config-user.default.php +++ b/config-user.default.php @@ -82,7 +82,11 @@ return array ( 'rss_view' => '4', 'toggle_media' => 'v', ), + + # Disabling favicons and using emojis instead of icons improves performance for users with many feeds 'show_favicons' => true, + 'icons_as_emojis' => false, + 'topline_read' => true, 'topline_favorite' => true, 'topline_thumbnail' => 'none', diff --git a/p/scripts/main.js b/p/scripts/main.js index 67c41f07a..140253c6c 100644 --- a/p/scripts/main.js +++ b/p/scripts/main.js @@ -764,7 +764,7 @@ function openCategory(category_id) { category_element.querySelector('.tree-folder-items').classList.add('active'); const img = category_element.querySelector('a.dropdown-toggle img'); img.src = img.src.replace('/icons/down.', '/icons/up.'); - img.alt = '△'; + img.alt = '🔼'; } function init_column_categories() { @@ -786,15 +786,23 @@ function init_column_categories() { document.getElementById('aside_feed').onclick = function (ev) { let a = ev.target.closest('.tree-folder > .tree-folder-title > a.dropdown-toggle'); if (a) { - const img = a.querySelector('img'); + const icon = a.querySelector('.icon'); const category_id = a.closest('.category').id; - if (img.alt === '▽') { - img.src = img.src.replace('/icons/down.', '/icons/up.'); - img.alt = '△'; + if (icon.alt === '🔽' || icon.innerHTML === '🔽') { + if (icon.src) { + icon.src = icon.src.replace('/icons/down.', '/icons/up.'); + icon.alt = '🔼'; + } else { + icon.innerHTML = '🔼'; + } rememberOpenCategory(category_id, true); } else { - img.src = img.src.replace('/icons/up.', '/icons/down.'); - img.alt = '▽'; + if (icon.src) { + icon.src = icon.src.replace('/icons/up.', '/icons/down.'); + icon.alt = '🔽'; + } else { + icon.innerHTML = '🔽'; + } rememberOpenCategory(category_id, false); }