30 Commits

Author SHA1 Message Date
69c47e3cf0 Merge branch 'master' into lazy-img 2024-03-31 12:58:59 +02:00
564a1f96e0 Merge pull request 'prevent script error' (#13) from 12_scripterror into master
Reviewed-on: #13
2024-03-31 12:58:45 +02:00
electronicfreak
dd82088551 lazy img 2024-03-31 12:55:43 +02:00
st
50f7a4c1ff prevent script error 2024-03-15 11:40:31 +01:00
electronicfreak
0798e94040 anpassung feedback 2024-02-21 21:53:25 +01:00
electronicfreak
33ec55e6f1 comment feedback minify 2024-02-21 21:15:02 +01:00
electronicfreak
deda3600c2 log css angepasst 2023-11-01 20:32:44 +01:00
electronicfreak
588347e71d copy auch für divs 2023-10-29 22:14:25 +01:00
troy
6f4c30fc7a jqury aus tablefilter ausgebaut 2023-09-03 11:27:12 +02:00
0ad2da71b2 Merge pull request 'mache flag btn größer für tablets' (#11) from feature/39_touch-flaag into master
Reviewed-on: #11
2023-06-10 22:38:35 +02:00
titz lapi
79dc248825 mache flag btn größer für tablets 2023-06-10 22:34:00 +02:00
troy
180b7ee04b admin textcolor in css heller 2022-12-19 13:19:19 +01:00
troy
ef31ee2cba admin in darkmode 2022-11-27 11:38:12 +01:00
troy
f62b83cb1a switch hoch schieben 2022-11-14 17:48:27 +01:00
0d3289a900 Merge pull request 'feature/frontlog' (#10) from feature/frontlog into master
Reviewed-on: #10
2022-11-08 18:39:06 +01:00
troy
5f60054c1f out animation 2022-11-08 18:36:15 +01:00
troy
1764bbaa24 in animation 2022-11-08 18:24:16 +01:00
Sebastian Titz
8e56887b7a push statt append 2022-11-08 15:45:36 +01:00
Sebastian Titz
2001ed947c frontlog css 2022-11-08 15:22:55 +01:00
troy
67e4e01708 frontlog, müsste so klappen, mit pipe usw 2022-11-04 21:55:15 +01:00
titz lapi
862d65c894 WIP: grundstruktur 2022-11-04 20:36:33 +01:00
troy
df5a05dfc5 flag css angepasst mehr platz für andere schriftarten 2022-10-29 12:23:38 +02:00
f9fa9974af Merge pull request 'closes #4 und etwas readme für flag.js' (#8) from feature/collect-infos into master
Reviewed-on: #8
2022-10-20 17:44:47 +02:00
troy
8575f417da closes #4 und etwas readme für flag.js 2022-10-20 17:45:31 +02:00
troy
8f8cfa4283 css uüdate für allwasy in foreground 2022-09-18 13:54:47 +02:00
troy
79cfaf0a95 no tabs 2022-07-22 23:17:46 +02:00
troy
43f2422b88 css 2022-07-21 15:15:20 +02:00
troy
bb501daeb1 flag center und abbruch wenn man auf overlay klick 2022-07-21 14:51:04 +02:00
titz lapi
bbee4c0057 dataset wird mit übertragen 2022-07-21 00:15:30 +02:00
troy
663456cbcd Merge remote-tracking branch 'origin/feature/logit' into master 2022-07-15 12:41:07 +02:00
29 changed files with 2204 additions and 226 deletions

View File

@@ -305,3 +305,17 @@ benötigt "Fader"
<!-- End logit -->
```
nicht vergessen bei setSiteId die richtige id anzugeben
## Flag
einfach folgende zeilen in den footer
```
<script src="/cssjs/flag.min.js"></script>
<link rel="stylesheet" href="/cssjs/flag.min.css">
```
um zusätzliche infos zu liefern muss ein
```
data-flaginfo="<key>:<val>"
```
in irgend ein html tag gepackt werden, ,das wird dann vom script abgeholt wenn es gebraucht wird.

View File

@@ -1,3 +1,8 @@
body {
background-color: #000 !important;
color: #fff;
}
textarea {
display: block;
width: 100%;
@@ -21,7 +26,6 @@ form .label {
margin: 0 10px;
}
.hover {
border: 1px solid white;
}

2
admin.min.css vendored
View File

@@ -1 +1 @@
textarea{display:block;width:100%}form .label{float:left;width:200px}.admin_navi{display:block;width:100%;border-bottom:1px solid #000;overflow:overlay}.admin_navi li{display:block;float:left;margin:0 10px}.hover{border:1px solid #fff}.hover:hover{border:1px solid #000}
body{background-color:#000!important;color:#fff}textarea{display:block;width:100%}form .label{float:left;width:200px}.admin_navi{display:block;width:100%;border-bottom:1px solid #000;overflow:overlay}.admin_navi li{display:block;float:left;margin:0 10px}.hover{border:1px solid #fff}.hover:hover{border:1px solid #000}

View File

@@ -9,6 +9,15 @@ function copyToClipboard(id) {
document.execCommand("copy");
}
function copyDivToClipboard(id) {
let range = document.createRange();
range.selectNode(document.getElementById(id));
window.getSelection().removeAllRanges();
window.getSelection().addRange(range);
document.execCommand("copy");
window.getSelection().removeAllRanges();
}
function copiedToClipboard(id) {
var tooltip = document.getElementById(id);
tooltip.innerHTML = "Kopiert";

View File

@@ -1 +1 @@
.copy-to-clipboard{position:relative;display:inline-block}.copy-to-clipboard .tooltiptext{visibility:hidden;width:140px;background-color:#555;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:150%;left:50%;margin-left:-75px}.copy-to-clipboard .tooltiptext::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent transparent}.copy-to-clipboard:hover .tooltiptext{visibility:visible;opacity:1}
.copy-to-clipboard{position:relative;display:inline-block}.copy-to-clipboard .tooltiptext{visibility:hidden;width:140px;background-color:#555;color:#fff;text-align:center;border-radius:6px;padding:5px;position:absolute;z-index:1;bottom:150%;left:50%;margin-left:-75px}.copy-to-clipboard .tooltiptext::after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#555 transparent transparent}.copy-to-clipboard:hover .tooltiptext{visibility:visible;opacity:1}

View File

@@ -1,2 +1 @@
function copyToClipboard(id){var copyText=document.getElementById(id);copyText.select(),copyText.setSelectionRange(0,99999),document.execCommand("copy")}function copiedToClipboard(id){var tooltip;document.getElementById(id).innerHTML="Kopiert"}function resetClipboard(id){var tooltip;document.getElementById(id).innerHTML="Kopieren"}
//# sourceMappingURL=copy-to-clipboard.min.js.map
function copyToClipboard(e){var n=document.getElementById(e);n.select(),n.setSelectionRange(0,99999),document.execCommand("copy")}function copyDivToClipboard(e){let n=document.createRange();n.selectNode(document.getElementById(e)),window.getSelection().removeAllRanges(),window.getSelection().addRange(n),document.execCommand("copy"),window.getSelection().removeAllRanges()}function copiedToClipboard(e){document.getElementById(e).innerHTML="Kopiert"}function resetClipboard(e){document.getElementById(e).innerHTML="Kopieren"}

View File

@@ -22,6 +22,34 @@ function ajaxFeedback(e,url,css) {
return false;
}
function ajaxCommentFeedback(e,url,css) {
let comment = prompt("Was funktioniert nicht?");
if(comment) {
url = url + "&comment="+encodeURIComponent(comment);
}
$.ajax({
url: url,
success: function(res) {
if(res =='success') {
successMarker(e,css);
return;
}else{
if(res =='warn') {
warnMarker(e,css);
return;
}else{
errorMarker(e,css);
return;
}
}
},
error: function (res,err) {
errorMarker(e,css);
}
});
return false;
}
function formFeedback(e,f,url,css) {
var formData = {}
$(f).each(function(i, obj) {

3
feedback.min.js vendored

File diff suppressed because one or more lines are too long

View File

@@ -2,11 +2,21 @@
position: fixed;
bottom: 0px;
right: 0px;
width: 150px;
width: 170px;
border: 1px solid #fff;
border-top-left-radius: 15px;
border-bottom-left-radius: 15px;
margin-right: -130px;
margin-right: -145px;
z-index: 99999;
}
@media (max-width:1081px) {
#flag-panel {
border: 10px solid #fff;
border-top-left-radius: 23px;
border-bottom-left-radius: 23px;
margin-right: -135px;
}
}
#flag-panel.open {
@@ -32,24 +42,29 @@
z-index: 9999;
}
#flag-overlay iframe {
width: 80%;
min-width: 350px;
margin: 0 auto;
margin-top: 1vh;
display: block;
background-color: #fff;
border: 3px solid #000;
#flag-iframe {
position: fixed;
top: 0;
left: 50%;
transform: translateX(-50%);
z-index: 10000;
background-color: #000;
border: 3px solid #fff;
border-radius: 1em;
overflow-y: scroll;
height: 97vh;
min-width: 350px;
width: 80%;
display: block;
margin: 0 auto;
margin-top: 1vh;
}
#flag-overlay.closing {
transition: opacity 0.5s;
}
#flag-overlay.closing iframe {
#flag-iframe.closing {
transition: margin 1s ease, width 1s ease, height 1s ease;
width: 350px;
height: 170px;

35
flag.js
View File

@@ -14,24 +14,34 @@
var closeFlag = function(ev) {
flag.classList.add('closing');
iframe.classList.add('closing');
setTimeout(function() {
flag.style.opacity = 0;
iframe.style.opacity = 0;
setTimeout(function() {
flag.remove();
iframe.remove();
document.body.style.overflowY = 'auto';
},500);
},3000);
},1000);
}
var openFlag = function(ev) {
var openFlag = function(ev, infos=false) {
flag = document.createElement('div');
document.body.style.overflowY = 'hidden';
flag.id = 'flag-overlay';
iframe = document.createElement('iframe');
iframe.src= '';
iframe.name = 'flag-iframe';
flag.appendChild(iframe);
iframe.id = 'flag-iframe';
document.body.appendChild(flag);
setTimeout(function() {
flag.addEventListener('click',function(){
closeFlag();
//console.log('close2');
});
},3000);
document.body.appendChild(iframe);
var form = document.createElement('form');
form.action = connector+"?style="+style;
@@ -45,10 +55,25 @@
});*/
var fields = {};
fields['s'] = window.location.hostname;
var datas = document.querySelectorAll('[data-flaginfo]');
if(datas) {
for(var i=0; i<datas.length;i++) {
console.log(datas[i].dataset['flaginfo']);
var tmp = datas[i].dataset['flaginfo'];
tmp = tmp.split(':',2);
fields[tmp[0]] = tmp[1];
}
}
if(document.referrer) {fields['r'] = document.referrer;}
if(window.location.href) {fields['u'] = window.location.href;}
if(navigator.userAgent) {fields['a'] = navigator.userAgent;}
fields['d'] = ''+window.screen.width+'x'+window.screen.height+' ('+window.screen.colorDepth+'bit)';
if(infos && typeof(infos) == typeof({})) {
for(var i in infos) {
fields[i] = infos[i];
}
}
console.log('Fields',fields);
for(var f in fields) {
var inp = document.createElement('input');
@@ -61,6 +86,7 @@
form.style = 'display:none';
document.body.appendChild(form);
form.submit();
form.remove();
}
var panel = document.createElement('div');
@@ -83,6 +109,7 @@
window.addEventListener("message", (event) => {
//console.log(event);
if(event.data == 'close') {
//console.log('close1');
closeFlag();
}
});
@@ -92,7 +119,7 @@
for(var l=0;l<links.length;l++) {
//console.log(l,links[l]);
links[l].addEventListener('click',function(ev) {
openFlag(ev);
openFlag(ev,ev.target.dataset);
ev.preventDefault();
return false;
});

2
flag.min.css vendored
View File

@@ -1 +1 @@
#flag-panel{position:fixed;bottom:0;right:0;width:150px;border:1px solid #fff;border-top-left-radius:15px;border-bottom-left-radius:15px;margin-right:-130px}#flag-panel.open{margin-right:0!important}#flag-panel.opened{transition:margin-right 1s}#flag-panel span{margin-right:10px;margin-left:5px}#flag-overlay{position:fixed;width:100%;height:100vh;top:0;left:0;background-color:rgba(0,0,0,.5);z-index:9999}#flag-overlay iframe{width:80%;min-width:350px;margin:0 auto;margin-top:1vh;display:block;background-color:#fff;border:3px solid #000;border-radius:1em;overflow-y:scroll;height:97vh}#flag-overlay.closing{transition:opacity .5s}#flag-overlay.closing iframe{transition:margin 1s ease,width 1s ease,height 1s ease;width:350px;height:170px;margin-top:calc(50vh - 50px);overflow:hidden}
#flag-panel{position:fixed;bottom:0;right:0;width:170px;border:1px solid #fff;border-top-left-radius:15px;border-bottom-left-radius:15px;margin-right:-145px;z-index:99999}@media (max-width:1081px){#flag-panel{border:10px solid #fff;border-top-left-radius:23px;border-bottom-left-radius:23px;margin-right:-135px}}#flag-panel.open{margin-right:0!important}#flag-panel.opened{transition:margin-right 1s}#flag-panel span{margin-right:10px;margin-left:5px}#flag-overlay{position:fixed;width:100%;height:100vh;top:0;left:0;background-color:rgba(0,0,0,.5);z-index:9999}#flag-iframe{position:fixed;top:0;left:50%;transform:translateX(-50%);z-index:10000;background-color:#000;border:3px solid #fff;border-radius:1em;overflow-y:scroll;height:97vh;min-width:350px;width:80%;display:block;margin:1vh auto 0}#flag-overlay.closing{transition:opacity .5s}#flag-iframe.closing{transition:margin 1s,width 1s,height 1s;width:350px;height:170px;margin-top:calc(50vh - 50px);overflow:hidden}

2
flag.min.js vendored
View File

@@ -1,2 +1,2 @@
!function(connector){"use strict";var style="default",iframe,flag;document.body.dataset.feedbackstyle&&(style=document.body.dataset.feedbackstyle);var col="light",closeFlag=function(ev){flag.classList.add("closing"),setTimeout((function(){flag.style.opacity=0,setTimeout((function(){flag.remove(),document.body.style.overflowY="auto"}),500)}),3e3)},openFlag=function(ev){flag=document.createElement("div"),document.body.style.overflowY="hidden",flag.id="flag-overlay",(iframe=document.createElement("iframe")).src="",iframe.name="flag-iframe",flag.appendChild(iframe),document.body.appendChild(flag);var form=document.createElement("form");form.action=connector+"?style="+style,form.target="flag-iframe",form.method="POST";const screenshotTarget=document.body;var fields={};for(var f in fields.s=window.location.hostname,document.referrer&&(fields.r=document.referrer),window.location.href&&(fields.u=window.location.href),navigator.userAgent&&(fields.a=navigator.userAgent),fields.d=window.screen.width+"x"+window.screen.height+" ("+window.screen.colorDepth+"bit)",fields){var inp=document.createElement("input");inp.type="hidden",inp.name=f,inp.value=fields[f],form.appendChild(inp)}form.style="display:none",document.body.appendChild(form),form.submit()},panel=document.createElement("div");panel.id="flag-panel";var tab=document.createElement("span");tab.innerHTML="&#9873;",tab.addEventListener("mouseenter",(function(ev){panel.classList.contains("opened")||panel.classList.add("opened"),panel.classList.toggle("open")}));var button=document.createElement("button");button.innerHTML="Problem melden",button.addEventListener("click",openFlag),window.addEventListener("message",event=>{"close"==event.data&&closeFlag()});var links=document.getElementsByClassName("flag-link");if(links.length>0)for(var l=0;l<links.length;l++)links[l].addEventListener("click",(function(ev){return openFlag(ev),ev.preventDefault(),!1}));panel.appendChild(tab),panel.appendChild(button),document.body.appendChild(panel)}("https://troy-grunt.de/feedback");
!function(connector){"use strict";var style="default",iframe,flag;document.body.dataset.feedbackstyle&&(style=document.body.dataset.feedbackstyle);var col="light",closeFlag=function(ev){flag.classList.add("closing"),iframe.classList.add("closing"),setTimeout((function(){flag.style.opacity=0,iframe.style.opacity=0,setTimeout((function(){flag.remove(),iframe.remove(),document.body.style.overflowY="auto"}),500)}),1e3)},openFlag=function(ev,infos=!1){flag=document.createElement("div"),document.body.style.overflowY="hidden",flag.id="flag-overlay",(iframe=document.createElement("iframe")).src="",iframe.name="flag-iframe",iframe.id="flag-iframe",document.body.appendChild(flag),setTimeout((function(){flag.addEventListener("click",(function(){closeFlag()}))}),3e3),document.body.appendChild(iframe);var form=document.createElement("form");form.action=connector+"?style="+style,form.target="flag-iframe",form.method="POST";const screenshotTarget=document.body;var fields={};fields.s=window.location.hostname;var datas=document.querySelectorAll("[data-flaginfo]");if(datas)for(var i=0;i<datas.length;i++){console.log(datas[i].dataset.flaginfo);var tmp=datas[i].dataset.flaginfo;fields[(tmp=tmp.split(":",2))[0]]=tmp[1]}if(document.referrer&&(fields.r=document.referrer),window.location.href&&(fields.u=window.location.href),navigator.userAgent&&(fields.a=navigator.userAgent),fields.d=window.screen.width+"x"+window.screen.height+" ("+window.screen.colorDepth+"bit)",infos&&typeof infos==typeof{})for(var i in infos)fields[i]=infos[i];for(var f in console.log("Fields",fields),fields){var inp=document.createElement("input");inp.type="hidden",inp.name=f,inp.value=fields[f],form.appendChild(inp)}form.style="display:none",document.body.appendChild(form),form.submit(),form.remove()},panel=document.createElement("div");panel.id="flag-panel";var tab=document.createElement("span");tab.innerHTML="&#9873;",tab.addEventListener("mouseenter",(function(ev){panel.classList.contains("opened")||panel.classList.add("opened"),panel.classList.toggle("open")}));var button=document.createElement("button");button.innerHTML="Problem melden",button.addEventListener("click",openFlag),window.addEventListener("message",event=>{"close"==event.data&&closeFlag()});var links=document.getElementsByClassName("flag-link");if(links.length>0)for(var l=0;l<links.length;l++)links[l].addEventListener("click",(function(ev){return openFlag(ev,ev.target.dataset),ev.preventDefault(),!1}));panel.appendChild(tab),panel.appendChild(button),document.body.appendChild(panel)}("https://troy-grunt.de/feedback");
//# sourceMappingURL=flag.min.js.map

View File

@@ -22,21 +22,30 @@
"remove",
"overflowY",
"openFlag",
"infos",
"createElement",
"id",
"src",
"name",
"appendChild",
"addEventListener",
"form",
"action",
"target",
"method",
"screenshotTarget",
"fields",
"f",
"window",
"location",
"hostname",
"datas",
"querySelectorAll",
"i",
"length",
"console",
"log",
"tmp",
"split",
"referrer",
"href",
"navigator",
@@ -45,6 +54,7 @@
"width",
"height",
"colorDepth",
"f",
"inp",
"type",
"value",
@@ -52,7 +62,6 @@
"panel",
"tab",
"innerHTML",
"addEventListener",
"contains",
"toggle",
"button",
@@ -60,10 +69,9 @@
"data",
"links",
"getElementsByClassName",
"length",
"l",
"preventDefault"
],
"mappings": "CAAA,SAAUA,WACR,aAEA,IAAIC,MAAQ,UAKRC,OACAC,KALDC,SAASC,KAAKC,QAAQC,gBACvBN,MAAQG,SAASC,KAAKC,QAAQC,eAKhC,IAAIC,IAAM,QAINC,UAAY,SAASC,IACvBP,KAAKQ,UAAUC,IAAI,WACnBC,YAAW,WACTV,KAAKF,MAAMa,QAAU,EACrBD,YAAW,WACTV,KAAKY,SACLX,SAASC,KAAKJ,MAAMe,UAAY,SAChC,OACF,MAGAC,SAAW,SAASP,IACtBP,KAAOC,SAASc,cAAc,OAC9Bd,SAASC,KAAKJ,MAAMe,UAAY,SAChCb,KAAKgB,GAAK,gBACVjB,OAASE,SAASc,cAAc,WACzBE,IAAK,GACZlB,OAAOmB,KAAO,cACdlB,KAAKmB,YAAYpB,QACjBE,SAASC,KAAKiB,YAAYnB,MAE1B,IAAIoB,KAAOnB,SAASc,cAAc,QAClCK,KAAKC,OAASxB,UAAU,UAAUC,MAClCsB,KAAKE,OAAS,cACdF,KAAKG,OAAS,OACd,MAAMC,iBAAmBvB,SAASC,KAMlC,IAAIuB,OAAS,GAOb,IAAI,IAAIC,KANRD,OAAU,EAAIE,OAAOC,SAASC,SAC3B5B,SAAS6B,WAAWL,OAAU,EAAIxB,SAAS6B,UAC3CH,OAAOC,SAASG,OAAON,OAAU,EAAIE,OAAOC,SAASG,MACrDC,UAAUC,YAAYR,OAAU,EAAIO,UAAUC,WACjDR,OAAU,EAAOE,OAAOO,OAAOC,MAAM,IAAIR,OAAOO,OAAOE,OAAO,KAAKT,OAAOO,OAAOG,WAAW,OAE/EZ,OAAQ,CACnB,IAAIa,IAAMrC,SAASc,cAAc,SACjCuB,IAAIC,KAAO,SACXD,IAAIpB,KAAOQ,EACXY,IAAIE,MAAQf,OAAOC,GACnBN,KAAKD,YAAYmB,KAGnBlB,KAAKtB,MAAQ,eACbG,SAASC,KAAKiB,YAAYC,MAC1BA,KAAKqB,UAGHC,MAAQzC,SAASc,cAAc,OACnC2B,MAAM1B,GAAK,aAEX,IAAI2B,IAAM1C,SAASc,cAAc,QACjC4B,IAAIC,UAAY,UAChBD,IAAIE,iBAAiB,cAAa,SAAStC,IACrCmC,MAAMlC,UAAUsC,SAAS,WAC3BJ,MAAMlC,UAAUC,IAAI,UAEtBiC,MAAMlC,UAAUuC,OAAO,WAGzB,IAAIC,OAAS/C,SAASc,cAAc,UAEpCiC,OAAOJ,UAAY,iBACnBI,OAAOH,iBAAiB,QAAQ/B,UAEhCa,OAAOkB,iBAAiB,UAAYI,QAEjB,SAAdA,MAAMC,MACP5C,cAIJ,IAAI6C,MAAQlD,SAASmD,uBAAuB,aAC5C,GAAGD,MAAME,OAAS,EAChB,IAAI,IAAIC,EAAE,EAAEA,EAAEH,MAAME,OAAOC,IAEzBH,MAAMG,GAAGT,iBAAiB,SAAQ,SAAStC,IAGzC,OAFAO,SAASP,IACTA,GAAGgD,kBACI,KAKbb,MAAMvB,YAAYwB,KAClBD,MAAMvB,YAAY6B,QAElB/C,SAASC,KAAKiB,YAAYuB,OAxG5B,CAyGG",
"mappings": "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",
"file": "flag.js"
}

47
frontlog.css Normal file
View File

@@ -0,0 +1,47 @@
frontlog {
position: fixed;
min-width: 200px;
max-width: 300px;
bottom: 0;
right: 0.5em;
}
flogelem {
display:block;
border-width: 1px;
border-style: solid;
border-radius: 8px;
overflow: hidden;
max-height: 0;
margin-bottom: 0;
padding: 0;
opacity: 0;
position: relative;
bottom: 0;
-webkit-transition: max-height 3s, margin-bottom 3s, padding 3s,opacity 3s, bottom 3s;
-moz-transition: max-height 3s, margin-bottom 3s, padding 3s,opacity 3s, bottom 3s;
transition: max-height 3s, margin-bottom 3s, padding 3s,opacity 3s, bottom 3s;
}
.flshow {
max-height: 200px!important;
margin-bottom: 1em;
padding: 4px;
opacity: 1;
}
.flvanish {
position: relative;
bottom: 3em;
max-height: 0 !important;
opacity: 0 !important;
}
fltitle {
display: block;
font-size: 120%;
}
flogelem img {
float: left;
width: 25px;
}

68
frontlog.js Normal file
View File

@@ -0,0 +1,68 @@
let frontlogList = [];
let frontlogMaxEl = document.body.dataset['frontlog']||3;
let frontlog = document.createElement('frontlog');
document.body.appendChild(frontlog);
let frontlogVanish = function(elem) {
elem.classList.add('flvanish');
setTimeout(function() {
elem.remove();
let elems = document.getElementsByTagName('flogelem');
if(elems.length < frontlogMaxEl && frontlogList.length) {
let p = frontlogList.shift();
frontlogPipe(p.title,p.icon,p.msg,p.col,p.time);
}
},3100);
}
let frontlogAdd = function(title,icon,msg,col,time) {
let elems = document.getElementsByTagName('flogelem');
if(elems.length < frontlogMaxEl) {
frontlogPipe(title,icon,msg,col,time);
}else{
let pElem = {"title":title,"icon":icon,"msg":msg,"col":col,"time":time};
frontlogList.push(pElem);
}
}
let frontlogPipe = function(title,icon,msg,col, time) {
let elem = document.createElement('flogelem');
{
let elemid = 'fl_';
{
let ch = 'abcdefghijklmnopqrstuvwxyz0123456789';
let chl = ch.length;
for ( let i = 0; i < 16; i++ ) {
elemid += ch.charAt(Math.floor(Math.random() * chl));
}
}
elem.id = elemid;
let flicon = document.createElement('img');
flicon.src = icon;
elem.appendChild(flicon);
let fltitle = document.createElement('fltitle');
fltitle.innerText = title;
elem.appendChild(fltitle);
let flmsg = document.createElement('flmsg');
flmsg.innerText = msg;
elem.appendChild(flmsg);
}
elem.style = 'border-color: '+col+';';
elem.addEventListener('click',function(ev){
let tg = ev.target;
if(tg.tagName.toLowerCase() != 'flogelem') {
tg = ev.target.parentNode;
}
frontlogVanish(tg);
});
setTimeout(function(){
frontlogVanish(elem);
},time*1000)
frontlog.appendChild(elem);
setTimeout(function(){
elem.classList.add('flshow');
},10);
}

21
html2canvas.min.js vendored Normal file

File diff suppressed because one or more lines are too long

1717
html2canvas.min.js.map Normal file

File diff suppressed because one or more lines are too long

View File

@@ -1,4 +1,5 @@
window.onerror = function(message, source, lineno, colno, error) {
if(message == 'Script Error' && lineno == 0) return;
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "https://troy-grunt.de/api.php", true);
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');

View File

@@ -1,2 +1 @@
window.onerror=function(message,source,lineno,colno,error){var xmlhttp=new XMLHttpRequest;xmlhttp.open("POST","https://troy-grunt.de/api.php",!0),xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");var params=JSON.stringify({type:"error_collector",message:message,source:source,line:lineno,col:colno,err:error});xmlhttp.send(params)};
//# sourceMappingURL=js-error-logger.min.js.map
window.onerror=function(e,r,o,t,n){if("Script Error"!=e||0!=o){var p=new XMLHttpRequest;p.open("POST","https://troy-grunt.de/api.php",!0),p.setRequestHeader("Content-type","application/x-www-form-urlencoded");var i=JSON.stringify({type:"error_collector",message:e,source:r,line:o,col:t,err:n});p.send(i)}};

8
lazy-img.css Normal file
View File

@@ -0,0 +1,8 @@
img[loading='lazy'] {
opacity: 0;
transition: opacity 0.5s ease !important;
}
img.loaded {
opacity: 1;
}

14
lazy-img.js Normal file
View File

@@ -0,0 +1,14 @@
document.addEventListener("DOMContentLoaded", function() {
/*var cssLink = document.createElement("link");
cssLink.rel = "stylesheet";
cssLink.href = "/cssjs/lazy-img.css";
document.head.appendChild(cssLink);*/
var images = document.querySelectorAll('img[loading="lazy"]');
images.forEach(function(image) {
image.onload = function() {
image.classList.add('loaded');
};
});
});

1
lazy-img.min.js vendored Normal file
View File

@@ -0,0 +1 @@
document.addEventListener("DOMContentLoaded",function(){document.querySelectorAll('img[loading="lazy"]').forEach(function(n){n.onload=function(){n.classList.add("loaded")}})});

View File

@@ -12,7 +12,7 @@ input.switch[type="checkbox"] + label {
float: left;
margin-right: 5px;
transition: background-color 0.5s linear;
margin-top: 15px;
margin-bottom: 15px;
}
input.switch[type="checkbox"] + label:hover {
cursor: pointer;

2
switch.min.css vendored
View File

@@ -1 +1 @@
input.switch[type=checkbox]{display:none}input.switch[type=checkbox]+label{width:60px;height:30px;border-radius:30px;border:2px solid #ddd;background-color:#eee;display:inline-block;content:"";float:left;margin-right:5px;transition:background-color .5s linear;margin-top:15px}input.switch[type=checkbox]+label:hover{cursor:pointer}input.switch[type=checkbox]+label::before{width:30px;height:30px;border-radius:30px;background-color:#fff;display:block;content:"";float:left;margin-right:5px;transition:margin .1s linear;box-shadow:0 0 5px #aaa}input.switch[type=checkbox]:checked+label{background-color:#2b8718}input.switch[type=checkbox]:checked+label::before{margin:0 0 0 30px}
input.switch[type=checkbox]{display:none}input.switch[type=checkbox]+label{width:60px;height:30px;border-radius:30px;border:2px solid #ddd;background-color:#eee;display:inline-block;content:"";float:left;margin-right:5px;transition:background-color .5s linear;margin-bottom:15px}input.switch[type=checkbox]+label:hover{cursor:pointer}input.switch[type=checkbox]+label::before{width:30px;height:30px;border-radius:30px;background-color:#fff;display:block;content:"";float:left;margin-right:5px;transition:margin .1s linear;box-shadow:0 0 5px #aaa}input.switch[type=checkbox]:checked+label{background-color:#2b8718}input.switch[type=checkbox]:checked+label::before{margin:0 0 0 30px}

View File

@@ -3,7 +3,7 @@ function myFilter() {
input = document.getElementById("suchstr");
filter = input.value.toUpperCase();
li = jQuery("#suchlist .row");
li = document.querySelectorAll("#suchlist .row");
for (i = 0; i < li.length; i++) {
txtValue = li[i].textContent || li[i].innerText;
if (txtValue.toUpperCase().indexOf(filter) > -1) {

3
tablefilter.min.js vendored
View File

@@ -1,2 +1 @@
function myFilter(){var input,filter,ul,li,a,i,txtValue;for(filter=(input=document.getElementById("suchstr")).value.toUpperCase(),li=jQuery("#suchlist .row"),i=0;i<li.length;i++)(txtValue=li[i].textContent||li[i].innerText).toUpperCase().indexOf(filter)>-1?li[i].style.display="":li[i].style.display="none"}
//# sourceMappingURL=tablefilter.min.js.map
function myFilter(){var e,t,l,n,r;for(n=0,t=(e=document.getElementById("suchstr")).value.toUpperCase(),l=document.querySelectorAll("#suchlist .row");n<l.length;n++)(r=l[n].textContent||l[n].innerText).toUpperCase().indexOf(t)>-1?l[n].style.display="":l[n].style.display="none"}