Verwaltung: Ausweis vorsorglich erneuern statt erst nach dem Fehlschlag
"wenn ich von postfach auf projekte oder so gehe da werd ich immer wieder mien zugangscode gefragt ... ich will nur den zugangscode anfrage wenn ich auf die seite will und fertig" Die Wiederholung bei 401 (v12) rettet zwar jeden Fall, greift aber erst, NACHDEM eine Anfrage abgewiesen wurde: ein unnoetiger Umlauf, und solange steht ein Ladehinweis auf dem Schirm. Jetzt laeuft der Ausweis gar nicht erst ab. Er gilt 15 Minuten, erneuert wird alle 10 -- mit Abstand, damit ein langsamer Netzzugang nicht ins Zeitfenster hineinlaeuft. Im Hintergrund pausiert die Erneuerung, das waere Verschwendung. Dazu beim Zurueckkommen ins Fenster: War der Rechner zwischendurch zu, ist der Ausweis mit Sicherheit abgelaufen. Dann soll der erste Klick sofort sitzen statt ueber einen Fehlschlag zu gehen. Beim schnellen Hin- und Herwechseln zwischen zwei Fenstern passiert nichts -- unter einer Minute wird nicht erneuert. Die Codeeingabe erscheint jetzt nur noch in genau zwei Faellen: beim ersten Betreten der Seite und wenn die Zugangssitzung wirklich abgelaufen ist (8 Stunden oder Seite geschlossen). Genau so war es gewuenscht. GEPRUEFT: sieben Reiterwechsel hintereinander -- postfach, projekte, kunden, zahlungen, anfragen, postfach, zahlungen -- und vor JEDEM wurde der Ausweis kuenstlich fuer ungueltig erklaert. Null Codeabfragen, die Verwaltung blieb offen, der Inhalt erschien. Verwaltung weiterhin 69 von 69. Versionsstempel und Cache-Name auf v13. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
@@ -13,8 +13,8 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
<style>
|
||||
/* Zeitstrahl: die Linie verbindet die Nummernkreise. Sie liegt hinter
|
||||
den Kreisen (z-index) und endet beim letzten Schritt, damit sie nicht
|
||||
@@ -183,7 +183,7 @@
|
||||
|
||||
<div id="wd-fuss"></div>
|
||||
|
||||
<script src="/assets/js/i18n-wd-ablauf.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/i18n-wd-ablauf.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
<style>
|
||||
/* ---------- Schrittanzeige ----------
|
||||
Zeigt alle vier Schritte gleichzeitig statt nur "3 von 4". Man sieht
|
||||
@@ -418,8 +418,8 @@
|
||||
|
||||
<div id="wd-fuss"></div>
|
||||
|
||||
<script src="/assets/js/i18n-wd-anfrage.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-anfrage.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/i18n-wd-anfrage.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-anfrage.js?v=20260823wd13"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+4
-4
@@ -13,8 +13,8 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
<style>
|
||||
.fq-thema { scroll-margin-top: 90px; }
|
||||
.fq-thema + .fq-thema { margin-top: clamp(2rem, 4vw, 3rem); }
|
||||
@@ -195,7 +195,7 @@
|
||||
|
||||
<div id="wd-fuss"></div>
|
||||
|
||||
<script src="/assets/js/i18n-wd-faq.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/i18n-wd-faq.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
<style>
|
||||
/* ---------- Nur auf der Startseite gebraucht ---------- */
|
||||
|
||||
@@ -407,8 +407,8 @@
|
||||
|
||||
<div id="wd-fuss"></div>
|
||||
|
||||
<script src="/assets/js/i18n-wd-index.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/i18n-wd-index.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
<script>
|
||||
/* ---------------------------------------------------------------------
|
||||
Marken-Intro (Masterplan S.3, Schritt 02: "Nach erfolgreichem Code
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
<style>
|
||||
/* Sprungmarken.
|
||||
Frueher eine waagerecht wischbare Leiste. Rueckmeldung 22.08.2026:
|
||||
@@ -331,7 +331,7 @@
|
||||
|
||||
<div id="wd-fuss"></div>
|
||||
|
||||
<script src="/assets/js/i18n-wd-leistungen.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/i18n-wd-leistungen.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -12,8 +12,8 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
<style>
|
||||
.po-login { max-width: 440px; margin: clamp(1.5rem,6vh,4rem) auto; }
|
||||
|
||||
@@ -134,8 +134,8 @@
|
||||
|
||||
<div id="wd-fuss"></div>
|
||||
|
||||
<script src="/assets/js/i18n-wd-portal.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-portal.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/i18n-wd-portal.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-portal.js?v=20260823wd13"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
<style>
|
||||
.pfo-projekt { overflow: hidden; padding: 0; margin-bottom: clamp(1.4rem, 3vw, 2.2rem); }
|
||||
.pfo-bild {
|
||||
@@ -192,7 +192,7 @@
|
||||
|
||||
<div id="wd-fuss"></div>
|
||||
|
||||
<script src="/assets/js/i18n-wd-portfolio.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/i18n-wd-portfolio.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
<style>
|
||||
.pr-preis-gross { font-family: var(--font-head); font-weight: 800; color: var(--wd-blau); white-space: nowrap; }
|
||||
|
||||
@@ -196,7 +196,7 @@
|
||||
|
||||
<div id="wd-fuss"></div>
|
||||
|
||||
<script src="/assets/js/i18n-wd-preise.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/i18n-wd-preise.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -8,8 +8,8 @@
|
||||
<link rel="icon" type="image/png" href="/assets/img/favicon.png" />
|
||||
<link rel="manifest" href="/webdesign/app.webmanifest" />
|
||||
<meta name="theme-color" content="#05070b" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
</head>
|
||||
<body class="wd">
|
||||
<div id="wd-kopf"></div>
|
||||
@@ -400,6 +400,6 @@
|
||||
|
||||
<div id="wd-fuss"></div>
|
||||
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
+1
-1
@@ -34,7 +34,7 @@
|
||||
Start alle alten Zwischenspeicher weg. Muss bei jeder Änderung an den
|
||||
Dateien unten hochgezählt werden, sonst hängen Nutzer auf einem alten
|
||||
Stand fest. */
|
||||
const CACHE_NAME = "dogfather-webdesign-v12";
|
||||
const CACHE_NAME = "dogfather-webdesign-v13";
|
||||
|
||||
/* Bausteine, die die Oberfläche zum Anzeigen braucht. Bewusst KEINE
|
||||
HTML-Datei in dieser Liste. */
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
<style>
|
||||
.ue-kopf { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
|
||||
/* Auf dem Handy zuerst der Text, dann das Bild: sonst schiebt ein
|
||||
@@ -127,7 +127,7 @@
|
||||
|
||||
<div id="wd-fuss"></div>
|
||||
|
||||
<script src="/assets/js/i18n-wd-ueber.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/i18n-wd-ueber.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
<link rel="apple-touch-icon" href="/assets/img/wd-app-180.png" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-title" content="DF Verwaltung" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
<style>
|
||||
/* =====================================================================
|
||||
Verwaltungsbereich — bewusst NUR AUF DEUTSCH.
|
||||
@@ -761,7 +761,7 @@
|
||||
<div class="vw-detail-blatt" id="vw-detail-blatt"></div>
|
||||
</div>
|
||||
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
<script>
|
||||
/* =====================================================================
|
||||
Verwaltung: Anfragen ansehen, Status ändern, Notizen, Archivieren.
|
||||
@@ -865,6 +865,42 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* ---------------------------------------------------------------------
|
||||
VORSORGLICHE ERNEUERUNG
|
||||
|
||||
Die Wiederholung oben rettet jeden Fall — aber sie tritt erst ein,
|
||||
NACHDEM eine Anfrage abgewiesen wurde. Das kostet einen unnötigen
|
||||
Umlauf, und in der Zwischenzeit steht ein Ladehinweis auf dem Schirm.
|
||||
|
||||
Besser ist, gar nicht erst ablaufen zu lassen. Der Ausweis gilt
|
||||
15 Minuten, erneuert wird alle 10 — mit Abstand, damit ein langsamer
|
||||
Netzzugang nicht ins Zeitfenster hineinläuft.
|
||||
|
||||
Und beim Zurückkommen: War der Rechner zwischendurch zu, ist der
|
||||
Ausweis mit Sicherheit abgelaufen. Dann soll der erste Klick sofort
|
||||
funktionieren und nicht erst über einen Fehlschlag gehen. */
|
||||
var ERNEUERN_MS = 10 * 60 * 1000;
|
||||
var letzteErneuerung = Date.now();
|
||||
|
||||
function erneuerungPlanen() {
|
||||
setInterval(function () {
|
||||
if (!token) return;
|
||||
if (document.hidden) return; // im Hintergrund unnötig
|
||||
letzteErneuerung = Date.now();
|
||||
ausweisErneuern();
|
||||
}, ERNEUERN_MS);
|
||||
|
||||
document.addEventListener("visibilitychange", function () {
|
||||
if (document.hidden || !token) return;
|
||||
/* Nur wenn wirklich Zeit vergangen ist — beim schnellen Hin- und
|
||||
Herwechseln zwischen zwei Fenstern wäre jedes Mal ein neuer
|
||||
Ausweis reine Verschwendung. */
|
||||
if (Date.now() - letzteErneuerung < 60 * 1000) return;
|
||||
letzteErneuerung = Date.now();
|
||||
ausweisErneuern();
|
||||
});
|
||||
}
|
||||
|
||||
/* ---------------- Anmeldung ---------------- */
|
||||
function zeigeAnmeldung() {
|
||||
document.getElementById("vw-anmeldung").hidden = false;
|
||||
@@ -903,6 +939,7 @@
|
||||
neue Nachrichten erst, wenn man den Reiter zufaellig anklickt --
|
||||
also womoeglich tagelang nicht. */
|
||||
zaehlerHolen();
|
||||
erneuerungPlanen();
|
||||
} catch (fehler) {
|
||||
feld.classList.add("wd-feld--fehler");
|
||||
feld.querySelector(".wd-feld-fehler").textContent = fehler.message || "Anmeldung fehlgeschlagen.";
|
||||
@@ -2703,7 +2740,7 @@
|
||||
|
||||
async function start() {
|
||||
token = tokenLesen();
|
||||
if (token) { zeigeBereich(); ladeAnfragen(); zaehlerHolen(); return; }
|
||||
if (token) { zeigeBereich(); ladeAnfragen(); zaehlerHolen(); erneuerungPlanen(); return; }
|
||||
|
||||
var ausweis = await ausweisHolen();
|
||||
if (ausweis) {
|
||||
@@ -2717,6 +2754,7 @@
|
||||
kommt von der Zugangswand und ist sofort drin) -- ohne diese
|
||||
Zeile bliebe der Zähler ausgerechnet im Normalfall leer. */
|
||||
zaehlerHolen();
|
||||
erneuerungPlanen();
|
||||
return;
|
||||
}
|
||||
zeigeAnmeldung();
|
||||
|
||||
@@ -9,8 +9,8 @@
|
||||
<link rel="icon" type="image/png" href="/assets/img/favicon.png" />
|
||||
<link rel="manifest" href="/webdesign/app.webmanifest" />
|
||||
<meta name="theme-color" content="#05070b" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
</head>
|
||||
<body class="wd">
|
||||
<div id="wd-kopf"></div>
|
||||
@@ -137,8 +137,8 @@
|
||||
|
||||
<div id="wd-fuss"></div>
|
||||
|
||||
<script src="/assets/js/i18n-wd-widerruf.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-widerruf.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/i18n-wd-widerruf.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-widerruf.js?v=20260823wd13"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -21,8 +21,8 @@
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||
<meta name="apple-mobile-web-app-title" content="Dogfather Webdesign" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd12" />
|
||||
<link rel="stylesheet" href="/assets/css/main.css?v=20260823wd13" />
|
||||
<link rel="stylesheet" href="/assets/css/webdesign.css?v=20260823wd13" />
|
||||
<style>
|
||||
/* =====================================================================
|
||||
Zugangswand — nur hier gebraucht, deshalb bewusst NICHT in
|
||||
@@ -177,8 +177,8 @@
|
||||
</div>
|
||||
</main>
|
||||
|
||||
<script src="/assets/js/i18n-wd-zugang.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd12"></script>
|
||||
<script src="/assets/js/i18n-wd-zugang.js?v=20260823wd13"></script>
|
||||
<script src="/assets/js/wd-core.js?v=20260823wd13"></script>
|
||||
<script>
|
||||
(function () {
|
||||
"use strict";
|
||||
|
||||
Reference in New Issue
Block a user