diff --git a/src/controllers/dashboard/general.html b/src/controllers/dashboard/general.html index 67e9bfb7ae..21c81eddd7 100644 --- a/src/controllers/dashboard/general.html +++ b/src/controllers/dashboard/general.html @@ -65,7 +65,7 @@

${HeaderBranding}

- +
${LabelLoginDisclaimerHelp}
diff --git a/src/controllers/session/login/index.html b/src/controllers/session/login/index.html index 339d4131ee..55550a194c 100644 --- a/src/controllers/session/login/index.html +++ b/src/controllers/session/login/index.html @@ -50,7 +50,9 @@ ${ButtonChangeServer} -

+
+
+
diff --git a/src/controllers/session/login/index.js b/src/controllers/session/login/index.js index 238d6f6ffd..9aecc0f545 100644 --- a/src/controllers/session/login/index.js +++ b/src/controllers/session/login/index.js @@ -1,3 +1,5 @@ +import DOMPurify from 'dompurify'; +import { marked } from 'marked'; import { appHost } from '../../../components/apphost'; import appSettings from '../../../scripts/settings/appSettings'; import dom from '../../../scripts/dom'; @@ -14,6 +16,7 @@ import toast from '../../../components/toast/toast'; import dialogHelper from '../../../components/dialogHelper/dialogHelper'; import baseAlert from '../../../components/alert'; import cardBuilder from '../../../components/cardbuilder/cardBuilder'; +import './login.scss'; /* eslint-disable indent */ @@ -281,7 +284,20 @@ import cardBuilder from '../../../components/cardbuilder/cardBuilder'; loading.hide(); }); apiClient.getJSON(apiClient.getUrl('Branding/Configuration')).then(function (options) { - view.querySelector('.disclaimer').textContent = options.LoginDisclaimer || ''; + const disclaimer = view.querySelector('.disclaimer'); + + disclaimer.innerHTML = DOMPurify.sanitize(marked(options.LoginDisclaimer || '')); + + for (const elem of disclaimer.querySelectorAll('a')) { + elem.target = '_blank'; + elem.classList.add('button-link'); + elem.setAttribute('is', 'emby-linkbutton'); + + if (layoutManager.tv) { + // Disable links navigation on TV + elem.tabIndex = -1; + } + } }); }); view.addEventListener('viewhide', function () { diff --git a/src/controllers/session/login/login.scss b/src/controllers/session/login/login.scss new file mode 100644 index 0000000000..d84d0088d1 --- /dev/null +++ b/src/controllers/session/login/login.scss @@ -0,0 +1,26 @@ +.disclaimerContainer { + display: flex; + margin-top: 2em; +} + +.disclaimer { + margin: 0 auto; + + h1, + h2, + h3, + h4, + h5, + h6, + p { + text-align: center; + } + + ol, + ul { + max-width: 40em; + margin-left: auto; + margin-right: auto; + width: fit-content; + } +}