From e41611759179e9495ba434fd2bfc31d308baa021 Mon Sep 17 00:00:00 2001 From: polybjorn Date: Wed, 29 Apr 2026 19:35:31 +0000 Subject: [PATCH] Disable unread counter in tab title and favicon (refresh of #6590) (#8728) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes FreshRSS/FreshRSS#6522. Refresh of FreshRSS/FreshRSS#6590 by @sgzmd, which has been stalled with merge conflicts since 2024. All original commits are preserved as-is in the history (authorship intact); this PR adds a merge with current `edge` plus minor fixes. ## Summary Adds a user setting `show_title_unread` (default `true`, so existing behavior is preserved) that hides the unread article counter from both the tab title and the favicon overlay. A single toggle controls both, matching the request in #6522. ## Screenshots Toggle in display settings: Display settings with new toggle Tab title and favicon when **enabled** (current behavior): Tab title and favicon with unread counter Tab title and favicon when **disabled** (new behavior): Tab title and favicon without unread counter ## Changes on top of #6590 - Resolved merge conflicts with current `edge` (controllers, model, view, `config.default.php`, ~25 i18n files, plus the `zh-tw` -> `zh-TW` rename). - Replaced Czech text mistakenly placed in `de/conf.php` with an English `// TODO` marker so a German speaker can translate later. - Renamed JS context key `show_unread_favicon` -> `show_title_unread` to match the backend property and avoid a confusing dual-name for one setting. - Removed an unused duplicate of `show_title_unread` from `config.default.php` (the setting is read via `userConf()`, never `systemConf()`). - Gated the dynamic title rewrite in `incUnreadsFeed` (`p/scripts/main.js`) on the setting. Without this, marking an article read while the setting was off would re-add the `(N)` prefix to the tab title. - Escaped a stray apostrophe in the Occitan translation that broke parsing. - `make fix-all` re-sorted i18n keys and added `// TODO` placeholders for `fi`, `pt-PT`, `uk` (untranslated by the original PR). ## Test plan - [x] `make test-all` passes (620/620 PHPUnit, phpstan, phpcs, eslint, stylelint, markdownlint clean; `bin/typos` failed locally with a binary arch mismatch on macOS arm64 - unrelated to this change). - [x] Manually tested on a real instance: default behavior unchanged; toggling the setting hides both the tab title `(N) ` prefix and the favicon overlay; toggling back restores both; marking articles read while the setting is off does not bring the counter back; opening and closing an article preserves the user's choice. * Make showing the number of unread items in the title configurable. * Proposed approach to passing show_unread_favicon setting down to client-side code * Fixes and refactoring * Updating default config for the user. When user's config wasn't initialised we are copying it from `config-user.default.php` - if `show_title_unread` is not there, it is assumed to be false, whereas in `config.default.php` it's true by default. This results in inconsistency until user changes the field for the first time in Config->Display. * Adding translations. * fix: gate JS title rewrite + drop dead system config entry The original PR added show_title_unread to both config-user.default.php (read by userConf, the right place) and config.default.php (read by systemConf, never used here). Drop the system-level entry. Also: incUnreadsFeed dynamically rewrites document.title when articles are marked read/unread. That code path was not gated by the setting, so toggling the setting off and then marking an article read would re-add the (N) prefix to the tab title. Skip the document.title / prevTitle write when context.show_title_unread is false. * fix: drop README pollution from local make fix-all `make fix-all` regenerated the README translation tables on macOS, where the case-insensitive filesystem and an untracked local `app/i18n/nb/` directory caused the generator to emit `zh-tw` (lowercase) and an `nb` entry. Reset both README files to upstream/edge so CI can regenerate them cleanly. * fix: restore zh-TW/conf.php from edge (case-insensitive FS damage) The macOS case-insensitive filesystem caused the merge to overwrite upstream/edge's properly-translated zh-TW/conf.php with the older zh-tw/conf.php content from the PR side, regressing translation coverage from 94% to 71%. Reset the file to edge's content and re-add the show_title_unread Traditional Chinese translation. --------- Co-authored-by: sgzmd Co-authored-by: Alexandre Alapetite Co-authored-by: Bjørn A. Andersen --- app/Controllers/configureController.php | 1 + app/Controllers/indexController.php | 4 ++-- app/Models/UserConfiguration.php | 1 + app/i18n/cs/conf.php | 1 + app/i18n/de/conf.php | 1 + app/i18n/el/conf.php | 1 + app/i18n/en-US/conf.php | 1 + app/i18n/en/conf.php | 1 + app/i18n/es/conf.php | 1 + app/i18n/fa/conf.php | 1 + app/i18n/fi/conf.php | 1 + app/i18n/fr/conf.php | 1 + app/i18n/he/conf.php | 1 + app/i18n/hu/conf.php | 1 + app/i18n/id/conf.php | 1 + app/i18n/it/conf.php | 1 + app/i18n/ja/conf.php | 1 + app/i18n/ko/conf.php | 1 + app/i18n/lv/conf.php | 1 + app/i18n/nl/conf.php | 1 + app/i18n/oc/conf.php | 1 + app/i18n/pl/conf.php | 1 + app/i18n/pt-BR/conf.php | 1 + app/i18n/pt-PT/conf.php | 1 + app/i18n/ru/conf.php | 1 + app/i18n/sk/conf.php | 1 + app/i18n/tr/conf.php | 1 + app/i18n/uk/conf.php | 1 + app/i18n/zh-CN/conf.php | 1 + app/i18n/zh-TW/conf.php | 1 + app/views/configure/display.phtml | 11 +++++++++++ app/views/helpers/javascript_vars.phtml | 1 + config-user.default.php | 1 + p/scripts/main.js | 14 ++++++++++---- 34 files changed, 54 insertions(+), 6 deletions(-) diff --git a/app/Controllers/configureController.php b/app/Controllers/configureController.php index b90221ca8..5b4187b41 100644 --- a/app/Controllers/configureController.php +++ b/app/Controllers/configureController.php @@ -74,6 +74,7 @@ class FreshRSS_configure_Controller extends FreshRSS_ActionController { FreshRSS_Context::userConf()->bottomline_date = Minz_Request::paramBoolean('bottomline_date'); FreshRSS_Context::userConf()->bottomline_link = Minz_Request::paramBoolean('bottomline_link'); FreshRSS_Context::userConf()->show_nav_buttons = Minz_Request::paramBoolean('show_nav_buttons'); + FreshRSS_Context::userConf()->show_title_unread = Minz_Request::paramBoolean('show_title_unread'); FreshRSS_Context::userConf()->sidebar_hidden_by_default = Minz_Request::paramBoolean('sidebar_hidden_by_default'); FreshRSS_Context::userConf()->html5_notif_timeout = max(0, Minz_Request::paramInt('html5_notif_timeout')); FreshRSS_Context::userConf()->html5_enable_notif = Minz_Request::paramBoolean('html5_enable_notif'); diff --git a/app/Controllers/indexController.php b/app/Controllers/indexController.php index fe0bad8e9..fb54866bb 100644 --- a/app/Controllers/indexController.php +++ b/app/Controllers/indexController.php @@ -145,7 +145,7 @@ class FreshRSS_index_Controller extends FreshRSS_ActionController { if ($search !== '') { $title = '“' . htmlspecialchars($search, ENT_COMPAT, 'UTF-8') . '”'; } - if (FreshRSS_Context::$get_unread > 0) { + if (FreshRSS_Context::userConf()->show_title_unread && FreshRSS_Context::$get_unread > 0) { $title = '(' . FreshRSS_Context::$get_unread . ') ' . $title; } if (strlen($title) > 0) { @@ -224,7 +224,7 @@ class FreshRSS_index_Controller extends FreshRSS_ActionController { $this->view->rss_title = FreshRSS_Context::$name . ' | ' . FreshRSS_View::title(); $title = _t('index.feed.title_global'); - if (FreshRSS_Context::$get_unread > 0) { + if (FreshRSS_Context::userConf()->show_title_unread && FreshRSS_Context::$get_unread > 0) { $title = '(' . FreshRSS_Context::$get_unread . ') ' . $title; } FreshRSS_View::prependTitle($title . ' · '); diff --git a/app/Models/UserConfiguration.php b/app/Models/UserConfiguration.php index b1331969d..5e25776cf 100644 --- a/app/Models/UserConfiguration.php +++ b/app/Models/UserConfiguration.php @@ -54,6 +54,7 @@ declare(strict_types=1); * @property bool $icons_as_emojis * @property int $simplify_over_n_feeds * @property bool $show_nav_buttons + * @property bool $show_title_unread * @property bool $sidebar_hidden_by_default * @property 'big'|'small'|'none' $mark_read_button * @property 'ASC'|'DESC' $sort_order diff --git a/app/i18n/cs/conf.php b/app/i18n/cs/conf.php index dd8b1d879..804bd1aa0 100644 --- a/app/i18n/cs/conf.php +++ b/app/i18n/cs/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Časový limit HTML5 oznámení', ), 'show_nav_buttons' => 'Zobrazit navigační tlačítka', + 'show_title_unread' => 'Zobrazit počet nepřečtených článků v názvu', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Motiv', diff --git a/app/i18n/de/conf.php b/app/i18n/de/conf.php index d9e424686..b2cd6a6fd 100644 --- a/app/i18n/de/conf.php +++ b/app/i18n/de/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Zeitüberschreitung für HTML5-Benachrichtigung', ), 'show_nav_buttons' => 'Navigations-Buttons anzeigen', + 'show_title_unread' => 'Show number of unread articles in the title', // TODO 'sidebar_hidden_by_default' => 'Seitenleiste standardmäßig ausblenden', 'theme' => array( '_' => 'Layout', diff --git a/app/i18n/el/conf.php b/app/i18n/el/conf.php index 9869479f3..91dc702da 100644 --- a/app/i18n/el/conf.php +++ b/app/i18n/el/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'HTML5 notification timeout', // TODO ), 'show_nav_buttons' => 'Show the navigation buttons', // TODO + 'show_title_unread' => 'Εμφάνιση αριθμού μη αναγνωσμένων άρθρων στον τίτλο', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Theme', // TODO diff --git a/app/i18n/en-US/conf.php b/app/i18n/en-US/conf.php index 926035f8f..ba6ea3065 100644 --- a/app/i18n/en-US/conf.php +++ b/app/i18n/en-US/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'HTML5 notification timeout', // IGNORE ), 'show_nav_buttons' => 'Show the navigation buttons', // IGNORE + 'show_title_unread' => 'Show number of unread articles in the title', // IGNORE 'sidebar_hidden_by_default' => 'Hide sidebar by default', // IGNORE 'theme' => array( '_' => 'Theme', // IGNORE diff --git a/app/i18n/en/conf.php b/app/i18n/en/conf.php index c3e408149..efa3a28c9 100644 --- a/app/i18n/en/conf.php +++ b/app/i18n/en/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'HTML5 notification timeout', ), 'show_nav_buttons' => 'Show the navigation buttons', + 'show_title_unread' => 'Show number of unread articles in the title', 'sidebar_hidden_by_default' => 'Hide sidebar by default', 'theme' => array( '_' => 'Theme', diff --git a/app/i18n/es/conf.php b/app/i18n/es/conf.php index d1cf0034f..97373d79e 100644 --- a/app/i18n/es/conf.php +++ b/app/i18n/es/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Notificación de fin de espera HTML5', ), 'show_nav_buttons' => 'Mostrar los botones de navegación', + 'show_title_unread' => 'Mostrar el número de artículos no leídos en el título', 'sidebar_hidden_by_default' => 'Ocultar barra lateral por defecto', 'theme' => array( '_' => 'Tema', diff --git a/app/i18n/fa/conf.php b/app/i18n/fa/conf.php index d847f0fb9..541eebd58 100644 --- a/app/i18n/fa/conf.php +++ b/app/i18n/fa/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => ' وقفه اعلان HTML5', ), 'show_nav_buttons' => ' دکمه های ناوبری را نشان دهید', + 'show_title_unread' => 'نمایش تعداد مقالات خوانده نشده در عنوان', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => ' موضوع', diff --git a/app/i18n/fi/conf.php b/app/i18n/fi/conf.php index 5aafb0954..520b7eb1e 100644 --- a/app/i18n/fi/conf.php +++ b/app/i18n/fi/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Tauko HTML5-ilmoitusten välissä', ), 'show_nav_buttons' => 'Näytä siirtymispainikkeet', + 'show_title_unread' => 'Show number of unread articles in the title', // TODO 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Teema', diff --git a/app/i18n/fr/conf.php b/app/i18n/fr/conf.php index eded321a1..27a31d9a5 100644 --- a/app/i18n/fr/conf.php +++ b/app/i18n/fr/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Temps d’affichage de la notification HTML5', ), 'show_nav_buttons' => 'Afficher les boutons de navigation', + 'show_title_unread' => 'Afficher le nombre d’articles non lus dans le titre', 'sidebar_hidden_by_default' => 'Masquer la barre latérale par défaut', 'theme' => array( '_' => 'Thème', diff --git a/app/i18n/he/conf.php b/app/i18n/he/conf.php index 2a23ab0a6..1544e6f28 100644 --- a/app/i18n/he/conf.php +++ b/app/i18n/he/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'HTML5 התראה פג תוקף', ), 'show_nav_buttons' => 'Show the navigation buttons', // TODO + 'show_title_unread' => 'הצגת מספר המאמרים שלא נקראו בכותרת', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'ערכת נושא', diff --git a/app/i18n/hu/conf.php b/app/i18n/hu/conf.php index 51d5d31a5..d90597c20 100644 --- a/app/i18n/hu/conf.php +++ b/app/i18n/hu/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'HTML5 értesítés hossza', ), 'show_nav_buttons' => 'Navigációs gombok megjelenítése', + 'show_title_unread' => 'A meg nem nyitott cikkek számának megjelenítése a címben', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Téma', diff --git a/app/i18n/id/conf.php b/app/i18n/id/conf.php index 5cba9a0ab..3bdb55952 100644 --- a/app/i18n/id/conf.php +++ b/app/i18n/id/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Batas waktu pemberitahuan HTML5', ), 'show_nav_buttons' => 'Tampilkan tombol navigasi', + 'show_title_unread' => 'Tampilkan jumlah artikel yang belum dibaca di judul', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Tema', diff --git a/app/i18n/it/conf.php b/app/i18n/it/conf.php index c2c3d1d3a..babfbb70b 100644 --- a/app/i18n/it/conf.php +++ b/app/i18n/it/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Notifica timeout HTML5', ), 'show_nav_buttons' => 'Mostra i pulsanti di navigazione', + 'show_title_unread' => 'Mostra il numero di articoli non letti nel titolo', 'sidebar_hidden_by_default' => 'Nascondi la barra laterale di default', 'theme' => array( '_' => 'Tema', diff --git a/app/i18n/ja/conf.php b/app/i18n/ja/conf.php index c2eba4f42..4cfd8653b 100644 --- a/app/i18n/ja/conf.php +++ b/app/i18n/ja/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'HTML5 の通知タイムアウト時間', ), 'show_nav_buttons' => 'ナビゲーションボタンを表示する', + 'show_title_unread' => 'タイトルに未読の記事数を表示', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'テーマ', diff --git a/app/i18n/ko/conf.php b/app/i18n/ko/conf.php index 7c48fc4b0..ff92acc04 100644 --- a/app/i18n/ko/conf.php +++ b/app/i18n/ko/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'HTML5 알림 타임아웃', ), 'show_nav_buttons' => '내비게이션 버튼 보이기', + 'show_title_unread' => '제목에 읽지 않은 기사 수 표시', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => '테마', diff --git a/app/i18n/lv/conf.php b/app/i18n/lv/conf.php index cc970d8ab..465aebc5f 100644 --- a/app/i18n/lv/conf.php +++ b/app/i18n/lv/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'HTML5 paziņojuma laika ierobežojums', ), 'show_nav_buttons' => 'Rādīt navigācijas pogas', + 'show_title_unread' => 'Rādīt nelasīto rakstu skaitu virsrakstā', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Tēma', diff --git a/app/i18n/nl/conf.php b/app/i18n/nl/conf.php index 4d04ee863..7743211c9 100644 --- a/app/i18n/nl/conf.php +++ b/app/i18n/nl/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'HTML5 notificatie stop', ), 'show_nav_buttons' => 'Toon navigatieknoppen', + 'show_title_unread' => 'Aantal ongelezen artikelen in de titel weergeven', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Thema', diff --git a/app/i18n/oc/conf.php b/app/i18n/oc/conf.php index deff10c36..a99f59c21 100644 --- a/app/i18n/oc/conf.php +++ b/app/i18n/oc/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Temps d’afichatge de las notificacions HTML5', ), 'show_nav_buttons' => 'Mostrar los botons de navigacion', + 'show_title_unread' => 'Mostra lo nombre d’articles non legits dins lo títol', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Tèma', diff --git a/app/i18n/pl/conf.php b/app/i18n/pl/conf.php index dbd94993c..9fbd8d829 100644 --- a/app/i18n/pl/conf.php +++ b/app/i18n/pl/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Czas wyświetlania powiadomienia HTML5', ), 'show_nav_buttons' => 'Pokaż przyciski nawigacyjne', + 'show_title_unread' => 'Pokaż liczbę nieprzeczytanych artykułów w tytule', 'sidebar_hidden_by_default' => 'Ukryj pasek boczny domyślnie', 'theme' => array( '_' => 'Motyw', diff --git a/app/i18n/pt-BR/conf.php b/app/i18n/pt-BR/conf.php index b572142da..7d581eb1c 100644 --- a/app/i18n/pt-BR/conf.php +++ b/app/i18n/pt-BR/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Notificação em HTML5 de timeout', ), 'show_nav_buttons' => 'Mostrar botões de navegação', + 'show_title_unread' => 'Mostrar o número de artigos não lidos no título', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Tema', diff --git a/app/i18n/pt-PT/conf.php b/app/i18n/pt-PT/conf.php index 00845c68e..1109ef601 100644 --- a/app/i18n/pt-PT/conf.php +++ b/app/i18n/pt-PT/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Notificação em HTML5 de timeout', ), 'show_nav_buttons' => 'Mostrar botões de navegação', + 'show_title_unread' => 'Show number of unread articles in the title', // TODO 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Tema', diff --git a/app/i18n/ru/conf.php b/app/i18n/ru/conf.php index de144608f..74c99a22a 100644 --- a/app/i18n/ru/conf.php +++ b/app/i18n/ru/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Таймаут уведомлений HTML5', ), 'show_nav_buttons' => 'Показать кнопки навигации', + 'show_title_unread' => 'Показать количество непрочитанных статей в заголовке', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Тема', diff --git a/app/i18n/sk/conf.php b/app/i18n/sk/conf.php index 31cca9406..7bdbb100d 100644 --- a/app/i18n/sk/conf.php +++ b/app/i18n/sk/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Limit HTML5 oznámenia', ), 'show_nav_buttons' => 'Zobraziť tlačidlá oznámenia', + 'show_title_unread' => 'Zobraziť počet neprečítaných článkov v názve', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Vzhľad', diff --git a/app/i18n/tr/conf.php b/app/i18n/tr/conf.php index 8b6d6d546..fa9a4fcfd 100644 --- a/app/i18n/tr/conf.php +++ b/app/i18n/tr/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'HTML5 bildirim zaman aşımı', ), 'show_nav_buttons' => 'Gezinme düğmelerini göster', + 'show_title_unread' => 'Başlıkta okunmamış makale sayısını göster', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Tema', diff --git a/app/i18n/uk/conf.php b/app/i18n/uk/conf.php index a531c336a..59466a6ab 100644 --- a/app/i18n/uk/conf.php +++ b/app/i18n/uk/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'Тайм-аут сповіщення HTML5', ), 'show_nav_buttons' => 'Показати кнопки навігації', + 'show_title_unread' => 'Show number of unread articles in the title', // TODO 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => 'Тема', diff --git a/app/i18n/zh-CN/conf.php b/app/i18n/zh-CN/conf.php index 228e63d04..c26e78120 100644 --- a/app/i18n/zh-CN/conf.php +++ b/app/i18n/zh-CN/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'HTML5 通知超时时间', ), 'show_nav_buttons' => '显示导航按钮', + 'show_title_unread' => '在标题中显示未读文章的数量', 'sidebar_hidden_by_default' => 'Hide sidebar by default', // TODO 'theme' => array( '_' => '主题', diff --git a/app/i18n/zh-TW/conf.php b/app/i18n/zh-TW/conf.php index ec1bb6db1..03eb21e4c 100644 --- a/app/i18n/zh-TW/conf.php +++ b/app/i18n/zh-TW/conf.php @@ -54,6 +54,7 @@ return array( 'timeout' => 'HTML5 通知逾時', ), 'show_nav_buttons' => '顯示導覽按鈕', + 'show_title_unread' => '在標題中顯示未讀文章的數量', 'sidebar_hidden_by_default' => '預設隱藏側邊欄', 'theme' => array( '_' => '主題', diff --git a/app/views/configure/display.phtml b/app/views/configure/display.phtml index eb1bb38dd..a0cd3699b 100644 --- a/app/views/configure/display.phtml +++ b/app/views/configure/display.phtml @@ -275,6 +275,17 @@ +
+
+ +
+
+