übertrag zum PC
This commit is contained in:
@@ -18,10 +18,13 @@ import "./lib/pwa-user-management"
|
||||
|
||||
import {SettingsManager, SettingsSite} from "./lib/pwa-core";
|
||||
|
||||
import {SoundManager} from "./lib/pwa-assets";
|
||||
import {Matomo, SoundManager} from "./lib/pwa-assets";
|
||||
import {MenuSite} from "../module/Application/pwa/js/site/MenuSite";
|
||||
import {WordRotatorSettingFragment} from "../module/Application/pwa/js/Fragment/WordRotatorSettingFragment";
|
||||
|
||||
import {PrivacyPolicySite} from "../module/Application/pwa/js/site/PrivacyPolicySite";
|
||||
import {CreditsSite} from "../module/Application/pwa/js/site/CreditsSite";
|
||||
|
||||
applyPolyfills();
|
||||
|
||||
|
||||
@@ -41,8 +44,6 @@ ShareManager.addShareButton(new TelegramShareButton('img/telegram.svg'));
|
||||
|
||||
let app = new App();
|
||||
// app.addDeepLink("policy", PrivatePolicySite.name);
|
||||
// app.setAddThemeAction(true);
|
||||
// app.addDefaultAction(Translator.generateChangeLanguageMenuAction());
|
||||
|
||||
// bridge für Android
|
||||
window["ThemeManager"] = ThemeManager;
|
||||
@@ -58,7 +59,7 @@ SettingsSite.setTemplate("html/application/setting-template.html");
|
||||
RegistrationSite.addAction = false;
|
||||
LoginSite.addLoginAction = false;
|
||||
|
||||
InitPromise.resolve(app).then(function(){
|
||||
InitPromise.resolve(app).then(async function(){
|
||||
SettingsSite.settingsAction.showFor = MenuAction.SHOW_ALWAYS;
|
||||
|
||||
let settingsManager = SettingsManager.getInstance();
|
||||
@@ -68,5 +69,8 @@ InitPromise.resolve(app).then(function(){
|
||||
|
||||
app.start(MenuSite);
|
||||
Translator.setLanguage("de");
|
||||
|
||||
// let matomo = new Matomo();
|
||||
// console.log(await matomo._askIsTracking());
|
||||
});
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { Helper, Fragment, Translator } from './pwa-lib.js';
|
||||
import { Helper, InitPromise, Fragment, Translator } from './pwa-lib.js';
|
||||
|
||||
class DelayPromise extends Promise {
|
||||
static async delay(delay) {
|
||||
@@ -8,6 +8,88 @@ class DelayPromise extends Promise {
|
||||
}
|
||||
}
|
||||
|
||||
class Matomo {
|
||||
|
||||
static init() {
|
||||
Matomo.isTrackingPromise = new Promise(async (resolve) => {
|
||||
let shouldTrack = localStorage.getItem(Matomo.LOCAL_STORAGE_KEY);
|
||||
console.log(shouldTrack,Helper.isNull(shouldTrack));
|
||||
if (Helper.isNull(shouldTrack)) {
|
||||
shouldTrack = await Matomo._askIsTracking();
|
||||
localStorage.setItem(Matomo.LOCAL_STORAGE_KEY, shouldTrack);
|
||||
}
|
||||
else {
|
||||
console.log(shouldTrack, (shouldTrack === "1"));
|
||||
shouldTrack = (shouldTrack === "1");
|
||||
Matomo.setTrack(shouldTrack);
|
||||
}
|
||||
resolve(shouldTrack);
|
||||
});
|
||||
Matomo.isTrackingPromise.then(() => {
|
||||
Matomo.push(['trackPageView']);
|
||||
Matomo.push(['enableLinkTracking']);
|
||||
Matomo.push(['setTrackerUrl', Matomo.TRACK_SITE + '/piwik.php']);
|
||||
Matomo.push(['setSiteId', '1']);
|
||||
|
||||
let d = document, g = d.createElement('script'), s = d.getElementsByTagName('head')[0];
|
||||
g.type = 'text/javascript';
|
||||
g.async = true;
|
||||
g.defer = true;
|
||||
g.src = Matomo.TRACK_SITE + '/piwik.js';
|
||||
s.appendChild(g);
|
||||
});
|
||||
}
|
||||
|
||||
static async _askIsTracking() {
|
||||
console.log(Matomo.TRACK_SITE + Matomo.BASE_PATH + "isTracked");
|
||||
Matomo.isTrackingPromise = Matomo.query("isTracked")
|
||||
.then(xml => {
|
||||
let textContent = xml.firstChild.textContent;
|
||||
// localStorage.setItem(Matomo.LOCAL_STORAGE_KEY, textContent);
|
||||
return (textContent === "1")
|
||||
});
|
||||
return Matomo.isTrackingPromise;
|
||||
}
|
||||
|
||||
static async query(method) {
|
||||
return fetch(Matomo.TRACK_SITE + Matomo.BASE_PATH + method, {
|
||||
// "method":"POST",
|
||||
"mode": "cors",
|
||||
"credentials": "include",
|
||||
// "headers": {
|
||||
// 'Access-Control-Allow-Origin': '*',
|
||||
// 'Access-Control-Allow-Credentials': 'true',
|
||||
// },
|
||||
}).then(res => res.text()).then(text => (new window.DOMParser()).parseFromString(text, "text/xml"));
|
||||
}
|
||||
|
||||
static getTrackingPromise() {
|
||||
return Matomo.isTrackingPromise;
|
||||
}
|
||||
|
||||
static async setTrack(shouldTrack) {
|
||||
Matomo.isTrackingPromise = Promise.resolve(shouldTrack);
|
||||
localStorage.setItem(Matomo.LOCAL_STORAGE_KEY, (shouldTrack === true) ? "1" : "0");
|
||||
return await Matomo.query((shouldTrack) ? "doTrack" : "doIgnore");
|
||||
}
|
||||
|
||||
static async push(arr) {
|
||||
if (await Matomo.getTrackingPromise()) {
|
||||
window["_paq"].push(arr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Matomo.LOCAL_STORAGE_KEY = "matomoShouldTrack";
|
||||
Matomo.TRACK_SITE = "//matomo.silas.link";
|
||||
Matomo.BASE_PATH = "/index.php?module=API&method=AjaxOptOut.";
|
||||
|
||||
InitPromise.addPromise(() => {
|
||||
window["_paq"] = window["_paq"] || [];
|
||||
|
||||
Matomo.init();
|
||||
});
|
||||
|
||||
class RotateHelper {
|
||||
rotate(element, degrees){
|
||||
let rotateText = element.innerText;
|
||||
@@ -271,4 +353,4 @@ class TabbedFragment extends Fragment {
|
||||
}
|
||||
}
|
||||
|
||||
export { DelayPromise, RotateHelper, ScaleHelper, SoundManager, TabbedFragment };
|
||||
export { DelayPromise, Matomo, RotateHelper, ScaleHelper, SoundManager, TabbedFragment };
|
||||
|
||||
@@ -355,16 +355,22 @@ class LocalStorageSettingsFragment extends Fragment {
|
||||
let settings = this.findBy(".setting", true);
|
||||
const settingsManager = SettingsManager.getInstance();
|
||||
|
||||
for (let i = 0; i < settings.length; i++) {
|
||||
for (let i = 0; i < settings.length; i++) {
|
||||
let setting = settings[i];
|
||||
const name = setting.name;
|
||||
let value = settingsManager.getSetting(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 (!settingsManager.hasSetting(name) && Helper.isNotNull(settings[i]["dataset"]["default"])) {
|
||||
if (((!setting["dataset"]["raw"] && !settingsManager.hasSetting(name)) || (setting["dataset"]["raw"] && value === null))
|
||||
&& Helper.isNotNull(settings[i]["dataset"]["default"])) {
|
||||
value = setting["dataset"]["default"];
|
||||
if (Helper.isNotNull(setting["dataset"]["defaultTranslateable"])) {
|
||||
|
||||
@@ -387,19 +393,15 @@ class LocalStorageSettingsFragment extends Fragment {
|
||||
}
|
||||
|
||||
setting.addEventListener("change", function () {
|
||||
// console.log(setting);
|
||||
let value = this.value;
|
||||
if (isCheckable) {
|
||||
if (this.checked)
|
||||
{
|
||||
settingsManager.setSetting(name, value);
|
||||
}
|
||||
else
|
||||
{
|
||||
settingsManager.setSetting(name, null);
|
||||
}
|
||||
if (isCheckable && !this.checked) {
|
||||
value = null;
|
||||
}
|
||||
else {
|
||||
if (!setting["dataset"]["raw"]) {
|
||||
settingsManager.setSetting(name, value);
|
||||
} else {
|
||||
localStorage.setItem(name, value);
|
||||
}
|
||||
delete setting["dataset"]["translationValue"];
|
||||
delete setting["dataset"]["translation"];
|
||||
|
||||
@@ -2,7 +2,7 @@ import {SystemSettings, Translator} from "./lib/pwa-lib";
|
||||
|
||||
|
||||
let basePath = "/pwa/wordRotator/public/";
|
||||
if (window.location.pathname.endsWith("publicTest/"))
|
||||
if (window.location.pathname.includes("publicTest/"))
|
||||
{
|
||||
basePath = "/pwa/wordRotator/publicTest/";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user