Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
217a076120 | ||
|
|
49a3d90dc5 |
No files matched your search
@@ -2,6 +2,7 @@
|
|||||||
"jitsiLauncher": "server.domain.tld/subdir",
|
"jitsiLauncher": "server.domain.tld/subdir",
|
||||||
"jitsiHost": "jit.si",
|
"jitsiHost": "jit.si",
|
||||||
"nextcloudBase": "https://cloud.domain.tld",
|
"nextcloudBase": "https://cloud.domain.tld",
|
||||||
|
"legalNotice": "https://www.domain.tld/legal-notice",
|
||||||
"allowAdhocMeetings": true,
|
"allowAdhocMeetings": true,
|
||||||
"launchTimeout": 2000,
|
"launchTimeout": 2000,
|
||||||
"backgroundImage": "path/to/backgroundimage",
|
"backgroundImage": "path/to/backgroundimage",
|
||||||
|
|||||||
+35
-4
@@ -12,6 +12,20 @@
|
|||||||
let CONFIG = {};
|
let CONFIG = {};
|
||||||
const CONFIG_URL = "assets/config.json";
|
const CONFIG_URL = "assets/config.json";
|
||||||
|
|
||||||
|
/*
|
||||||
|
* localStorage is scoped per origin, not per path.
|
||||||
|
* Prefix keys with the app directory so parallel
|
||||||
|
* instances (e.g. meet.bnvb.eu/i and /p) stay
|
||||||
|
* independent.
|
||||||
|
*
|
||||||
|
* "/p/launch.html" becomes "/p/"
|
||||||
|
*/
|
||||||
|
const STORAGE_PREFIX =
|
||||||
|
window.location.pathname.replace(/[^/]*$/, "");
|
||||||
|
|
||||||
|
const LANGUAGE_KEY = STORAGE_PREFIX + "jitsiLauncherLanguage";
|
||||||
|
const THEME_KEY = STORAGE_PREFIX + "jitsiLauncherTheme";
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
* Translations
|
* Translations
|
||||||
* ============================================================
|
* ============================================================
|
||||||
@@ -34,7 +48,7 @@ function detectLanguage() {
|
|||||||
* Saved language choice takes precedence.
|
* Saved language choice takes precedence.
|
||||||
*/
|
*/
|
||||||
try {
|
try {
|
||||||
const saved = localStorage.getItem("jitsiLauncherLanguage");
|
const saved = localStorage.getItem(LANGUAGE_KEY);
|
||||||
|
|
||||||
if (saved && TRANSLATIONS[saved]) {
|
if (saved && TRANSLATIONS[saved]) {
|
||||||
return saved;
|
return saved;
|
||||||
@@ -179,7 +193,7 @@ function setLanguage(language) {
|
|||||||
translation = TRANSLATIONS[language];
|
translation = TRANSLATIONS[language];
|
||||||
|
|
||||||
try {
|
try {
|
||||||
localStorage.setItem("jitsiLauncherLanguage", language);
|
localStorage.setItem(LANGUAGE_KEY, language);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
/*
|
/*
|
||||||
* localStorage can be blocked, e.g. in private mode.
|
* localStorage can be blocked, e.g. in private mode.
|
||||||
@@ -225,8 +239,6 @@ function closeNavMenu() {
|
|||||||
* ============================================================
|
* ============================================================
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const THEME_KEY = "jitsiLauncherTheme";
|
|
||||||
|
|
||||||
function savedTheme() {
|
function savedTheme() {
|
||||||
try {
|
try {
|
||||||
const saved = localStorage.getItem(THEME_KEY);
|
const saved = localStorage.getItem(THEME_KEY);
|
||||||
@@ -370,6 +382,23 @@ function applyAdhocButton() {
|
|||||||
createAdhocButton.classList.remove("hidden");
|
createAdhocButton.classList.remove("hidden");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ============================================================
|
||||||
|
* LEGAL NOTICE LINK
|
||||||
|
* ============================================================ */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Only show if a legal notice URL is configured
|
||||||
|
* (CONFIG.legalNotice in assets/config.json).
|
||||||
|
*/
|
||||||
|
function applyLegalNoticeLink() {
|
||||||
|
if (!CONFIG.legalNotice || !legalNoticeLink) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
legalNoticeLink.href = CONFIG.legalNotice;
|
||||||
|
legalNoticeLink.classList.remove("hidden");
|
||||||
|
}
|
||||||
|
|
||||||
/* ============================================================
|
/* ============================================================
|
||||||
* DOM elements
|
* DOM elements
|
||||||
* ============================================================
|
* ============================================================
|
||||||
@@ -420,6 +449,7 @@ const copyAdhocLinkButton = document.getElementById("copyAdhocLinkButton");
|
|||||||
const navbar = document.querySelector(".navbar");
|
const navbar = document.querySelector(".navbar");
|
||||||
const navToggle = document.getElementById("navToggle");
|
const navToggle = document.getElementById("navToggle");
|
||||||
const navActions = document.getElementById("navActions");
|
const navActions = document.getElementById("navActions");
|
||||||
|
const legalNoticeLink = document.getElementById("legalNoticeLink");
|
||||||
|
|
||||||
/* Language menu DOM elements */
|
/* Language menu DOM elements */
|
||||||
const langMenu = document.getElementById("langMenu");
|
const langMenu = document.getElementById("langMenu");
|
||||||
@@ -1609,6 +1639,7 @@ async function start() {
|
|||||||
applyFavicons();
|
applyFavicons();
|
||||||
applyNextcloudButton();
|
applyNextcloudButton();
|
||||||
applyAdhocButton();
|
applyAdhocButton();
|
||||||
|
applyLegalNoticeLink();
|
||||||
|
|
||||||
await loadTranslations();
|
await loadTranslations();
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -30,7 +30,7 @@
|
|||||||
</svg>
|
</svg>
|
||||||
</button>
|
</button>
|
||||||
<div id="navActions" class="nav-actions">
|
<div id="navActions" class="nav-actions">
|
||||||
<a class="button secondary" href="https://www.bnvb-ingenieure.de/impressum" target="_blank" rel="noopener noreferrer" data-i18n="legal_notice">
|
<a id="legalNoticeLink" class="button secondary hidden" href="#" target="_blank" rel="noopener noreferrer" data-i18n="legal_notice">
|
||||||
Legal Notice
|
Legal Notice
|
||||||
</a>
|
</a>
|
||||||
<a class="button secondary" href="https://git.bnvb.eu/stefan.tollkuehn/jitsi-launch" target="_blank" rel="noopener noreferrer" data-i18n="source">
|
<a class="button secondary" href="https://git.bnvb.eu/stefan.tollkuehn/jitsi-launch" target="_blank" rel="noopener noreferrer" data-i18n="source">
|
||||||
|
|||||||
Reference in new issue
Block a user