From 5add0f9b627e7dc246565d8753863515efdb7b90 Mon Sep 17 00:00:00 2001 From: Aoibhe Wilson Date: Sat, 1 Feb 2025 16:33:19 +0100 Subject: [PATCH] [#1074] Make Language Specific Favicons Optional - adds noDocSpecificIcon property to app settings - adds option to user Settings page - updates setFaviconForDoc method to return early when setting is active --- assets/javascripts/app/settings.js | 2 ++ assets/javascripts/lib/favicon.js | 2 +- assets/javascripts/templates/pages/settings_tmpl.js | 6 ++++++ assets/javascripts/views/content/settings_page.js | 1 + 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/assets/javascripts/app/settings.js b/assets/javascripts/app/settings.js index 1dbe3440..617830ec 100644 --- a/assets/javascripts/app/settings.js +++ b/assets/javascripts/app/settings.js @@ -16,6 +16,7 @@ app.Settings = class Settings { "autoInstall", "spaceScroll", "spaceTimeout", + "noDocSpecificIcon", ]; static INTERNAL_KEYS = ["count", "schema", "version", "news"]; @@ -38,6 +39,7 @@ app.Settings = class Settings { theme: "auto", spaceScroll: 1, spaceTimeout: 0.5, + noDocSpecificIcon: false, }; constructor() { diff --git a/assets/javascripts/lib/favicon.js b/assets/javascripts/lib/favicon.js index c4be8d74..6b58016c 100644 --- a/assets/javascripts/lib/favicon.js +++ b/assets/javascripts/lib/favicon.js @@ -19,7 +19,7 @@ const withImage = function (url, action) { }; this.setFaviconForDoc = function (doc) { - if (currentSlug === doc.slug) { + if (currentSlug === doc.slug || app.settings.get("noDocSpecificIcon")) { return; } diff --git a/assets/javascripts/templates/pages/settings_tmpl.js b/assets/javascripts/templates/pages/settings_tmpl.js index 1fae3975..cfd30de1 100644 --- a/assets/javascripts/templates/pages/settings_tmpl.js +++ b/assets/javascripts/templates/pages/settings_tmpl.js @@ -66,6 +66,12 @@ app.templates.settingsPage = (settings) => `\ }>Enable tracking cookies With this checked, we enable Google Analytics and Gauges to collect anonymous traffic information. + diff --git a/assets/javascripts/views/content/settings_page.js b/assets/javascripts/views/content/settings_page.js index 8b1dd32c..46cacb3c 100644 --- a/assets/javascripts/views/content/settings_page.js +++ b/assets/javascripts/views/content/settings_page.js @@ -20,6 +20,7 @@ app.views.SettingsPage = class SettingsPage extends app.View { settings.analyticsConsent = app.settings.get("analyticsConsent"); settings.spaceScroll = app.settings.get("spaceScroll"); settings.spaceTimeout = app.settings.get("spaceTimeout"); + settings.noDocSpecificIcon = app.settings.get("noDocSpecificIcon"); settings.autoSupported = app.settings.autoSupported; for (var layout of app.Settings.LAYOUTS) { settings[layout] = app.settings.hasLayout(layout);