This commit is contained in:
pezcurrel 2020-04-17 23:57:02 +02:00
parent 352466bba8
commit be6bccbca7
8 changed files with 167 additions and 203 deletions

View file

@ -4,15 +4,19 @@
# in corso
* edinsth.php: su edit e add, nel js, selezionare solo il valore editato/aggiunto, perché nella finestrella elenco valori mostra il primo selezionato
* edinstres.php deve mostrare scheda istanza completa
* guestinsts.php, edinst.php e edinstres.php devono avere menu particolare per "guest" con la possibilità di andare alla vista delle istanze
- nei vari helper, sarebbe meglio morisse in json, alla bisogna
- sanificazione input: edinsth.php: su edit e add controllare sempre che il valore "nuovo" non ci sia già
- aggiungere colonna NameCA a Languages e Localities, e relativi pimpumpam nel codice
- troncare tabella languages e far rigirare tools/popudb.php per ricrearla: my_ucfirst metteva in minuscolo tutta la stringa, a parte il primo carattere maiuscolo
# edinst.php: su languages se account "Level" è "guest", "lock this list" dev'essere checkato per default *se "guest" non ha ancora mai modificato i dati dell'istanza*
- index.php: lunghezza automatica di username
# tutto: notifiche; fatto, completo, in instances.php; da riportare anche in edinst.php, e poi in qualsiasi altra pagina; serve un "notifs.php" per la gestione accurata delle notifiche (possibilità di marcarle tutte o "precedenti a" come lette, possibilità di cancellarle tutte o "precedenti a")
* tutto: visualizzazione notifiche (campanellina e div a s/comparsa)
- serve un "notifs.php" (è già linkato dalla lista notifiche accessibile dalla campanella) per la gestione accurata delle notifiche (possibilità di marcarle tutte o "precedenti a" come lette, possibilità di cancellarle tutte o "precedenti a")
- rinominare tutto da "Mastodon Startpage Admin" a "MastoStartAdm"
- crawler.php: ricorsivizzarlo?
- crawler.php: deve controllare se nella tabella Instances OurAdmID è definito; se è definito deve aggiornare l'account "guest" corrispettivo in Admins con la mail e il nome utente attuali
- crawler.php: deve controllare se nella tabella Instances OurAdmID è definito; se è definito e la mail del corrispettivo account "guest" è cambiata, deve aggiornare l'account "guest" corrispettivo in Admins con la mail e il nome utente attuali e creare nuova password; se i dati dell'istanza sono già stati editati, mandare mail di "aggiornamento"; se non lo sono, mandare invito
- instances.php: tradurre tutto in inglese
- tutto: possibilità di *scegliere* la lingua da usare tra quelle supportate
- edinsth.php: finire Localities

View file

@ -5,17 +5,9 @@ require('include/muoribene.php');
require('include/sessionstart.php');
require('include/myconn.php');
require('include/getadmacc.php');
if ($account['Level']!='guest') {
require('include/menu.php');
$menu['istanze']['href']=null;
$menu['istanze']['selected']=true;
$menu['istanze']['submenu']['modifica']['href']=null;
$menu['istanze']['submenu']['modifica']['selected']=true;
buildmenu($menu);
} else {
$menuout='';
}
require('include/menu.php');
$menu['menu']['selected']=true;
buildmenu($menu);
$dbg='';
@ -50,6 +42,11 @@ function check($row,$col) {
return('');
}
if ($account['Level']!='guest') {
require('include/notifs.php');
$notifs=notifs($link);
}
?>
<!DOCTYPE HTML>
<html lang="en">
@ -68,6 +65,7 @@ function check($row,$col) {
<link rel="stylesheet" type="text/css" href="theme.css?v=<?php echo($cjrand); ?>">
<script language="JavaScript">
<!--
<?php if ($account['Level']!='guest') require('js/notifs.js.php'); ?>
function getselarr(selid) {
var sel=document.getElementById(selid), selc=sel.length, i, arr=[];
for (i=0; i<selc; i++)
@ -281,11 +279,14 @@ function ckf() {
</ul>
<div class="mtit">Editing «<?php echo($inst['URI']); ?>»</div>
<div id="rightdiv">
<?php if ($account['Level']!='guest') echo('<img src="'.$notifs['imgoff'].'" id="bell" class="rlinks" title="Show notifications" onclick="shidenotifs();">'.N); ?>
<a href="logout.php" class="rlinks"><img src="imgs/esci.svg" title="Sign out"></a>
</div>
</div>
</nav>
<?php if ($account['Level']!='guest') echo($notifs['div']); ?>
<div id="popup">
<div id="inpopup">
<div id="popupcont">

View file

@ -3,15 +3,11 @@
require('include/glob.php');
require('include/muoribene.php');
require('include/sessionstart.php');
require('include/menu.php');
$menu['istanze']['href']=null;
$menu['istanze']['selected']=true;
$menu['istanze']['submenu']['modifica']['href']=null;
$menu['istanze']['submenu']['modifica']['selected']=true;
buildmenu($menu);
require('include/myconn.php');
require('include/getadmacc.php');
require('include/menu.php');
$menu['menu']['selected']=true;
buildmenu($menu);
$dbg='';
@ -25,7 +21,7 @@ $dbg.='<pre>'.print_r($_POST,1).'</pre>';
if (array_key_exists('id',$_POST) && preg_match('/^[0-9]+$/',$_POST['id'])===1) {
$instid=$_POST['id']+0;
$res=mysqli_query($link,'SELECT * FROM Instances WHERE ID='.$instid)
$res=mysqli_query($link,'SELECT *, ID AS IID FROM Instances WHERE ID='.$instid)
or muoribene(__LINE__.': '.mysqli_error($link),true);
if (mysqli_num_rows($res)!=1)
muoribene(__LINE__.': There is no instance with ID='.$instid.'.');
@ -99,6 +95,10 @@ multi($link,$instid,$dbg,'ChosenFinModes','InstFinancing','FinID',__LINE__);
multi($link,$instid,$dbg,'ChosenPolicies','InstPolicies','PolID',__LINE__);
multi($link,$instid,$dbg,'ChosenTags','InstTags','TagID',__LINE__);
require('include/columns.php');
require('include/dispinst.php');
$out=dispinst($inst,$cols,$link,$dlang,false,0,0);
mysqli_close($link);
?>
@ -129,6 +129,7 @@ mysqli_close($link);
<ul>
<?php echo($menuout); ?>
</ul>
<div class="mtit">Editing results for «<?php echo($inst['URI']); ?>»</div>
<div id="rightdiv">
<a href="logout.php" class="rlinks"><img src="imgs/esci.svg" title="Sign out"></a>
</div>
@ -148,7 +149,7 @@ mysqli_close($link);
<div id="fullscreen">
<div id="middlerow">
...
<?php echo($out); ?>
</div>
</div>

View file

@ -5,6 +5,11 @@ require('include/muoribene.php');
require('include/sessionstart.php');
require('include/myconn.php');
require('include/getadmacc.php');
require('include/menu.php');
$menu['menu']['selected']=true;
$menu['menu']['submenu']['instances']['href']=null;
$menu['menu']['submenu']['instances']['selected']=true;
buildmenu($menu);
$dbg='';
@ -28,6 +33,7 @@ function hspech($str) {
<link rel="icon" type="image/png" href="imgs/icona-512.png" sizes="512x512">
<link rel="apple-touch-icon-precomposed" href="imgs/icona-180.png">
<link rel="stylesheet" type="text/css" href="theme.css?v=<?php echo($cjrand); ?>">
<script language="JavaScript" src="js/menu.js?v=<?php echo($cjrand); ?>"></script>
<script language="JavaScript">
<!--
//-->
@ -37,6 +43,9 @@ function hspech($str) {
<nav>
<div id="hmenu">
<ul>
<?php echo($menuout); ?>
</ul>
<div class="mtit">Your instances</div>
<div id="rightdiv">
<a href="logout.php" class="rlinks"><img src="imgs/esci.svg" title="Sign out"></a>

View file

@ -1,33 +1,97 @@
<?php
$menu=array(
'istanze'=>array('liadd'=>null, 'href'=>null, 'title'=>'Istanze', 'selected'=>false, 'submenu'=>
array(
'elenco'=>array('liadd'=>null, 'href'=>'instances.php', 'title'=>'Elenco', 'selected'=>false, 'submenu'=>null),
'modifica'=>array('liadd'=>null, 'href'=>null, 'title'=>'Modifica', 'selected'=>false, 'submenu'=>null)
if ($account['Level']!='guest') {
// questo qua sotto è per fare le prove
/*$menu=array(
'menu'=>array('liadd'=>null, 'href'=>null, 'title'=>'Menu', 'selected'=>false, 'submenu'=>
array(
'instances'=>array('liadd'=>null, 'href'=>'instances.php', 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
'blacklist'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Blacklist', 'selected'=>false, 'submenu'=>null),
'accounts'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Accounts', 'selected'=>false, 'submenu'=>null),
'notifs'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Notifications', 'selected'=>false, 'submenu'=>null),
'logout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Log out', 'selected'=>false, 'submenu'=>null)
)
),
),
/* 'blacklist'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Blacklist', 'selected'=>false, 'submenu'=>null),
'accounts'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Accounts', 'selected'=>false, 'submenu'=>null),
'forse'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Forse', 'selected'=>false, 'submenu'=>null)*/
);
/*
<li><a href=".">Guide</a></li>
<li><a href="instances">Instances</a></li>
<li><a href="about">About us</a></li>
<li onmouseover="chulsh(this,true)" onmouseout="chulsh(this,false)">Language
<ul class="ula" onmouseover="ulsh(this,true)" onmouseout="ulsh(this,false)">
<li><a href="#">English</a></li>
<li><a href="#">Italiano</a></li>
</ul>
</li>
*/
'blacklist'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Blacklist', 'selected'=>false, 'submenu'=>null),
'certo'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Certo', 'selected'=>false, 'submenu'=>
array(
'instances'=>array('liadd'=>null, 'href'=>'instances.php', 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
'blacklist'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Blacklist', 'selected'=>false, 'submenu'=>null),
'accounts'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Accounts', 'selected'=>false, 'submenu'=>null),
'notifs'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Notifications', 'selected'=>false, 'submenu'=>
array(
'instances'=>array('liadd'=>null, 'href'=>'instances.php', 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
'blacklist'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Blacklist', 'selected'=>false, 'submenu'=>null),
'accounts'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Accounts', 'selected'=>false, 'submenu'=>null),
'notifs'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Notifications', 'selected'=>false, 'submenu'=>
array(
'instances'=>array('liadd'=>null, 'href'=>'instances.php', 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
'blacklist'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Blacklist', 'selected'=>false, 'submenu'=>null),
'accounts'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Accounts', 'selected'=>false, 'submenu'=>null),
'notifs'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Notifications', 'selected'=>false, 'submenu'=>null),
'logout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Log out', 'selected'=>false, 'submenu'=>null)
)
),
'logout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Log out', 'selected'=>false, 'submenu'=>null)
),
),
'logout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Log out', 'selected'=>false, 'submenu'=>null)
)
),
'accounts'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Accounts', 'selected'=>false, 'submenu'=>null),
'forse'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Forse', 'selected'=>false, 'submenu'=>
array(
'instances'=>array('liadd'=>null, 'href'=>'instances.php', 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
'blacklist'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Blacklist', 'selected'=>false, 'submenu'=>null),
'accounts'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Accounts', 'selected'=>false, 'submenu'=>null),
'notifs'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Notifications', 'selected'=>false, 'submenu'=>
array(
'instances'=>array('liadd'=>null, 'href'=>'instances.php', 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
'blacklist'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Blacklist', 'selected'=>false, 'submenu'=>null),
'accounts'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Accounts', 'selected'=>false, 'submenu'=>null),
'notifs'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Notifications', 'selected'=>false, 'submenu'=>
array(
'instances'=>array('liadd'=>null, 'href'=>'instances.php', 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
'blacklist'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Blacklist', 'selected'=>false, 'submenu'=>null),
'accounts'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Accounts', 'selected'=>false, 'submenu'=>null),
'notifs'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Notifications', 'selected'=>false, 'submenu'=>null),
'logout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Log out', 'selected'=>false, 'submenu'=>null)
)
),
'logout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Log out', 'selected'=>false, 'submenu'=>null)
),
),
'logout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Log out', 'selected'=>false, 'submenu'=>null)
)
)
);*/
$menu=array(
'menu'=>array('liadd'=>null, 'href'=>null, 'title'=>'Menu', 'selected'=>false, 'submenu'=>
array(
'instances'=>array('liadd'=>null, 'href'=>'instances.php', 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
'blacklist'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Blacklist', 'selected'=>false, 'submenu'=>null),
'accounts'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Accounts', 'selected'=>false, 'submenu'=>null),
'notifs'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Notifications', 'selected'=>false, 'submenu'=>null),
'signout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Sign out', 'selected'=>false, 'submenu'=>null)
)
)
);
} else {
$menu=array(
'menu'=>array('liadd'=>null, 'href'=>null, 'title'=>'Menu', 'selected'=>false, 'submenu'=>
array(
'instances'=>array('liadd'=>null, 'href'=>'guestinsts.php', 'title'=>'Instances', 'selected'=>false, 'submenu'=>null),
'account'=>array('liadd'=>null, 'href'=>'#', 'title'=>'Account', 'selected'=>false, 'submenu'=>null),
'signout'=>array('liadd'=>null, 'href'=>'logout.php', 'title'=>'Sign out', 'selected'=>false, 'submenu'=>null),
)
)
);
}
// $menuout va sempre wrappato in <ul></ul> che abbia una classe css come quella che si vede in theme.css (#hmenu ul ecc.)
$menuout='';
function buildmenu($menu) {
function buildmenu($menu,$submenu=false) {
global $menuout;
foreach ($menu as $key=>$arr) {
$menuout.='<li';
@ -40,9 +104,9 @@ function buildmenu($menu) {
else
$menuout.=$arr['title'];
if (!is_null($arr['submenu'])) {
// qui bisognerebbe aggiungere che a seconda del "livello" imposta class giusta: ula, oppure ulb per livello > 1
$menuout.=N.'<ul class="ula" onmouseover="ulsh(this,true)" onmouseout="ulsh(this,false)">'.N;
buildmenu($arr['submenu']);
($submenu) ? $class='ulb' : $class='ula';
$menuout.=N.'<ul class="'.$class.'" onmouseover="ulsh(this,true)" onmouseout="ulsh(this,false)">'.N;
buildmenu($arr['submenu'],true);
$menuout.='</ul>'.N;
}
$menuout.='</li>'.N;

View file

@ -8,10 +8,9 @@ require('include/getadmacc.php');
if ($account['Level']=='guest')
muoribene('Sorry, you are not authorized.',true);
require('include/menu.php');
$menu['istanze']['href']=null;
$menu['istanze']['selected']=true;
$menu['istanze']['submenu']['elenco']['href']=null;
$menu['istanze']['submenu']['elenco']['selected']=true;
$menu['menu']['selected']=true;
$menu['menu']['submenu']['instances']['href']=null;
$menu['menu']['submenu']['instances']['selected']=true;
buildmenu($menu);
$dbg='';
@ -262,7 +261,7 @@ while ($row=mysqli_fetch_assoc($res)) {
}
if ($jsaddrows!='') {
$jsaddrows.='document.getElementById("filbut").value="Rimuovi tutti i criteri di ricerca";'.N;
$jsaddrows.='document.getElementById("filbut").value="Rimuovi tutti i criteri di filtraggio";'.N;
$jsaddrows.='synctai();'.N;
}
if ($jsordaddrows!='') {
@ -344,36 +343,8 @@ while ($row=mysqli_fetch_assoc($res)) {
$presopts.='<option value="'.$row['ID'].'" selected>'.hspech($row['Name']).'</option>'.N;
}
$chunksize=20; // questo deve essere settato paro-paro in notifsh.php
$i=0;
$notifs='<div id="notifc">'.N;
$notifs.='<div id="notifs" onscroll="morenotifs();">'.N;
$unreadnotifs=false;
$res=mysqli_query($link,'SELECT * FROM Notifications ORDER BY Microtime DESC')
or muoribene(mysqli_error($link),true);
while ($row=mysqli_fetch_assoc($res)) {
if ($row['Seen']==0) {
$unreadnotifs=true;
$notifclass='notifunseen';
} else {
$notifclass='notifseen';
}
$i++;
if ($i<=$chunksize) {
if ($i==1) $fntime=$row['Microtime'];
$notifs.='<div id="notif-'.$row['ID'].'" class="'.$notifclass.'" onclick="markread(this)">'.strftime('%d/%m/%y %T',$row['Microtime']).': '.$row['Notification'].'</div>'.N;
}
}
$notifs.='</div>'.N;
$notifs.='<div id="notifa"><a href="notifs.php">Vedi tutte le notifiche</a></div>'.N;
$notifs.='</div>'.N;
if ($unreadnotifs) {
$notifimgoff='imgs/bell_act_off.svg';
$notifimgon='imgs/bell_act_on.svg';
} else {
$notifimgoff='imgs/bell_off.svg';
$notifimgon='imgs/bell_on.svg';
}
require('include/notifs.php');
$notifs=notifs($link);
mysqli_close($link);
@ -403,111 +374,20 @@ if ($filtordon) {
<link rel="stylesheet" type="text/css" href="theme.css?v=<?php echo($cjrand); ?>">
<script language="JavaScript">
<!--
<?php require('js/notifs.js.php'); ?>
function shideplancia() {
var plancia=document.getElementById('plancia');
var plctrl=document.getElementById('lente');
if (plancia.style.display=='block') {
plancia.style.display='none';
plctrl.src='<?php echo($filtordimgoff); ?>';
plctrl.title='Mostra il pannello di ricerca e ordinamento';
plctrl.title='Mostra il pannello di filtraggio e ordinamento';
} else {
plancia.style.display='block';
plctrl.src='<?php echo($filtordimgon); ?>';
plctrl.title='Nascondi il pannello di ricerca e ordinamento';
plctrl.title='Nascondi il pannello di filtraggio e ordinamento';
}
}
notifimgon='<?php echo($notifimgon); ?>';
notifimgoff='<?php echo($notifimgoff); ?>';
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($fntime); ?>;
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($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);
function hent(str) {
return str.replace(/&/g,'&amp;').replace(/>/g,'&gt;').replace(/</g,'&lt;').replace(/"/g,'&quot;');
}
@ -645,7 +525,7 @@ function addrow(index,refresh) {
popusels(index,false);
}
} else {
alerta('<p>Non è possibile impostare più di 8 criteri di ricerca.</p>',false);
alerta('<p>Non è possibile impostare più di 8 criteri di filtraggio.</p>',false);
}
}
function ordaddrow(index,refresh) {
@ -785,7 +665,7 @@ function remrow(index) {
table.deleteRow(index);
synctai();
if (table.rows.length<2)
document.getElementById('filbut').value='Aggiungi criteri di ricerca';
document.getElementById('filbut').value='Aggiungi criteri di filtraggio';
}
function ordremrow(index) {
var table=document.getElementById('planciaord');
@ -810,9 +690,9 @@ function manfil() {
var crows=table.rows.length;
if (crows<2) {
addrow(1,true);
filbut.value='Rimuovi tutti i criteri di ricerca';
filbut.value='Rimuovi tutti i criteri di filtraggio';
} else {
confirma('<p>Confermi di voler rimuovere tutti i criteri di ricerca?</p>','truncfil();filbut.value=\'Aggiungi criteri di ricerca\'');
confirma('<p>Confermi di voler rimuovere tutti i criteri di filtraggio?</p>','truncfil();filbut.value=\'Aggiungi criteri di filtraggio\'');
}
}
function manord() {
@ -911,7 +791,7 @@ function loadpres() {
setrow(i+1, jarr['f'][i]['OpenPar'], jarr['f'][i]['Field'], jarr['f'][i]['Cond'], jarr['f'][i]['ValueSel'], jarr['f'][i]['ValueInp'], jarr['f'][i]['ClosePar'], jarr['f'][i]['AndOr']);
}
if (jarr['f'].length>0)
document.getElementById('filbut').value='Rimuovi tutti i criteri di ricerca';
document.getElementById('filbut').value='Rimuovi tutti i criteri di filtraggio';
truncord();
for (i=0; i<jarr['o'].length; i++) {
console.log(jarr['o'][i]);
@ -1054,14 +934,14 @@ function pupoff() {
</ul>
<div class="mtit">Elenco istanze</div>
<div id="rightdiv">
<img src="<?php echo($filtordimgoff); ?>" id="lente" class="rlinks" title="Mostra il pannello di ricerca e ordinamento" onclick="shideplancia();">
<img src="<?php echo($notifimgoff); ?>" id="bell" class="rlinks" title="Show notifications" onclick="shidenotifs();">
<img src="<?php echo($filtordimgoff); ?>" id="lente" class="rlinks" title="Mostra il pannello di filtraggio e ordinamento" onclick="shideplancia();">
<img src="<?php echo($notifs['imgoff']); ?>" id="bell" class="rlinks" title="Show notifications" onclick="shidenotifs();">
<img src="imgs/esci.svg" class="rlinks" title="Esci" onclick="document.location.href='logout.php';">
</div>
</div>
</nav>
<?php echo($notifs); ?>
<?php echo($notifs['div']); ?>
<div id="popup">
<div id="inpopup">
@ -1082,7 +962,7 @@ function pupoff() {
<div id="plancia">
<form method="post" id="f" onsubmit="return ckf();">
<table id="planciafil" class="planciatab">
<tr><td colspan="8"><input type="button" id="filbut" value="Aggiungi criteri di ricerca" class="ctrlbut" onclick="manfil();"></td></tr>
<tr><td colspan="8"><input type="button" id="filbut" value="Aggiungi criteri di filtraggio" class="ctrlbut" onclick="manfil();"></td></tr>
</table>
<table id="planciaord" class="planciatab">
<tr><td colspan="4"><input type="button" id="ordbut" value="Aggiungi criteri di ordinamento" class="ctrlbut" onclick="manord();"></td></tr>

View file

@ -17,7 +17,7 @@ if (array_key_exists('act',$_GET) && $_GET['act']=='markread' && array_key_exist
mysqli_close($link);
} elseif (array_key_exists('act',$_GET) && $_GET['act']=='loadchunk' && array_key_exists('chunk',$_GET) && preg_match('/^[0-9]+$/',$_GET['chunk'])===1) {
$_GET['chunk']+=0;
$chunksize=20; // questo dev'essere uguale in instances.php
$chunksize=20; // questo dev'essere uguale in include/notifs.php
require('include/myconn.php');
$res=mysqli_query($link,'SELECT * FROM Notifications ORDER BY Microtime DESC LIMIT '.($_GET['chunk']*$chunksize).','.$chunksize)
or muoribene(mysqli_error($link),true);

View file

@ -1,3 +1,7 @@
:root {
--MenuEntryWidth: 100px;
--HiColor: #78b1e2;
}
* {
box-sizing: border-box;
margin: 0;
@ -252,7 +256,7 @@ input {
}
#inpopup .waitbub {
background-color: black;
color: #78b1e2;
color: var(--HiColor);
padding: 16px;
border-radius: 20px;
width: 160px;
@ -261,7 +265,7 @@ input {
}
#inpopup .loadsavepresbub {
background-color: black;
color: #78b1e2;
color: var(--HiColor);
padding: 16px;
border-radius: 20px;
width: 320px;
@ -340,22 +344,22 @@ input {
overflow: visible;
}
#hmenu ul li {
width: 80px;
width: var(--MenuEntryWidth);
height: 32px;
text-align: center;
display: table-cell;
vertical-align: middle;
color: #78b1e2;
color: var(--HiColor);
}
#hmenu ul li:hover {
background-color: rgba(255,255,255,0.10);
cursor: default;
}
#hmenu ul li a {
width: 80px;
width: var(--MenuEntryWidth);
line-height: 32px;
display: block;
color: #78b1e2;
color: var(--HiColor);
}
#hmenu .ula {
position: absolute;
@ -365,13 +369,13 @@ input {
}
#hmenu .ulb {
background-color: rgba(0,0,0,0.85);
left: 80px;
left: var(--MenuEntryWidth);
position: relative;
top: -32px;
display: none;
}
#hmenu .ula li, #hmenu .ulb li {
width: 80px;
width: var(--MenuEntryWidth);
height: 32px;
display: block;
float: none;
@ -383,12 +387,13 @@ input {
text-decoration: underline;
}
#hmenu .hil {
background-color: rgba(34,104,170,0.40);
color: white;
background-color: var(--HiColor);
color: black;
}
#hmenu .hil:hover {
cursor: default;
text-decoration: none;
color: var(--HiColor);
}
#hmenu .ula li.hil:hover, #hmenu .ulb li.hil:hover {
text-decoration: none;
@ -398,7 +403,7 @@ input {
position: absolute;
top: 0;
right: 0;
color: #78b1e2;
color: var(--HiColor);
height: 32px;
line-height: 32px;
vertical-align: middle;
@ -410,7 +415,7 @@ input {
text-align: center;
}
.rlinks a {
color: #78b1e2;
color: var(--HiColor);
}
.rlinks:hover {
cursor: pointer;
@ -425,7 +430,7 @@ input {
line-height: 32px;
font-size: 14pt;
font-weight: bold;
color: #78b1e2;
color: var(--HiColor);
}
#plancia {
@ -438,7 +443,7 @@ input {
padding: 1px;
border-radius: 0 0 7px 7px;
font-size: 9pt;
color: #78b1e2;
color: var(--HiColor);
display: none;
}
#plancia .planciatab {