From 07c10c2e6806b79c8a6ff48f24da05603cbe40b2 Mon Sep 17 00:00:00 2001 From: awesomerobot Date: Thu, 11 May 2023 13:16:54 -0400 Subject: [PATCH 1/4] REFACTOR: fix active state, fix hiding, simplify --- desktop/desktop.scss => common/common.scss | 3 +- desktop/head_tag.html | 31 ---------------- .../initializers/init-nav-bar-additions.js | 32 ++++++++++++++++ mobile/head_tag.html | 37 ------------------- mobile/mobile.scss | 14 ------- settings.yml | 8 +++- 6 files changed, 39 insertions(+), 86 deletions(-) rename desktop/desktop.scss => common/common.scss (75%) delete mode 100644 desktop/head_tag.html create mode 100644 javascripts/discourse/initializers/init-nav-bar-additions.js delete mode 100644 mobile/head_tag.html delete mode 100644 mobile/mobile.scss diff --git a/desktop/desktop.scss b/common/common.scss similarity index 75% rename from desktop/desktop.scss rename to common/common.scss index a1a5253..3e074be 100644 --- a/desktop/desktop.scss +++ b/common/common.scss @@ -6,8 +6,7 @@ @if $Hide_default_links == "true" { #navigation-bar { - li:nth-child(1), - li:nth-child(2) { + li:not(.navigation-toggle):not([class*="custom_"]) { display: none; } } diff --git a/desktop/head_tag.html b/desktop/head_tag.html deleted file mode 100644 index 778e846..0000000 --- a/desktop/head_tag.html +++ /dev/null @@ -1,31 +0,0 @@ - diff --git a/javascripts/discourse/initializers/init-nav-bar-additions.js b/javascripts/discourse/initializers/init-nav-bar-additions.js new file mode 100644 index 0000000..d8468eb --- /dev/null +++ b/javascripts/discourse/initializers/init-nav-bar-additions.js @@ -0,0 +1,32 @@ +import { withPluginApi } from "discourse/lib/plugin-api"; + +export default { + name: "nav-links-component", + initialize() { + withPluginApi("0.8", (api) => { + const nmlt = settings.Nav_links, + sec = nmlt.split("|").map(function (item) { + return item.trim(); + }); + + sec.forEach(function (value) { + const sec = value.split(";").map(function (item) { + return item.trim(); + }), + filter = sec[0].replace(/\s+/g, "-").toLowerCase(), + title = sec[1], + location = sec[2]; + + api.addNavigationBarItem({ + name: `custom_${filter}`, + displayName: filter, + title: title, + href: location, + forceActive: (category, args, router) => { + return router.currentURL.includes(location); + }, + }); + }); + }); + }, +}; diff --git a/mobile/head_tag.html b/mobile/head_tag.html deleted file mode 100644 index 4626810..0000000 --- a/mobile/head_tag.html +++ /dev/null @@ -1,37 +0,0 @@ - diff --git a/mobile/mobile.scss b/mobile/mobile.scss deleted file mode 100644 index d14b9d7..0000000 --- a/mobile/mobile.scss +++ /dev/null @@ -1,14 +0,0 @@ -@if $Hide_dropdowns == "true" { - ol.category-breadcrumb { - display: none; - } -} - -@if $Hide_default_links == "true" { - .list-controls .drop { - li:nth-child(1), - li:nth-child(2) { - display: none; - } - } -} diff --git a/settings.yml b/settings.yml index 231857b..baaba43 100644 --- a/settings.yml +++ b/settings.yml @@ -2,7 +2,11 @@ Nav_links: type: list default: "Latest;topics with recent posts;/latest|Categories;all topics grouped by category;/categories|Top;the most active topics in the last year, month, week or day;/top" description: - en: "Semicolon delimited in this order: display name;description;URL. Display name is the text that shows on the menu. Description is the help text that shows on hover. URL is the path for the link." + en: | + Semicolon delimited in this order: display name;description;URL +
Display name: text that shows on the menu +
Description: text that shows on hover +
URL: the link (e.g., /latest or https://discourse.org) Hide_dropdowns: default: false description: @@ -10,4 +14,4 @@ Hide_dropdowns: Hide_default_links: default: false description: - en: "Hide the default 'Latest' and 'Categories' links on both mobile and desktop. Some Discourse settings will need to be changed. See theme topic on Meta" + en: "Hide the default links on both mobile and desktop." From 19e5002e418cd155ef513446a6e75a818235d411 Mon Sep 17 00:00:00 2001 From: awesomerobot Date: Thu, 11 May 2023 13:26:53 -0400 Subject: [PATCH 2/4] linting --- .../initializers/init-nav-bar-additions.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/javascripts/discourse/initializers/init-nav-bar-additions.js b/javascripts/discourse/initializers/init-nav-bar-additions.js index d8468eb..b8ff7ba 100644 --- a/javascripts/discourse/initializers/init-nav-bar-additions.js +++ b/javascripts/discourse/initializers/init-nav-bar-additions.js @@ -4,23 +4,23 @@ export default { name: "nav-links-component", initialize() { withPluginApi("0.8", (api) => { - const nmlt = settings.Nav_links, - sec = nmlt.split("|").map(function (item) { + const itemsSetting = settings.Nav_links, + items = itemsSetting.split("|").map(function (item) { return item.trim(); }); - sec.forEach(function (value) { - const sec = value.split(";").map(function (item) { - return item.trim(); + items.forEach(function (item) { + const splitSec = item.split(";").map(function (section) { + return section.trim(); }), - filter = sec[0].replace(/\s+/g, "-").toLowerCase(), - title = sec[1], - location = sec[2]; + filter = splitSec[0].replace(/\s+/g, "-").toLowerCase(), + title = splitSec[1], + location = splitSec[2]; api.addNavigationBarItem({ name: `custom_${filter}`, displayName: filter, - title: title, + title, href: location, forceActive: (category, args, router) => { return router.currentURL.includes(location); From a84b9373bab4e797675f6127916a72b94d7825e4 Mon Sep 17 00:00:00 2001 From: Kris Date: Thu, 11 May 2023 14:48:02 -0400 Subject: [PATCH 3/4] Update javascripts/discourse/initializers/init-nav-bar-additions.js Co-authored-by: Jarek Radosz --- .../initializers/init-nav-bar-additions.js | 25 ++++++++----------- 1 file changed, 10 insertions(+), 15 deletions(-) diff --git a/javascripts/discourse/initializers/init-nav-bar-additions.js b/javascripts/discourse/initializers/init-nav-bar-additions.js index b8ff7ba..12c543f 100644 --- a/javascripts/discourse/initializers/init-nav-bar-additions.js +++ b/javascripts/discourse/initializers/init-nav-bar-additions.js @@ -2,31 +2,26 @@ import { withPluginApi } from "discourse/lib/plugin-api"; export default { name: "nav-links-component", + initialize() { withPluginApi("0.8", (api) => { - const itemsSetting = settings.Nav_links, - items = itemsSetting.split("|").map(function (item) { - return item.trim(); - }); + const itemsSetting = settings.Nav_links; + const items = itemsSetting.split("|").map((item) => item.trim()); - items.forEach(function (item) { - const splitSec = item.split(";").map(function (section) { - return section.trim(); - }), - filter = splitSec[0].replace(/\s+/g, "-").toLowerCase(), - title = splitSec[1], - location = splitSec[2]; + for (const item of items) { + const splitSec = item.split(";").map((section) => section.trim()); + const filter = splitSec[0].replace(/\s+/g, "-").toLowerCase(); + const title = splitSec[1]; + const location = splitSec[2]; api.addNavigationBarItem({ name: `custom_${filter}`, displayName: filter, title, href: location, - forceActive: (category, args, router) => { - return router.currentURL.includes(location); - }, + forceActive: (category, args, router) => router.currentURL.includes(location)) }); - }); + } }); }, }; From ab806804517db237c5923f1bd9fb3deddf7394c8 Mon Sep 17 00:00:00 2001 From: awesomerobot Date: Thu, 11 May 2023 14:49:32 -0400 Subject: [PATCH 4/4] minor fix, lint --- javascripts/discourse/initializers/init-nav-bar-additions.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/javascripts/discourse/initializers/init-nav-bar-additions.js b/javascripts/discourse/initializers/init-nav-bar-additions.js index 12c543f..69e6fec 100644 --- a/javascripts/discourse/initializers/init-nav-bar-additions.js +++ b/javascripts/discourse/initializers/init-nav-bar-additions.js @@ -19,7 +19,8 @@ export default { displayName: filter, title, href: location, - forceActive: (category, args, router) => router.currentURL.includes(location)) + forceActive: (category, args, router) => + router.currentURL.includes(location), }); } });