From 67e4e01708096f8116dcc9c04488257963908efa Mon Sep 17 00:00:00 2001 From: troy Date: Fri, 4 Nov 2022 21:55:15 +0100 Subject: [PATCH] =?UTF-8?q?frontlog,=20m=C3=BCsste=20so=20klappen,=20mit?= =?UTF-8?q?=20pipe=20usw?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontlog.js | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/frontlog.js b/frontlog.js index 9c9eef2..475907f 100644 --- a/frontlog.js +++ b/frontlog.js @@ -1,9 +1,29 @@ let frontlogList = {}; -let frontlog_mxel = document.body.dataset['frontlog']??3; +let frontlogMaxEl = document.body.dataset['frontlog']||3; let frontlog = document.createElement('frontlog'); document.body.appendChild(frontlog); -let frontlogAdd = function(title,icon,msg,col, time) { +let frontlogVanish = function(elem) { + elem.remove(); + //TODO irgendwann hübscher machen + 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); + } +} + +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.appendChild(pElem); + } +} + +let frontlogPipe = function(title,icon,msg,col, time) { let elem = document.createElement('flogelem'); { let elemid = 'fl_'; @@ -15,6 +35,25 @@ let frontlogAdd = function(title,icon,msg,col, time) { } } 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.appendChild + + elem.style = 'border-color: '+col+';'; + elem.addEventListener('click',function(ev){ + frontlogVanish(ev.target); + }); + setTimeout(function(){ + frontlogVanish(elem); + },time*1000) + frontlog.appendChild(elem); }