diff --git a/public/language/en-GB/admin/settings/navigation.json b/public/language/en-GB/admin/settings/navigation.json index 13dd01aae7..7baca85096 100644 --- a/public/language/en-GB/admin/settings/navigation.json +++ b/public/language/en-GB/admin/settings/navigation.json @@ -11,6 +11,8 @@ "properties": "Properties:", "groups": "Groups:", "open-new-window": "Open in a new window", + "dropdown": "Dropdown", + "dropdown-placeholder": "Place your dropdown menu items below, ie:
<li><a href="https://myforum.com">Link 1</a></li>", "btn.delete": "Delete", "btn.disable": "Disable", @@ -20,4 +22,4 @@ "custom-route": "Custom Route", "core": "core", "plugin": "plugin" -} \ No newline at end of file +} diff --git a/public/src/app.js b/public/src/app.js index 1cf4471fb5..e6f3e95e1c 100644 --- a/public/src/app.js +++ b/public/src/app.js @@ -284,9 +284,12 @@ app.cacheBuster = null; $('#main-nav li') .removeClass('active') .find('a') - .filter(function (i, x) { - return window.location.hostname === x.hostname && (window.location.pathname === x.pathname || - window.location.pathname.startsWith(x.pathname + '/')); + .filter(function (i, a) { + return $(a).attr('href') !== '#' && window.location.hostname === a.hostname && + ( + window.location.pathname === a.pathname || + window.location.pathname.startsWith(a.pathname + '/') + ); }) .parent() .addClass('active'); diff --git a/src/controllers/admin/settings.js b/src/controllers/admin/settings.js index 41166e6d1c..d4abecd479 100644 --- a/src/controllers/admin/settings.js +++ b/src/controllers/admin/settings.js @@ -1,5 +1,7 @@ 'use strict'; +const validator = require('validator'); + const meta = require('../../meta'); const emailer = require('../../emailer'); const notifications = require('../../notifications'); @@ -72,6 +74,7 @@ settingsController.navigation = async function (req, res) { enabled.selected = index === 0; enabled.title = translator.escape(enabled.title); enabled.text = translator.escape(enabled.text); + enabled.dropdownContent = translator.escape(validator.escape(String(enabled.dropdownContent || ''))); enabled.groups = admin.groups.map(group => ({ displayName: group.displayName, selected: enabled.groups.includes(group.name), diff --git a/src/views/admin/settings/navigation.tpl b/src/views/admin/settings/navigation.tpl index 86cff2d1e1..cd406b90ab 100644 --- a/src/views/admin/settings/navigation.tpl +++ b/src/views/admin/settings/navigation.tpl @@ -89,6 +89,19 @@ +
+ +
+
+

+ [[admin/settings/navigation:dropdown-placeholder]] +

+ +
+