diff options
author | sss <sss@dark-alexandr.net> | 2023-01-17 00:38:19 +0300 |
---|---|---|
committer | sss <sss@dark-alexandr.net> | 2023-01-17 00:38:19 +0300 |
commit | cc3f33db7a8d3c4ad373e646b199808e01bc5d9b (patch) | |
tree | ec09d690c7656ab5f2cc72607e05fb359c24d8b2 /www/js/popupdeck.js |
added webrdp public code
Diffstat (limited to 'www/js/popupdeck.js')
-rw-r--r-- | www/js/popupdeck.js | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/www/js/popupdeck.js b/www/js/popupdeck.js new file mode 100644 index 0000000..70ab5c0 --- /dev/null +++ b/www/js/popupdeck.js @@ -0,0 +1,96 @@ +'use strict'; + +/** BSD-2-Clause license + * + * Copyright (c) 2018-2023 NST <www.newinfosec.ru>, sss <sss at dark-alexandr dot net>, smake <smake at ya dot ru>. + * + */ + +//pop up message procedure +var popUpDeck = null; +var popUpElements = []; +function initPopUpDeck(){ + popUpDeck = document.createElement('div'); + document.body.appendChild(popUpDeck); + + popUpDeck.set('class', 'popupwrapper'); + document.querySelector('.popupwrapper').style.display = 'none'; +} + +function cleanPopUpDeck(){ + for(var i=0; i<popUpElements.length; i++){ + popUpElements[i].removeEvents(); + popUpElements[i].destroy(); + document.querySelector('.popupwrapper').style.display = 'none'; + } +} + +function popUpMessage(type, msg, timeout, callback, center){ + var newMessage = document.createElement('div'); + popUpDeck.appendChild(newMessage); + document.querySelector('.popupwrapper').style.display = 'block'; + + newMessage.set('class', 'popupmessage'); + newMessage.set('text', msg); + popUpDeck.addEvent('mouseleave', + function(){ + if(callback) + callback(); + newMessage.destroy(); + newMessage = null; + document.querySelector('.popupwrapper').style.display = 'none'; + }); + + var color = { + r: 255, + g: 255, + b: 255 + }; + + if(type=='error'){ + color.r = 247; + color.g = 203; + color.b = 30; + }else + if(type=='message'){ + color.r = 107; + color.g = 180; + color.b = 229; + }else + if(type=='critical'){ + color.r = 255; + color.g = 0; + color.b = 0; + } + + if(center){ + newMessage.setStyle('position','absolute'); + newMessage.setStyle('top', document.body.offsetHeight/2); + newMessage.setStyle('z-index', '1235'); + } + newMessage.setStyle('background-color','rgba(' + color.r + + ',' + color.g + + ',' + color.b + + ', 0.8)' ); + + if(timeout){ + window.setTimeout( + function(){ + if(newMessage){ + if(callback) + callback(); + newMessage.destroy(); + document.querySelector('.popupwrapper').style.display = 'none'; + } + }, + timeout*5000); + } + + popUpElements.push(newMessage); + + return newMessage; +} + +function noInstancePopUp(){ + popUpMessage('critical', "This instance seems to be not working. Try to enter the console again.", 0, noInstancePopUp, true); +} |