Datenschutzbestimmungen hinzugefügt, theme wird sofort aktiviert

This commit is contained in:
silas 2018-10-11 23:36:09 +02:00
parent 1c8ec944f7
commit 864530ecf1
9 changed files with 196 additions and 39 deletions

File diff suppressed because one or more lines are too long

View File

@ -30,8 +30,15 @@
<link href="css/foundation.css" media="screen,print" rel="stylesheet" type="text/css"> <link href="css/foundation.css" media="screen,print" rel="stylesheet" type="text/css">
<link href="css/wordRotator.css" media="screen,print" rel="stylesheet" type="text/css"> <link href="css/wordRotator.css" media="screen,print" rel="stylesheet" type="text/css">
</head> </head>
<body class='black'> <body>
<script>
let defaultThemeClass = 'black';
let currentThemeClass = localStorage.getItem("currentTheme");
if (!currentThemeClass) {
currentThemeClass = defaultThemeClass;
}
document.body.classList.add(currentThemeClass);
</script>
<div id='print-content'> <div id='print-content'>
</div> </div>
@ -94,7 +101,7 @@
</div> </div>
<footer> <footer>
<a data-site-name='privacyPolicy' class='deep-link' data-translation="policy-heading">Privacy Policy</a> <a data-site-name='privacyPolicy' class='deep-link' data-translation="policy-heading">Privacy Policy</a>
<a href="https://apps.silas.link" target="_blank" rel = "noopener" data-translation="other-apps">Other Apps</a> <a href="https://apps.silas.link" target="_blank" rel="noopener" data-translation="other-apps">Other Apps</a>
</footer> </footer>
<script> <script>
var initPromise; var initPromise;

View File

@ -3764,6 +3764,41 @@ class LocalStorageSettingsFragment extends Fragment {
} }
return res; return res;
} }
onStart() {
let res = super.onStart();
let settings = this.findBy(".setting", true);
const settingsManager = SettingsManager.getInstance();
for (let i = 0; i < settings.length; i++) {
let setting = settings[i];
const name = setting.name;
let value;
if (!setting["dataset"]["raw"]) {
value = settingsManager.getSetting(name);
} else {
value = localStorage.getItem(name);
}
let isCheckable = false;
if (setting instanceof HTMLInputElement && (setting.type === 'checkbox' || setting.type === 'radio')) {
isCheckable = true;
}
if (Helper.isNotNull(value)) {
if (isCheckable) {
setting.checked = (value === setting.value);
}
else {
setting.value = value;
}
if (value !== "") {
setting.classList.add("notEmpty");
}
}
}
return res;
}
} }
class SmartColumn{ class SmartColumn{
@ -6766,7 +6801,22 @@ class PrivacyPolicySite extends WordRotatorBaseSite {
super(siteManager, "html/application/privacyPolicy.html", "privacyPolicy"); super(siteManager, "html/application/privacyPolicy.html", "privacyPolicy");
} }
onFirstStart() {
let trackSwitch =this.findBy("#track-switch");
trackSwitch.addEventListener("change", function (e) {
Matomo.setTrack(this.checked === true);
e.stopPropagation();
e.preventDefault();
});
super.onFirstStart();
}
onStart(args) { onStart(args) {
let trackSwitch =this.findBy("#track-switch");
let shouldTrack = (Helper.nonNull(localStorage.getItem("matomoShouldTrack"), "1") === "1");
trackSwitch.checked = shouldTrack;
Matomo.update("Privacy Policy Site"); Matomo.update("Privacy Policy Site");
return super.onStart(args); return super.onStart(args);
} }
@ -6842,7 +6892,6 @@ class WordRotatorSettingFragment extends LocalStorageSettingsFragment {
} }
}); });
this.findBy("#reset-levels").addEventListener("click", () => { this.findBy("#reset-levels").addEventListener("click", () => {
localStorage.removeItem("currentLevel"); localStorage.removeItem("currentLevel");
localStorage.removeItem("date-last-sync"); localStorage.removeItem("date-last-sync");

View File

@ -409,6 +409,41 @@ class LocalStorageSettingsFragment extends Fragment {
} }
return res; return res;
} }
onStart() {
let res = super.onStart();
let settings = this.findBy(".setting", true);
const settingsManager = SettingsManager.getInstance();
for (let i = 0; i < settings.length; i++) {
let setting = settings[i];
const name = setting.name;
let value;
if (!setting["dataset"]["raw"]) {
value = settingsManager.getSetting(name);
} else {
value = localStorage.getItem(name);
}
let isCheckable = false;
if (setting instanceof HTMLInputElement && (setting.type === 'checkbox' || setting.type === 'radio')) {
isCheckable = true;
}
if (Helper.isNotNull(value)) {
if (isCheckable) {
setting.checked = (value === setting.value);
}
else {
setting.value = value;
}
if (value !== "") {
setting.classList.add("notEmpty");
}
}
}
return res;
}
} }
class SmartColumn{ class SmartColumn{

View File

@ -3,8 +3,8 @@
<h3 id="dsg-general-intro"></h3> <h3 id="dsg-general-intro"></h3>
<p>Diese Datenschutzerklärung klärt Sie über die Art, den Umfang und Zweck der Verarbeitung von personenbezogenen <p>Diese Datenschutzerklärung klärt Sie über die Art, den Umfang und Zweck der Verarbeitung von personenbezogenen
Daten (nachfolgend kurz „Daten“) im Rahmen der Erbringung unserer Leistungen sowie innerhalb unseres Daten (nachfolgend kurz „Daten“) im Rahmen der Erbringung unserer Leistungen sowie innerhalb unseres
Onlineangebotes und der mit ihm verbundenen Webseiten, Funktionen und Inhalte sowie externen Onlinepräsenzen, Onlineangebotes und der mit ihm verbundenen Webseiten, Funktionen und Inhalte sowie externen Onlinepräsenzen
wie z.B. unser Social Media Profile auf (nachfolgend gemeinsam bezeichnet als „Onlineangebot“). Im Hinblick auf (nachfolgend gemeinsam bezeichnet als „Onlineangebot“). Im Hinblick auf
die verwendeten Begrifflichkeiten, wie z.B. „Verarbeitung“ oder „Verantwortlicher“ verweisen wir auf die die verwendeten Begrifflichkeiten, wie z.B. „Verarbeitung“ oder „Verantwortlicher“ verweisen wir auf die
Definitionen im Art. 4 der Datenschutzgrundverordnung (DSGVO). <br> Definitionen im Art. 4 der Datenschutzgrundverordnung (DSGVO). <br>
<br> <br>
@ -18,11 +18,11 @@ Deutschland<br>
E-Mailadresse: wordRotator@silas.link<br> E-Mailadresse: wordRotator@silas.link<br>
Link zum Impressum: https://wordrotator.silas.link/impressum</span></p> Link zum Impressum: https://wordrotator.silas.link/impressum</span></p>
<h3 id="dsg-general-datatype">Arten der verarbeiteten Daten</h3> <h3 id="dsg-general-datatype">Arten der verarbeiteten Daten</h3>
<p>- Bestandsdaten (z.B., Personen-Stammdaten, Namen oder Adressen).<br> <p>
- Bestandsdaten (z.B., Personen-Stammdaten, Namen oder Adressen).<br>
- Kontaktdaten (z.B., E-Mail, Telefonnummern).<br> - Kontaktdaten (z.B., E-Mail, Telefonnummern).<br>
- Inhaltsdaten (z.B., Texteingaben, Fotografien, Videos).<br>
- Nutzungsdaten (z.B., besuchte Webseiten, Interesse an Inhalten, Zugriffszeiten).<br> - Nutzungsdaten (z.B., besuchte Webseiten, Interesse an Inhalten, Zugriffszeiten).<br>
- Meta-/Kommunikationsdaten (z.B., Geräte-Informationen, IP-Adressen).</p> - Meta-/Kommunikationsdaten (z.B., Geräte-Informationen, Anonymisierte IP-Adressen).</p>
<h3 id="dsg-general-datasubjects">Kategorien betroffener Personen</h3> <h3 id="dsg-general-datasubjects">Kategorien betroffener Personen</h3>
<p>Besucher und Nutzer des Onlineangebotes (Nachfolgend bezeichnen wir die betroffenen Personen zusammenfassend auch <p>Besucher und Nutzer des Onlineangebotes (Nachfolgend bezeichnen wir die betroffenen Personen zusammenfassend auch
als „Nutzer“).<br> als „Nutzer“).<br>
@ -114,17 +114,17 @@ Link zum Impressum: https://wordrotator.silas.link/impressum</span></p>
Zugriff gewähren, erfolgt dies insbesondere zu administrativen Zwecken als berechtigtes Interesse und Zugriff gewähren, erfolgt dies insbesondere zu administrativen Zwecken als berechtigtes Interesse und
darüberhinausgehend auf einer den gesetzlichen Vorgaben entsprechenden Grundlage. <br> darüberhinausgehend auf einer den gesetzlichen Vorgaben entsprechenden Grundlage. <br>
</p> </p>
<h3 id="dsg-general-thirdparty">Übermittlungen in Drittländer</h3> <!--<h3 id="dsg-general-thirdparty">Übermittlungen in Drittländer</h3>-->
<p>Sofern wir Daten in einem Drittland (d.h. außerhalb der Europäischen Union (EU), des Europäischen <!--<p>Sofern wir Daten in einem Drittland (d.h. außerhalb der Europäischen Union (EU), des Europäischen-->
Wirtschaftsraums (EWR) oder der Schweizer Eidgenossenschaft) verarbeiten oder dies im Rahmen der Inanspruchnahme <!--Wirtschaftsraums (EWR) oder der Schweizer Eidgenossenschaft) verarbeiten oder dies im Rahmen der Inanspruchnahme-->
von Diensten Dritter oder Offenlegung, bzw. Übermittlung von Daten an andere Personen oder Unternehmen <!--von Diensten Dritter oder Offenlegung, bzw. Übermittlung von Daten an andere Personen oder Unternehmen-->
geschieht, erfolgt dies nur, wenn es zur Erfüllung unserer (vor)vertraglichen Pflichten, auf Grundlage Ihrer <!--geschieht, erfolgt dies nur, wenn es zur Erfüllung unserer (vor)vertraglichen Pflichten, auf Grundlage Ihrer-->
Einwilligung, aufgrund einer rechtlichen Verpflichtung oder auf Grundlage unserer berechtigten Interessen <!--Einwilligung, aufgrund einer rechtlichen Verpflichtung oder auf Grundlage unserer berechtigten Interessen-->
geschieht. Vorbehaltlich gesetzlicher oder vertraglicher Erlaubnisse, verarbeiten oder lassen wir die Daten in <!--geschieht. Vorbehaltlich gesetzlicher oder vertraglicher Erlaubnisse, verarbeiten oder lassen wir die Daten in-->
einem Drittland nur beim Vorliegen der gesetzlichen Voraussetzungen. D.h. die Verarbeitung erfolgt z.B. auf <!--einem Drittland nur beim Vorliegen der gesetzlichen Voraussetzungen. D.h. die Verarbeitung erfolgt z.B. auf-->
Grundlage besonderer Garantien, wie der offiziell anerkannten Feststellung eines der EU entsprechenden <!--Grundlage besonderer Garantien, wie der offiziell anerkannten Feststellung eines der EU entsprechenden-->
Datenschutzniveaus (z.B. für die USA durch das „Privacy Shield“) oder Beachtung offiziell anerkannter spezieller <!--Datenschutzniveaus (z.B. für die USA durch das „Privacy Shield“) oder Beachtung offiziell anerkannter spezieller-->
vertraglicher Verpflichtungen.</p> <!--vertraglicher Verpflichtungen.</p>-->
<h3 id="dsg-general-rightssubject">Rechte der betroffenen Personen</h3> <h3 id="dsg-general-rightssubject">Rechte der betroffenen Personen</h3>
<p>Sie haben das Recht, eine Bestätigung darüber zu verlangen, ob betreffende Daten verarbeitet werden und auf <p>Sie haben das Recht, eine Bestätigung darüber zu verlangen, ob betreffende Daten verarbeitet werden und auf
Auskunft über diese Daten sowie auf weitere Informationen und Kopie der Daten entsprechend den gesetzlichen Auskunft über diese Daten sowie auf weitere Informationen und Kopie der Daten entsprechend den gesetzlichen
@ -170,14 +170,6 @@ Link zum Impressum: https://wordrotator.silas.link/impressum</span></p>
entsprechende Option in den Systemeinstellungen ihres Browsers zu deaktivieren. Gespeicherte Cookies können in entsprechende Option in den Systemeinstellungen ihres Browsers zu deaktivieren. Gespeicherte Cookies können in
den Systemeinstellungen des Browsers gelöscht werden. Der Ausschluss von Cookies kann zu den Systemeinstellungen des Browsers gelöscht werden. Der Ausschluss von Cookies kann zu
Funktionseinschränkungen dieses Onlineangebotes führen.<br> Funktionseinschränkungen dieses Onlineangebotes führen.<br>
<br>
Ein genereller Widerspruch gegen den Einsatz der zu Zwecken des Onlinemarketing eingesetzten Cookies kann bei
einer Vielzahl der Dienste, vor allem im Fall des Trackings, über die US-amerikanische Seite <a
href="http://www.aboutads.info/choices/">http://www.aboutads.info/choices/</a> oder die EU-Seite <a
href="http://www.youronlinechoices.com/">http://www.youronlinechoices.com/</a> erklärt werden. Des
Weiteren kann die Speicherung von Cookies mittels deren Abschaltung in den Einstellungen des Browsers erreicht
werden. Bitte beachten Sie, dass dann gegebenenfalls nicht alle Funktionen dieses Onlineangebotes genutzt werden
können.</p>
<h3 id="dsg-general-erasure">Löschung von Daten</h3> <h3 id="dsg-general-erasure">Löschung von Daten</h3>
<p>Die von uns verarbeiteten Daten werden nach Maßgabe der gesetzlichen Vorgaben gelöscht oder in ihrer Verarbeitung <p>Die von uns verarbeiteten Daten werden nach Maßgabe der gesetzlichen Vorgaben gelöscht oder in ihrer Verarbeitung
eingeschränkt. Sofern nicht im Rahmen dieser Datenschutzerklärung ausdrücklich angegeben, werden die bei uns eingeschränkt. Sofern nicht im Rahmen dieser Datenschutzerklärung ausdrücklich angegeben, werden die bei uns
@ -197,14 +189,19 @@ Link zum Impressum: https://wordrotator.silas.link/impressum</span></p>
<p></p> <p></p>
<p><span class="ts-muster-content">Die von uns in Anspruch genommenen Hosting-Leistungen dienen der Zurverfügungstellung der folgenden Leistungen: Infrastruktur- und Plattformdienstleistungen, Rechenkapazität, Speicherplatz und Datenbankdienste, E-Mail-Versand, Sicherheitsleistungen sowie technische Wartungsleistungen, die wir zum Zwecke des Betriebs dieses Onlineangebotes einsetzen. <br> <p><span class="ts-muster-content">Die von uns in Anspruch genommenen Hosting-Leistungen dienen der Zurverfügungstellung der folgenden Leistungen: Infrastruktur- und Plattformdienstleistungen, Rechenkapazität, Speicherplatz und Datenbankdienste, E-Mail-Versand, Sicherheitsleistungen sowie technische Wartungsleistungen, die wir zum Zwecke des Betriebs dieses Onlineangebotes einsetzen. <br>
<br> <br>
Hierbei verarbeiten wir, bzw. unser Hostinganbieter Bestandsdaten, Kontaktdaten, Inhaltsdaten, Vertragsdaten, Nutzungsdaten, Meta- und Kommunikationsdaten von Kunden, Interessenten und Besuchern dieses Onlineangebotes auf Grundlage unserer berechtigten Interessen an einer effizienten und sicheren Zurverfügungstellung dieses Onlineangebotes gem. Art. 6 Abs. 1 lit. f DSGVO i.V.m. Art. 28 DSGVO (Abschluss Auftragsverarbeitungsvertrag).</span> Hierbei verarbeiten wir, bzw. unser Hostinganbieter Bestandsdaten, Kontaktdaten, Vertragsdaten, Nutzungsdaten, Meta- und Kommunikationsdaten von Kunden, Interessenten und Besuchern dieses Onlineangebotes auf Grundlage unserer berechtigten Interessen an einer effizienten und sicheren Zurverfügungstellung dieses Onlineangebotes gem. Art. 6 Abs. 1 lit. f DSGVO i.V.m. Art. 28 DSGVO (Abschluss Auftragsverarbeitungsvertrag).</span>
</p> </p>
<p></p> <p></p>
<h3 id="dsg-logfiles">Erhebung von Zugriffsdaten und Logfiles</h3> <h3 id="dsg-logfiles">Erhebung von Zugriffsdaten und Logfiles</h3>
<p></p> <p></p>
<p><span class="ts-muster-content">Wir, bzw. unser Hostinganbieter, erhebt auf Grundlage unserer berechtigten Interessen im Sinne des Art. 6 Abs. 1 lit. f. DSGVO Daten über jeden Zugriff auf den Server, auf dem sich dieser Dienst befindet (sogenannte Serverlogfiles). Zu den Zugriffsdaten gehören Name der abgerufenen Webseite, Datei, Datum und Uhrzeit des Abrufs, übertragene Datenmenge, Meldung über erfolgreichen Abruf, Browsertyp nebst Version, das Betriebssystem des Nutzers, Referrer URL (die zuvor besuchte Seite), IP-Adresse und der anfragende Provider.<br> <p><span class="ts-muster-content">Wir, bzw. unser Hostinganbieter, erhebt auf Grundlage unserer berechtigten Interessen
im Sinne des Art. 6 Abs. 1 lit. f. DSGVO Daten über jeden Zugriff auf den Server, auf dem sich dieser Dienst befindet
(sogenannte Serverlogfiles). Zu den Zugriffsdaten gehören Name der abgerufenen Webseite, Datei, Datum und Uhrzeit des Abrufs,
übertragene Datenmenge, Meldung über erfolgreichen Abruf, Browsertyp nebst Version, das Betriebssystem des Nutzers, Referrer URL
(die zuvor besuchte Seite), IP-Adresse und der anfragende Provider.<br>
<br> <br>
Logfile-Informationen werden aus Sicherheitsgründen (z.B. zur Aufklärung von Missbrauchs- oder Betrugshandlungen) für die Dauer von maximal 7 Tagen gespeichert und danach gelöscht. Daten, deren weitere Aufbewahrung zu Beweiszwecken erforderlich ist, sind bis zur endgültigen Klärung des jeweiligen Vorfalls von der Löschung ausgenommen.</span> Logfile-Informationen werden aus Sicherheitsgründen (z.B. zur Aufklärung von Missbrauchs- oder Betrugshandlungen) für die
Dauer von maximal 5 Wochen gespeichert und danach gelöscht. Daten, deren weitere Aufbewahrung zu Beweiszwecken erforderlich ist, sind bis zur endgültigen Klärung des jeweiligen Vorfalls von der Löschung ausgenommen.</span>
</p> </p>
<p></p> <p></p>
<h3 id="dsg-matomo">Reichweitenmessung mit Matomo</h3> <h3 id="dsg-matomo">Reichweitenmessung mit Matomo</h3>
@ -213,13 +210,24 @@ Logfile-Informationen werden aus Sicherheitsgründen (z.B. zur Aufklärung von M
<br> <br>
Matomo verwendet Cookies, die auf dem Computer der Nutzer gespeichert werden und die eine Analyse der Benutzung unseres Onlineangebotes durch die Nutzer ermöglichen. Dabei können aus den verarbeiteten Daten pseudonyme Nutzungsprofile der Nutzer erstellt werden. Die Cookies haben eine Speicherdauer von einer Woche. Die durch das Cookie erzeugten Informationen über Ihre Benutzung dieser Webseite werden nur auf unserem Server gespeichert und nicht an Dritte weitergegeben.<br> Matomo verwendet Cookies, die auf dem Computer der Nutzer gespeichert werden und die eine Analyse der Benutzung unseres Onlineangebotes durch die Nutzer ermöglichen. Dabei können aus den verarbeiteten Daten pseudonyme Nutzungsprofile der Nutzer erstellt werden. Die Cookies haben eine Speicherdauer von einer Woche. Die durch das Cookie erzeugten Informationen über Ihre Benutzung dieser Webseite werden nur auf unserem Server gespeichert und nicht an Dritte weitergegeben.<br>
<br> <br>
Nutzer können der anonymisierten Datenerhebung durch das Programm Matomo jederzeit mit Wirkung für die Zukunft widersprechen, indem sie auf den untenstehenden Link klicken. In diesem Fall wird in ihrem Browser ein sog. Opt-Out-Cookie abgelegt, was zur Folge hat, dass Matomo keinerlei Sitzungsdaten mehr erhebt. Wenn Nutzer ihre Cookies löschen, so hat dies jedoch zur Folge, dass auch das Opt-Out-Cookie gelöscht wird und daher von den Nutzern erneut aktiviert werden muss.<br> Nutzer können der anonymisierten Datenerhebung durch das Programm Matomo jederzeit mit Wirkung für die Zukunft widersprechen,
indem sie den unten befindlichen Schalter nutzen. In diesem Fall wird in ihrem Browser ein sog. Opt-Out-Cookie abgelegt,
was zur Folge hat, dass Matomo keinerlei Sitzungsdaten mehr erhebt.
Wenn Nutzer ihre Cookies löschen, so hat dies jedoch zur Folge, dass auch das Opt-Out-Cookie gelöscht wird und daher
von den Nutzern erneut aktiviert werden muss.<br>
<br> <br>
Die Logs mit den Daten der Nutzer werden nach spätestens einem Jahr gelöscht.<br> Die Logs mit den Daten der Nutzer werden nach spätestens einem Jahr gelöscht.<br>
<br> <br></span>
<span style="color:red !important">[Bitte setzen Sie an dieser Stelle das IFRAME von Matomo mit dem opt-out cookie ein (und schalten die IP-Anonymisierung im Einstellungsbereich ein)]</span>.</span>
</p> </p>
<label class="switch row setting-row">
<span class='columns small-6' data-translation="track"></span>
<span class='columns small-6 text-right'>
<input type="checkbox" class="setting" id="track-switch" name='matomoShouldTrack' value="1"
data-default="1" data-raw="1">
<span class="slider"></span>
</span>
</label>
<a href="https://datenschutz-generator.de" class="dsg1-6" rel="nofollow" target="_blank">Erstellt mit <a href="https://datenschutz-generator.de" class="dsg1-6" rel="nofollow" target="_blank">Erstellt mit
Datenschutz-Generator.de von RA Dr. Thomas Schwenke</a> Datenschutz-Generator.de von RA Dr. Thomas Schwenke</a><br/>
<p>und angepasst vom Webseitenbetreiber</p> und angepasst vom Webseitenbetreiber
</div> </div>

View File

@ -26,7 +26,6 @@ export class WordRotatorSettingFragment extends LocalStorageSettingsFragment {
} }
}); });
this.findBy("#reset-levels").addEventListener("click", () => { this.findBy("#reset-levels").addEventListener("click", () => {
localStorage.removeItem("currentLevel"); localStorage.removeItem("currentLevel");
localStorage.removeItem("date-last-sync"); localStorage.removeItem("date-last-sync");

View File

@ -85,6 +85,12 @@ export class MenuSite extends WordRotatorBaseSite {
this.listener(); this.listener();
window.addEventListener("resize", this.listener); window.addEventListener("resize", this.listener);
//Musikbuttons update, falls in den Einstellungen umgestellt
let playSoundButton = this.findBy("#play-sound");
playSoundButton.checked = settingsManager.getSetting("play-sound", true);
let playMusicButton = this.findBy("#play-music");
playMusicButton.checked = settingsManager.getSetting("play-music", true);
return res; return res;
} }

View File

@ -1,5 +1,5 @@
import {WordRotatorBaseSite} from "./WordRotatorBaseSite"; import {WordRotatorBaseSite} from "./WordRotatorBaseSite";
import {InitPromise} from "../../../../../js/lib/pwa-lib"; import {Helper, InitPromise} from "../../../../../js/lib/pwa-lib";
import {Matomo} from "../../../../../js/lib/pwa-assets"; import {Matomo} from "../../../../../js/lib/pwa-assets";
export class PrivacyPolicySite extends WordRotatorBaseSite { export class PrivacyPolicySite extends WordRotatorBaseSite {
@ -7,7 +7,22 @@ export class PrivacyPolicySite extends WordRotatorBaseSite {
super(siteManager, "html/application/privacyPolicy.html", "privacyPolicy"); super(siteManager, "html/application/privacyPolicy.html", "privacyPolicy");
} }
onFirstStart() {
let trackSwitch =this.findBy("#track-switch");
trackSwitch.addEventListener("change", function (e) {
Matomo.setTrack(this.checked === true);
e.stopPropagation();
e.preventDefault();
});
super.onFirstStart();
}
onStart(args) { onStart(args) {
let trackSwitch =this.findBy("#track-switch");
let shouldTrack = (Helper.nonNull(localStorage.getItem("matomoShouldTrack"), "1") === "1");
trackSwitch.checked = shouldTrack;
Matomo.update("Privacy Policy Site"); Matomo.update("Privacy Policy Site");
return super.onStart(args); return super.onStart(args);
} }

View File

@ -465,6 +465,44 @@ test('SendUserstats', async t => {
await testLocalStorageSet("matomoShouldTrack", "1"); await testLocalStorageSet("matomoShouldTrack", "1");
}); });
test.only('SendUserstatsInPrivacyPolicy', async t => {
await waitForMainMenu(t);
let matomoCheck = ClientFunction(() => {
return new Promise((resolve) => {
function check() {
window["_paq"].push([function () {
resolve(!this["isUserOptedOut"]());
}]);
}
window.addEventListener("load", () => {
check();
});
if (document.readyState === 'complete') {
check();
}
});
});
await t
.click(Selector(".action [data-translation-title='settings']"))
.click(Selector("#privacy-policy-button"))
.expect(Selector("#track-switch").checked).ok();
let res = await matomoCheck();
await t.expect(res).ok()
.click(Selector(".switch [data-translation='track']"))
.expect(Selector("#track-switch").checked).eql(false);
res = await matomoCheck();
await t.expect(res).eql(false)
.click(Selector(".switch [data-translation='track']"))
.expect(Selector("#track-switch").checked).ok();
res = await matomoCheck();
await t.expect(res).ok()
}).before(async t => {
await testLocalStorageSet("matomoShouldTrack", "1");
});
test('Themes', async t => { test('Themes', async t => {
await waitForMainMenu(t); await waitForMainMenu(t);
await t await t