Software /
code /
prosody-modules
File
mod_invites_page/static/invite.js @ 6120:bd3ff802d883
mod_anti_spam: Fix another traceback for origin sessions without an IP
This is likely to be the case for stanzas originating from local hosts, for
example (so not true s2s). It should be safe to bypass the IP check for those.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sat, 28 Dec 2024 21:02:08 +0000 |
parent | 5748:ef3aa6901a93 |
line wrap: on
line source
(function () { // If QR lib loaded ok, show QR button on desktop devices if(window.QRCode) { new QRCode(document.getElementById("qr-invite-page"), document.location.href); document.getElementById('qr-button-container').classList.add("d-md-block"); } // Detect current platform and show/hide appropriate clients if(window.platform) { let platform_friendly = null; let platform_classname = null; switch(platform.os.family) { case "Ubuntu": case "Linux": case "Fedora": case "Red Hat": case "SuSE": platform_friendly = platform.os.family + " (Linux)"; platform_classname = "linux"; break; case "Linux aarch64": platform_friendly = "Linux mobile"; platform_classname = "linux"; break; case "Haiku R1": platform_friendly = "Haiku"; platform_classname = "haiku"; break; case "Windows Phone": platform_friendly = "Windows Phone"; platform_classname = "windows-phone"; break; default: if(platform.os.family.startsWith("Windows")) { platform_friendly = "Windows"; platform_classname = "windows"; } else { platform_friendly = platform.os.family; platform_classname = platform_friendly.toLowerCase(); } } if(platform_friendly && platform_classname) { if(document.querySelectorAll('.client-card .client-platform-badge-'+platform_classname).length == 0) { // No clients recognised for this platform, do nothing return; } // Hide clients not for this platform const client_cards = document.getElementsByClassName('client-card'); for (let card of client_cards) { if (card.classList.contains('app-platform-'+platform_classname)) card.classList.add('supported-platform'); else if (!card.classList.contains('app-platform-web')) card.hidden = true; const badges = card.querySelectorAll('.client-platform-badge'); for (let badge of badges) { if (badge.classList.contains('client-platform-badge-'+platform_classname)) { badge.classList.add("badge-success"); badge.classList.remove("badge-info"); } else { badge.classList.add("badge-secondary"); badge.classList.remove("badge-info"); } } } const show_all_clients_button_container = document.getElementById('show-all-clients-button-container'); show_all_clients_button_container.querySelector('.platform-name').innerHTML = platform_friendly; show_all_clients_button_container.classList.remove("d-none"); document.getElementById('show-all-clients-button').addEventListener('click', function (e) { for (let card of client_cards) card.hidden = false; show_all_clients_button_container.hidden = true; e.preventDefault(); }); } } })();