feature: Custom navigation links in the nav (sidebar/topbar)

This commit is contained in:
jamesread 2024-10-13 00:17:38 +01:00 committed by James Read
parent 0b66bc7bbd
commit 706441799f
3 changed files with 26 additions and 2 deletions

View File

@ -115,6 +115,8 @@ type Config struct {
AuthJwtPubKeyPath string // will read pub key from file on disk
AuthHttpHeaderUsername string
AuthHttpHeaderUserGroup string
AuthLoginUrl string
AuthAllowGuest bool
DefaultPermissions PermissionsList
AccessControlLists []*AccessControlList
WebUIDir string
@ -130,12 +132,16 @@ type Config struct {
DefaultIconForActions string
DefaultIconForDirectories string
DefaultIconForBack string
AuthLoginUrl string
AuthAllowGuest bool
AdditionalNavigationLinks []*NavigationLink
usedConfigDir string
}
type NavigationLink struct {
Title string
Url string
}
type SaveLogsConfig struct {
ResultsDirectory string
OutputDirectory string

View File

@ -33,6 +33,7 @@ type webUISettings struct {
SshFoundConfig string
EnableCustomJs bool
AuthLoginUrl string
AdditionalLinks []*config.NavigationLink
}
func findWebuiDir() string {
@ -119,6 +120,7 @@ func generateWebUISettings(w http.ResponseWriter, r *http.Request) {
SshFoundConfig: installationinfo.Runtime.SshFoundConfig,
EnableCustomJs: cfg.EnableCustomJs,
AuthLoginUrl: cfg.AuthLoginUrl,
AdditionalLinks: cfg.AdditionalNavigationLinks,
})
w.Header().Add("Content-Type", "application/json")

View File

@ -126,11 +126,27 @@ function processWebuiSettingsJson (settings) {
if (titleElem) titleElem.innerText = window.pageTitle
}
processAdditionaLinks(settings.AdditionalLinks)
window.settings = settings
refreshDiagnostics()
}
function processAdditionaLinks (links) {
for (const link of links) {
const linkA = document.createElement('a')
linkA.href = link.Url
linkA.innerText = link.Title
linkA.target = '_blank'
const linkLi = document.createElement('li')
linkLi.appendChild(linkA)
document.getElementById('supplemental-links').prepend(linkLi)
}
}
function main () {
initMarshaller()