mirror of
https://github.com/cryptosharks131/lndg.git
synced 2026-08-13 12:33:04 +02:00
185 lines
No EOL
6.4 KiB
JavaScript
185 lines
No EOL
6.4 KiB
JavaScript
//HELPER FUNCTIONS
|
|
function byId(id){ return document.getElementById(id) }
|
|
String.prototype.toInt = function(){ return parseInt(this.replace(/[^\d-]/g,''))}
|
|
String.prototype.toBool = function(if_false = 0){ return this && /^true$/i.test(this) ? 1 : if_false}
|
|
Number.prototype.intcomma = function(){ return parseInt(this).toLocaleString() }
|
|
HTMLElement.prototype.defaultCloneNode = HTMLElement.prototype.cloneNode
|
|
HTMLElement.prototype.cloneNode = function(attrs){
|
|
const el = this.defaultCloneNode(this)
|
|
Object.keys(attrs).forEach(k => el[k] = attrs[k])
|
|
return el
|
|
}
|
|
HTMLElement.prototype.render = function(transforms){
|
|
for(key in transforms){
|
|
const value = transforms[key]
|
|
if(value instanceof HTMLElement) this.append(value)
|
|
else if (key === 'style') for(prop of Object.keys(value)){ this[key][prop] = value[prop] }
|
|
else this[key] = value
|
|
}
|
|
}
|
|
//END: HELPER FUNCTIONS
|
|
//-------------------------------------------------------------------------------------------------------------------------
|
|
//COMMON FUNCTIONS & VARIABLES
|
|
const red = 'rgba(248,81,73,0.15)'
|
|
const green = 'rgba(46,160,67,0.15)'
|
|
function sleep(ms){
|
|
return new Promise(res => setTimeout(res, ms));
|
|
}
|
|
function adjustTZ(datetime){
|
|
datetime = new Date(datetime).getTime() - new Date(datetime).getTimezoneOffset()*60000
|
|
return new Date(datetime)
|
|
}
|
|
async function toggle(button){
|
|
try{
|
|
button.children[0].style.visibility = 'hidden';
|
|
button.children[1].style.visibility = 'visible';
|
|
navigator.clipboard.writeText(button.getAttribute('data-value'))
|
|
await sleep(1000)
|
|
}
|
|
catch(e){
|
|
alert(button.getAttribute('data-value'))
|
|
}
|
|
finally{
|
|
button.children[0].style.visibility = 'visible';
|
|
button.children[1].style.visibility = 'hidden'
|
|
}
|
|
}
|
|
function use(template){
|
|
return {
|
|
render: function(object, id='id', row = null){
|
|
const tr = row ?? document.createElement("tr")
|
|
tr.objId = object[id]
|
|
for (key in template){
|
|
const transforms = template[key](object)
|
|
const td = document.createElement("td")
|
|
td.setAttribute('name', key)
|
|
td.render(transforms)
|
|
tr.append(td)
|
|
}
|
|
return tr
|
|
}
|
|
}
|
|
}
|
|
function showBannerMsg(h1Msg, result, generic=false, id="bannerMsg"){
|
|
if(!generic) h1Msg = `${h1Msg} updated to:`
|
|
document.getElementById('content').insertAdjacentHTML("beforebegin", `<div style="top:5px;padding:10px;" id="${id}" class="message w3-panel w3-orange w3-display-container"><span onclick="this.parentElement.style.display='none'" class="w3-button w3-hover-red w3-display-topright">X</span><h1 style="word-wrap: break-word">${h1Msg} ${result}</h1></div>`);
|
|
window.scrollTo(0, 0);
|
|
}
|
|
function flash(element, response){
|
|
if (response != element.value) {
|
|
element.value = response
|
|
return
|
|
}
|
|
var rgb = window.getComputedStyle(element).backgroundColor;
|
|
rgb = rgb.substring(4, rgb.length-1).replace(/ /g, '').split(',');
|
|
var r = rgb[0], g = rgb[1], bOrigin = rgb[2], b = bOrigin;
|
|
var add = false;
|
|
var complete = false;
|
|
const increment = 15;
|
|
var flashOn = setInterval(() => {
|
|
if(add){
|
|
if(b < 255 && (b+increment) <= 255){
|
|
b += increment;
|
|
}else{
|
|
add = false;
|
|
complete = true;
|
|
}
|
|
}else{
|
|
if(complete == true && b < bOrigin){
|
|
b = bOrigin;
|
|
clearInterval(flashOn);
|
|
}
|
|
else if(b > 0 && (b-increment) >= 0){
|
|
b -= increment;
|
|
}else{
|
|
add = true;
|
|
}
|
|
}
|
|
element.style.backgroundColor = 'RGB('+r+','+g+','+b+')';
|
|
if(b == bOrigin) element.style.removeProperty("background-color");
|
|
}, 50);
|
|
}
|
|
function formatDate(start, end = new Date().getTime() + new Date().getTimezoneOffset()*60000){
|
|
if (end == null) return '---'
|
|
end = new Date(end)
|
|
if (start == null) return '---'
|
|
difference = (end - new Date(start))/1000
|
|
if (difference > 0) {
|
|
if (difference < 60) {
|
|
if (Math.floor(difference) == 1){
|
|
return `a second ago`;
|
|
}else{
|
|
return `${Math.floor(difference)} seconds ago`;
|
|
}
|
|
} else if (difference < 3600) {
|
|
if (Math.floor(difference / 60) == 1){
|
|
return `a minute ago`;
|
|
}else{
|
|
return `${Math.floor(difference / 60)} minutes ago`;
|
|
}
|
|
} else if (difference < 86400) {
|
|
if (Math.floor(difference / 3600) == 1){
|
|
return `an hour ago`;
|
|
}else{
|
|
return `${Math.floor(difference / 3600)} hours ago`;
|
|
}
|
|
} else if (difference < 2620800) {
|
|
if (Math.floor(difference / 86400) == 1){
|
|
return `a day ago`;
|
|
}else{
|
|
return `${Math.floor(difference / 86400)} days ago`;
|
|
}
|
|
} else if (difference < 31449600) {
|
|
if (Math.floor(difference / 2620800) == 1){
|
|
return `a month ago`;
|
|
}else{
|
|
return `${Math.floor(difference / 2620800)} months ago`;
|
|
}
|
|
} else {
|
|
if (Math.floor(difference / 31449600) == 1){
|
|
return `a year ago`;
|
|
}else{
|
|
return `${Math.floor(difference / 31449600)} years ago`;
|
|
}
|
|
}
|
|
} else if (difference < 0) {
|
|
if (-difference < 60) {
|
|
if (Math.floor(-difference) == 1){
|
|
return `in a second`;
|
|
}else{
|
|
return `in ${Math.floor(-difference)} seconds`;
|
|
}
|
|
} else if (-difference < 3600) {
|
|
if (Math.floor(-difference / 60) == 1){
|
|
return `in a minute`;
|
|
}else{
|
|
return `in ${Math.floor(-difference / 60)} minutes`;
|
|
}
|
|
} else if (-difference < 86400) {
|
|
if (Math.floor(-difference / 3600) == 1){
|
|
return `in an hour`;
|
|
}else{
|
|
return `in ${Math.floor(-difference / 3600)} hours`;
|
|
}
|
|
} else if (-difference < 2620800) {
|
|
if (Math.floor(-difference / 86400) == 1){
|
|
return `in a day`;
|
|
}else{
|
|
return `in ${Math.floor(-difference / 86400)} days`;
|
|
}
|
|
} else if (-difference < 31449600) {
|
|
if (Math.floor(-difference / 2620800) == 1){
|
|
return `in a month`;
|
|
}else{
|
|
return `in ${Math.floor(-difference / 2620800)} months`;
|
|
}
|
|
} else {
|
|
if (Math.floor(-difference / 31449600) == 1){
|
|
return `in a year`;
|
|
}else{
|
|
return `in ${Math.floor(-difference / 31449600)} years`;
|
|
}
|
|
}
|
|
} else { return 'Just now' }
|
|
}
|
|
//END: COMMON FUNCTIONS & VARIABLES
|