Move Windows camera help into overlay

The privacy instructions no longer bloat the launcher card.
A "Help" button in the navbar opens them in a native dialog
(Esc, backdrop and button close it). The button only shows
for Windows users, reusing the existing OS detection.

Translations may contain <kbd>, <b> and <i> markup now. The
renderer builds nodes from a tag whitelist instead of using
innerHTML, so smuggled tags from i18n.json cannot execute.

All help texts live under meetingPrivacySettings.windows;
sibling keys for other operating systems can follow.
This commit is contained in:
stefan.tollkuehn committed 2026-11-05 17:24:15 +01:00
1 parent 7961732323
commit da2f6b5c25
4 files changed
+231 -109

No files matched your search

+36 -26
View File
@@ -33,6 +33,9 @@
<a id="legalNoticeLink" class="button secondary hidden" href="#" target="_blank" rel="noopener noreferrer" data-i18n="legal_notice">
Legal Notice
</a>
<button id="windowsHelpButton" class="button secondary hidden" type="button" data-i18n="meetingPrivacySettings.windows.navButton">
Help
</button>
<a class="button secondary" href="https://git.bnvb.eu/stefan.tollkuehn/jitsi-launch" target="_blank" rel="noopener noreferrer" data-i18n="source">
Source
</a>
@@ -83,32 +86,6 @@
<button id="createNewFromLauncherButton" class="button secondary hidden" type="button" data-i18n="creator.createNewButton">
Create New Meeting
</button>
<!-- KAMERA-/MIKROFON-HINWEISE (WINDOWS) -->
<div id="privacyInfo" class="privacy hidden">
<h2 data-i18n="meetingPrivacySettings.title"></h2>
<p data-i18n="meetingPrivacySettings.intro"></p>
<h3 data-i18n="meetingPrivacySettings.step1Title"></h3>
<p data-i18n="meetingPrivacySettings.step1Description"></p>
<h3 data-i18n="meetingPrivacySettings.step2Title"></h3>
<p data-i18n="meetingPrivacySettings.step2Description"></p>
<h3 data-i18n="meetingPrivacySettings.step3Title"></h3>
<p data-i18n="meetingPrivacySettings.step3Description"></p>
<p data-i18n="meetingPrivacySettings.browserPermissions"></p>
<h3 data-i18n="meetingPrivacySettings.goodToKnowTitle"></h3>
<ul>
<li data-i18n="meetingPrivacySettings.goodToKnow1"></li>
<li data-i18n="meetingPrivacySettings.goodToKnow2"></li>
<li data-i18n="meetingPrivacySettings.goodToKnow3"></li>
</ul>
<p data-i18n="meetingPrivacySettings.adminSupport"></p>
</div>
</div>
<!-- STARTVORGANG -->
@@ -342,6 +319,39 @@
</div>
</div>
<!-- WINDOWS-HILFE OVERLAY -->
<dialog id="windowsHelpOverlay" class="privacy">
<h2 data-i18n="meetingPrivacySettings.windows.title"></h2>
<p data-i18n="meetingPrivacySettings.windows.intro"></p>
<h3 data-i18n="meetingPrivacySettings.windows.step1Title"></h3>
<p data-i18n="meetingPrivacySettings.windows.step1Description"></p>
<h3 data-i18n="meetingPrivacySettings.windows.step2Title"></h3>
<p data-i18n="meetingPrivacySettings.windows.step2Description"></p>
<h3 data-i18n="meetingPrivacySettings.windows.step3Title"></h3>
<p data-i18n="meetingPrivacySettings.windows.step3Description"></p>
<p data-i18n="meetingPrivacySettings.windows.browserPermissions"></p>
<h3 data-i18n="meetingPrivacySettings.windows.goodToKnowTitle"></h3>
<ul>
<li data-i18n="meetingPrivacySettings.windows.goodToKnow1"></li>
<li data-i18n="meetingPrivacySettings.windows.goodToKnow2"></li>
<li data-i18n="meetingPrivacySettings.windows.goodToKnow3"></li>
</ul>
<p data-i18n="meetingPrivacySettings.windows.adminSupport"></p>
<div class="help-actions">
<button id="windowsHelpClose" class="button secondary" type="button" data-i18n="meetingPrivacySettings.windows.closeButton">
Close
</button>
</div>
</dialog>
<script src="assets/lib/ua-parser.min.js"></script>
<script src="assets/launch.js"></script>
</body>