MastodonStartpage/web/mustard/js/notifs.js.php
pezcurrel 85876775c4 ...
2020-05-07 07:24:56 +02:00

92 řádky
2,4 KiB
PHP

notifimgon='<?php echo($notifs["imgon"]); ?>';
notifimgoff='<?php echo($notifs["imgoff"]); ?>';
function shidenotifs() {
var notifc=document.getElementById('notifc');
var ctrli=document.getElementById('bell');
if (notifc.style.display=='block') {
notifc.style.display='none';
ctrli.src=notifimgoff;
ctrli.title='Mostra le notifiche';
} else {
notifc.style.display='block';
ctrli.src=notifimgon;
ctrli.title='Nascondi le notifiche';
}
}
function markread(notif) {
let xhr=new XMLHttpRequest();
xhr.open('GET','notifsh.php?act=markread&id='+notif.id.replace(/^notif-([0-9]+)$/,'$1'));
xhr.responseType='json';
xhr.send();
xhr.onload=function() {
notif.className='notifseen';
let jarr=xhr.response;
if (jarr['hmunseen']==0) {
notifimgon='imgs/bell_on.svg';
notifimgoff='imgs/bell_off.svg';
bell.src=notifimgon;
}
};
xhr.onerror=function() {
alert('La richiesta è fallita.');
};
}
lmt=<?php echo($notifs['lastmicrotime']); ?>;
chunk=0;
end=false;
loading=false;
function morenotifs() {
if (!loading && !end && notifs.scrollHeight-notifs.clientHeight-notifs.scrollTop<20) {
loading=true;
chunk++;
let xhr=new XMLHttpRequest();
xhr.open('GET','notifsh.php?act=loadchunk&chunk='+chunk);
xhr.responseType='json';
xhr.send();
xhr.onload=function() {
let jarr=xhr.response;
//console.log(jarr);
let i=0, html='';
for (i=0; i<jarr.length; i++)
html+=jarr[i];
notifs.innerHTML+=html;
if (jarr.length<<?php echo($notifs['chunksize']); ?>)
end=true;
loading=false;
};
xhr.onerror=function() {
alert('La richiesta è fallita.');
};
}
}
loadingupd=false;
function updnotifs() {
if (!loadingupd) {
loadingupd=true;
let xhr=new XMLHttpRequest();
xhr.open('GET','notifsh.php?act=loadnew&lmt='+lmt);
xhr.responseType='json';
xhr.send();
xhr.onload=function() {
let jarr=xhr.response;
//console.log(jarr);
let i=0, html='';
for (i=0; i<jarr['buf'].length; i++)
html+=jarr['buf'][i];
notifs.innerHTML=html+notifs.innerHTML;
lmt=jarr['newlmt'];
if (jarr['newunread']) {
notifimgoff='imgs/bell_act_on.svg';
notifimgon='imgs/bell_act_off.svg';
(notifc.style.display=='block') ? bell.src=notifimgoff : bell.src=notifimgon;
}
loadingupd=false;
};
xhr.onerror=function() {
alert('La richiesta è fallita.');
};
} else {
console.log('Già sto caricando...');
}
}
updint=setInterval(updnotifs,3000);