23 Commits

Author SHA1 Message Date
troy
1f76d6a942 readme 2022-03-12 23:39:58 +01:00
troy
a7c3f4dd02 fade in out css 2022-03-12 22:48:51 +01:00
troy
768e1bb464 bosschen style 2022-03-12 13:27:08 +01:00
troy
6a7a13a09c grundfunktion tooltip 2022-03-12 13:12:47 +01:00
troy
81c619228b boah ka 2022-03-11 21:33:53 +01:00
titz lapi
d4577caff3 . 2022-03-11 18:06:45 +01:00
Sebastian Titz
b07f92f492 . 2022-03-10 14:40:09 +01:00
Sebastian Titz
e890a581a4 TODOs 2022-03-10 14:21:02 +01:00
troy
15dbeee834 auflösung in flag 2022-03-06 11:50:24 +01:00
troy
90ade370d7 user agent 2022-03-06 11:42:44 +01:00
troy
c1a64450d2 Merge branch 'master' of https://git.seemsleg.it/pub/cssjs-func-lib into master 2022-03-05 23:05:29 +01:00
troy
475c959420 unTODO 2022-03-05 23:05:27 +01:00
titz lapi
d8a9ba6619 TODOs 2022-02-28 20:03:59 +01:00
titz lapi
dbe3aee539 #29 mir fehlt noch die option zu erkennen
ob hell oder dunkel
2022-02-28 19:42:34 +01:00
troy
142ba0bd8a js error readme 2022-02-27 00:12:02 +01:00
troy
ca6fb42493 Merge branch 'feature/flag-btn' into master 2022-02-26 12:53:21 +01:00
troy
3a80f86358 loift 2022-02-26 12:50:35 +01:00
troy
6535b205a3 cloasing flag 2022-02-26 12:24:52 +01:00
troy
f6f2b7ce97 open close enxportiert var sammeln 2022-02-25 22:32:32 +01:00
troy
9c14d4d9b2 screen raus, doku 2022-02-25 18:10:28 +01:00
Sebastian Titz
527c2ab882 css und für post load 2022-02-25 13:46:08 +01:00
troy
481ac50569 WIP iframe, und form angefangen 2022-02-24 22:09:30 +01:00
troy
13b1e2926f flag 2022-02-24 20:33:46 +01:00
14 changed files with 8221 additions and 0 deletions

View File

@@ -248,3 +248,40 @@ Suche: <input type="text" onkeyup="myFilter()" id="suchstr" />
...
<script src="/cssjs/backtotop.min.js"></script>
```
## problem melden
einfach ans ende der seite, rest macht das script
```
<script src="/cssjs/flag.js"></script>
<link rel="stylesheet" href="/cssjs/flag.css">
</body>
```
## js error sammler
in den header, am besten vor allen anderen js
```
<script src="/cssjs/js-error-logger.min.js"></script>
```
## Fader
```
<link rel="stylesheet" href="/cssjs/fade.min.css" />
<div class="fadeable">...</div>
```
zum ein und ausfaden einfach die class "visible" hinzufügen oder entfernen
## Ajax ToolTip
benötigt "Fader"
```
<link rel="stylesheet" href="/cssjs/itooltip.min.css" />
...
<a href="bla" class="itooltip" data-url="tooltip-url">blub</a>
...
<script src="/cssjs/itooltip.min.js"></script>
```

10
fade.css Normal file
View File

@@ -0,0 +1,10 @@
.fadeable {
opacity: 0;
margin-top: -30px;
transition: margin-top 0.2s,opacity 0.2s;
}
.fadeable.visible {
opacity: 1;
margin-top: 0;
}

1
fade.min.css vendored Normal file
View File

@@ -0,0 +1 @@
.fadeable{opacity:0;margin-top:-30px;transition:margin-top .2s,opacity .2s}.fadeable.visible{opacity:1;margin-top:0}

57
flag.css Normal file
View File

@@ -0,0 +1,57 @@
#flag-panel {
position: fixed;
bottom: 0px;
right: 0px;
width: 150px;
border: 1px solid #fff;
border-top-left-radius: 15px;
border-bottom-left-radius: 15px;
margin-right: -130px;
}
#flag-panel.open {
margin-right: 0px !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,0.5);
}
#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 0.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;
}

99
flag.js Normal file
View File

@@ -0,0 +1,99 @@
(function(connector) {
'use strict';
var iframe;
var flag;
var col = 'light';
//TODO color css
//TODO abbrechen close anders
var closeFlag = function(ev) {
flag.classList.add('closing');
setTimeout(function() {
flag.style.opacity = 0;
setTimeout(function() {
flag.remove();
},500);
},3000);
}
var openFlag = function(ev) {
flag = document.createElement('div');
flag.id = 'flag-overlay';
iframe = document.createElement('iframe');
iframe.src= '';
iframe.name = 'flag-iframe';
flag.appendChild(iframe);
document.body.appendChild(flag);
var form = document.createElement('form');
form.action = connector+"?col="+col;
form.target = 'flag-iframe';
form.method = 'POST';
const screenshotTarget = document.body;
/*html2canvas(screenshotTarget).then((canvas) => {
const base64image = canvas.toDataURL("image/png");
window.location.href = base64image;
});*/
var fields = {};
fields['s'] = window.location.hostname;
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)';
for(var f in 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();
}
var panel = document.createElement('div');
panel.id = 'flag-panel';
var tab = document.createElement('span');
tab.innerHTML = '&#9873;';
tab.addEventListener('mouseenter',function(ev) {
if(!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) => {
//console.log(event);
if(event.data == 'close') {
closeFlag();
}
});
var links = document.getElementsByClassName('flag-link');
if(links.length > 0) {
for(var l in links) {
console.log(links);
links[l].addEventListener('click',function(ev) {
openFlag(ev);
ev.preventDefault();
return false;
});
}
}
panel.appendChild(tab);
panel.appendChild(button);
document.body.appendChild(panel);
})('https://troy-grunt.de/feedback');

1
flag.min.css vendored Normal file
View File

@@ -0,0 +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)}#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}

2
flag.min.js vendored Normal file
View File

@@ -0,0 +1,2 @@
!function(connector){"use strict";var iframe,flag,col="light",closeFlag=function(ev){flag.classList.add("closing"),setTimeout((function(){flag.style.opacity=0,setTimeout((function(){flag.remove()}),500)}),3e3)},openFlag=function(ev){(flag=document.createElement("div")).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+"?col="+col,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 in links)console.log(links),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");
//# sourceMappingURL=flag.min.js.map

68
flag.min.js.map Normal file
View File

@@ -0,0 +1,68 @@
{
"version": 3,
"sources": [
"flag.js"
],
"names": [
"connector",
"iframe",
"flag",
"col",
"closeFlag",
"ev",
"classList",
"add",
"setTimeout",
"style",
"opacity",
"remove",
"openFlag",
"document",
"createElement",
"id",
"src",
"name",
"appendChild",
"body",
"form",
"action",
"target",
"method",
"screenshotTarget",
"fields",
"f",
"window",
"location",
"hostname",
"referrer",
"href",
"navigator",
"userAgent",
"screen",
"width",
"height",
"colorDepth",
"inp",
"type",
"value",
"submit",
"panel",
"tab",
"innerHTML",
"addEventListener",
"contains",
"toggle",
"button",
"event",
"data",
"links",
"getElementsByClassName",
"length",
"l",
"console",
"log",
"preventDefault"
],
"mappings": "CAAA,SAAUA,WACR,aAEA,IAAIC,OACAC,KACAC,IAAM,QAINC,UAAY,SAASC,IACvBH,KAAKI,UAAUC,IAAI,WACnBC,YAAW,WACTN,KAAKO,MAAMC,QAAU,EACrBF,YAAW,WACTN,KAAKS,WACL,OACF,MAGAC,SAAW,SAASP,KACtBH,KAAOW,SAASC,cAAc,QACzBC,GAAK,gBACVd,OAASY,SAASC,cAAc,WACzBE,IAAK,GACZf,OAAOgB,KAAO,cACdf,KAAKgB,YAAYjB,QACjBY,SAASM,KAAKD,YAAYhB,MAE1B,IAAIkB,KAAOP,SAASC,cAAc,QAClCM,KAAKC,OAASrB,UAAU,QAAQG,IAChCiB,KAAKE,OAAS,cACdF,KAAKG,OAAS,OACd,MAAMC,iBAAmBX,SAASM,KAMlC,IAAIM,OAAS,GAOb,IAAI,IAAIC,KANRD,OAAU,EAAIE,OAAOC,SAASC,SAC3BhB,SAASiB,WAAWL,OAAU,EAAIZ,SAASiB,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,IAAMzB,SAASC,cAAc,SACjCwB,IAAIC,KAAO,SACXD,IAAIrB,KAAOS,EACXY,IAAIE,MAAQf,OAAOC,GACnBN,KAAKF,YAAYoB,KAGnBlB,KAAKX,MAAQ,eACbI,SAASM,KAAKD,YAAYE,MAC1BA,KAAKqB,UAGHC,MAAQ7B,SAASC,cAAc,OACnC4B,MAAM3B,GAAK,aAEX,IAAI4B,IAAM9B,SAASC,cAAc,QACjC6B,IAAIC,UAAY,UAChBD,IAAIE,iBAAiB,cAAa,SAASxC,IACrCqC,MAAMpC,UAAUwC,SAAS,WAC3BJ,MAAMpC,UAAUC,IAAI,UAEtBmC,MAAMpC,UAAUyC,OAAO,WAGzB,IAAIC,OAASnC,SAASC,cAAc,UAEpCkC,OAAOJ,UAAY,iBACnBI,OAAOH,iBAAiB,QAAQjC,UAEhCe,OAAOkB,iBAAiB,UAAYI,QAEjB,SAAdA,MAAMC,MACP9C,cAIJ,IAAI+C,MAAQtC,SAASuC,uBAAuB,aAC5C,GAAGD,MAAME,OAAS,EAChB,IAAI,IAAIC,KAAKH,MACXI,QAAQC,IAAIL,OACZA,MAAMG,GAAGT,iBAAiB,SAAQ,SAASxC,IAGzC,OAFAO,SAASP,IACTA,GAAGoD,kBACI,KAKbf,MAAMxB,YAAYyB,KAClBD,MAAMxB,YAAY8B,QAElBnC,SAASM,KAAKD,YAAYwB,OAjG5B,CAkGG",
"file": "flag.js"
}

7830
html2canvas.js Normal file

File diff suppressed because one or more lines are too long

15
itooltip.css Normal file
View File

@@ -0,0 +1,15 @@
tooltip {
display:block;
width: 300px;
background-color: rgba(0,0,0,0.8);
color: #fff;
border: 3px solid #fff;
border-radius: 0.5em;
padding: 0.5em;
}
tooltip h3 {
margin: 0;
color: #fff;
}

52
itooltip.js Normal file
View File

@@ -0,0 +1,52 @@
( function() {
'use strict';
var loadToolTip = function(ev) {
//destroyToolTip(ev);
if(!ev.target.dataset.url) return;
var tt = document.createElement('tooltip');
tt.classList.add('fadeable');
tt.style.cssText= "position:absolute; top: "+(ev.pageY+10)+"px; left: "+ (ev.pageX+10) +"px;";
document.body.appendChild(tt);
var url = ev.target.dataset.url;
//console.log('URL:',url);
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4) {
if(this.status == 200) {
tt.innerHTML = this.responseText;
tt.classList.add('visible');
}
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
}
var destroyToolTip = function(ev) {
var tts = document.getElementsByTagName('tooltip');
if(tts[0]) {
tts[0].classList.remove('visible');
setTimeout(function() {
if(tts[0]) tts[0].remove();
},500);
}
}
//class itooltip
var elems = document.getElementsByClassName('itooltip');
for (var i =0;i<elems.length;i++) {
elems[i].addEventListener('mouseenter',function(ev){
loadToolTip(ev);
});
elems[i].addEventListener('mouseleave',function(ev){
destroyToolTip(ev);
});
}
})();
//TODO lade daten von url in data-url
//TODO in der obenhälfte tooltip down untehälte up
//TODO linke hälte tooltip richts sondt links

1
itooltip.min.css vendored Normal file
View File

@@ -0,0 +1 @@
tooltip{display:block;width:300px;background-color:rgba(0,0,0,.8);color:#fff;border:3px solid #fff;border-radius:.5em;padding:.5em}tooltip h3{margin:0}

2
itooltip.min.js vendored Normal file
View File

@@ -0,0 +1,2 @@
!function(){"use strict";for(var loadToolTip=function(ev){if(ev.target.dataset.url){var tt=document.createElement("tooltip");tt.classList.add("fadeable"),tt.style.cssText="position:absolute; top: "+(ev.pageY+10)+"px; left: "+(ev.pageX+10)+"px;",document.body.appendChild(tt);var url=ev.target.dataset.url,xmlhttp=new XMLHttpRequest;xmlhttp.onreadystatechange=function(){4==this.readyState&&200==this.status&&(tt.innerHTML=this.responseText,tt.classList.add("visible"))},xmlhttp.open("GET",url,!0),xmlhttp.send()}},destroyToolTip=function(ev){var tts=document.getElementsByTagName("tooltip");tts[0]&&(tts[0].classList.remove("visible"),setTimeout((function(){tts[0]&&tts[0].remove()}),500))},elems=document.getElementsByClassName("itooltip"),i=0;i<elems.length;i++)elems[i].addEventListener("mouseenter",(function(ev){loadToolTip(ev)})),elems[i].addEventListener("mouseleave",(function(ev){destroyToolTip(ev)}))}();
//# sourceMappingURL=itooltip.min.js.map

46
itooltip.min.js.map Normal file
View File

@@ -0,0 +1,46 @@
{
"version": 3,
"sources": [
"itooltip.js"
],
"names": [
"loadToolTip",
"ev",
"target",
"dataset",
"url",
"tt",
"document",
"createElement",
"classList",
"add",
"style",
"cssText",
"pageY",
"pageX",
"body",
"appendChild",
"xmlhttp",
"XMLHttpRequest",
"onreadystatechange",
"this",
"readyState",
"status",
"innerHTML",
"responseText",
"open",
"send",
"destroyToolTip",
"tts",
"getElementsByTagName",
"remove",
"setTimeout",
"elems",
"getElementsByClassName",
"i",
"length",
"addEventListener"
],
"mappings": "CAAA,WACE,aAsCA,IApCA,IAAIA,YAAc,SAASC,IAEzB,GAAIA,GAAGC,OAAOC,QAAQC,IAAtB,CAEA,IAAIC,GAAKC,SAASC,cAAc,WAChCF,GAAGG,UAAUC,IAAI,YACjBJ,GAAGK,MAAMC,QAAS,4BAA4BV,GAAGW,MAAM,IAAI,cAAeX,GAAGY,MAAM,IAAK,MACxFP,SAASQ,KAAKC,YAAYV,IAE1B,IAAID,IAAMH,GAAGC,OAAOC,QAAQC,IAExBY,QAAU,IAAIC,eAClBD,QAAQE,mBAAqB,WACJ,GAAnBC,KAAKC,YACW,KAAfD,KAAKE,SACNhB,GAAGiB,UAAYH,KAAKI,aACpBlB,GAAGG,UAAUC,IAAI,aAIvBO,QAAQQ,KAAK,MAAOpB,KAAK,GACzBY,QAAQS,SAGNC,eAAiB,SAASzB,IAC5B,IAAI0B,IAAMrB,SAASsB,qBAAqB,WACrCD,IAAI,KACLA,IAAI,GAAGnB,UAAUqB,OAAO,WACxBC,YAAW,WACNH,IAAI,IAAIA,IAAI,GAAGE,WAClB,OAKFE,MAAQzB,SAAS0B,uBAAuB,YACnCC,EAAG,EAAEA,EAAEF,MAAMG,OAAOD,IAC3BF,MAAME,GAAGE,iBAAiB,cAAa,SAASlC,IAC9CD,YAAYC,OAEd8B,MAAME,GAAGE,iBAAiB,cAAa,SAASlC,IAC9CyB,eAAezB,OA5CrB",
"file": "itooltip.js"
}