summaryrefslogtreecommitdiff
path: root/www/js/popupdeck.js
diff options
context:
space:
mode:
authorsss <sss@dark-alexandr.net>2023-01-17 00:38:19 +0300
committersss <sss@dark-alexandr.net>2023-01-17 00:38:19 +0300
commitcc3f33db7a8d3c4ad373e646b199808e01bc5d9b (patch)
treeec09d690c7656ab5f2cc72607e05fb359c24d8b2 /www/js/popupdeck.js
added webrdp public code
Diffstat (limited to 'www/js/popupdeck.js')
-rw-r--r--www/js/popupdeck.js96
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);
+}