From 71e86eac4872ffe919af77d215551c5cb4c81007 Mon Sep 17 00:00:00 2001 From: pezcurrel Date: Wed, 11 Mar 2020 08:43:56 +0100 Subject: [PATCH] ... --- README.md | 1 + web/admin/edinst.php | 441 ++++------------------------------- web/admin/imgs/cerca_off.svg | 104 +++++++++ web/admin/imgs/cerca_on.svg | 117 ++++++++++ web/admin/imgs/esci.svg | 76 ++++++ web/admin/index.html | 23 +- web/admin/instances.php | 21 +- web/admin/theme.css | 52 ++++- 8 files changed, 409 insertions(+), 426 deletions(-) create mode 100644 web/admin/imgs/cerca_off.svg create mode 100644 web/admin/imgs/cerca_on.svg create mode 100644 web/admin/imgs/esci.svg diff --git a/README.md b/README.md index 6e75022..90151ab 100644 --- a/README.md +++ b/README.md @@ -1 +1,2 @@ Progetto per un sito di introduzione a mastodon ([al momento pubblicato qui](https://rame.altervista.org/mastostart/)) che dia inoltre la possibilità di scegliere un’istanza in base a vari criteri, da una base di istanze sufficientemente occhei. +Se vuoi saperne di più puoi leggere il [wiki](wiki). diff --git a/web/admin/edinst.php b/web/admin/edinst.php index 15dc359..0c91f41 100644 --- a/web/admin/edinst.php +++ b/web/admin/edinst.php @@ -31,7 +31,7 @@ mysqli_close($link); -Mastodon Startpage Admin - Modifica di «<?php echo($data['URI']); ?>» +Mastodon Startpage Admin - Modifica di «<?php //echo($data['URI']); ?>» @@ -56,388 +56,6 @@ function ulsh(el,sh) { else el.style.display='none'; } - -function shideplancia() { - var plancia=document.getElementById('plancia'); - var plctrl=document.getElementById('plctrl'); - if (plancia.style.display=='block') { - plancia.style.display='none'; - plctrl.innerHTML='Mostra plancia'; - } else { - plancia.style.display='block'; - plctrl.innerHTML='Nascondi plancia'; - } -} - -function truncsel(el) { - var sel=document.getElementById(el), len=sel.length, i=0; - for (i=len-1; i>=0; i--) - sel.remove(i); -} -function addselopt(el,val,txt) { - option=new Option(txt,val); - el.add(option); -} -function inpdisif(index) { - console.log('inpdisif index: '+index); - var source=document.getElementById('condsel-'+index); - var inp=document.getElementById('valueinp-'+index); - var sel=document.getElementById('valuesel-'+index); - var conds=['IS NULL','IS NOT NULL']; - if (conds.includes(source.value)) { - inp.disabled=true; - sel.disabled=true; - } else { - if (inp.style.display!='none') inp.disabled=false; - if (sel.style.display!='none') sel.disabled=false; - } -} -function popusels(index,valselval) { - console.log('popusels index: '+index); - var key=document.getElementById('fieldsel-'+index).value; - var type=key.replace(/^.*:(.*):.*$/,'$1'); - var subtype=key.replace(/^.*:.*:(.*)$/,'$1'); - key=key.replace(/^(.*):.*:.*$/,'$1'); - var condsel=document.getElementById('condsel-'+index); - var valsel=document.getElementById('valuesel-'+index); - var valinp=document.getElementById('valueinp-'+index); - condsel.setAttribute('onchange','inpdisif('+index+');'); - if (type=='joini') - type=subtype; - if (type=='bool') { - truncsel('condsel-'+index); - addselopt(condsel,'IS','è'); - truncsel('valuesel-'+index); - addselopt(valsel,'TRUE','vero'); - addselopt(valsel,'FALSE','falso'); - addselopt(valsel,'NOT NULL','definit@'); - addselopt(valsel,'NULL','non definit@'); - if (valselval!==false) - selind('valuesel-'+index,valselval); - valinp.style.display='none'; - valinp.disabled=true; - valsel.style.display='block'; - valsel.disabled=false; - } else if (type=='text') { - truncsel('condsel-'+index); - addselopt(condsel,'LIKE','contiene'); - addselopt(condsel,'NOT LIKE','non contiene'); - addselopt(condsel,'=','è uguale a'); - addselopt(condsel,'!=','è divers@ da'); - addselopt(condsel,'>=','è maggiore o uguale a'); - addselopt(condsel,'<=','è minore o uguale a'); - addselopt(condsel,'>','è maggiore di'); - addselopt(condsel,'<','è minore di'); - addselopt(condsel,'IS NOT NULL','è definit@'); - addselopt(condsel,'IS NULL','non è definit@'); - valsel.style.display='none'; - valsel.disabled=true; - valinp.style.display='block'; - valinp.disabled=false; - } else if (type=='int' || type=='time') { - truncsel('condsel-'+index); - addselopt(condsel,'>=','è maggiore o uguale a'); - addselopt(condsel,'<=','è minore o uguale a'); - addselopt(condsel,'>','è maggiore di'); - addselopt(condsel,'<','è minore di'); - addselopt(condsel,'=','è uguale a'); - addselopt(condsel,'!=','è divers@ da'); - addselopt(condsel,'IS NOT NULL','è definit@'); - addselopt(condsel,'IS NULL','non è definit@'); - valsel.style.display='none'; - valsel.disabled=true; - valinp.style.display='block'; - valinp.disabled=false; - } else if (type=='join') { - truncsel('condsel-'+index); - addselopt(condsel,'=','è uguale a'); - addselopt(condsel,'!=','è divers@ da'); - addselopt(condsel,'IS NOT NULL','è definit@'); - addselopt(condsel,'IS NULL','non è definit@'); - valsel.style.display='block'; - valsel.disabled=false; - valinp.style.display='none'; - valinp.disabled=true; - truncsel('valuesel-'+index); - pupwait(true); - let xhr=new XMLHttpRequest(); - xhr.open('GET','instancesh.php?key='+key); - xhr.responseType='json'; - xhr.send(); - xhr.onload=function() { - let jarr=xhr.response; - for (i=0; i-1; i--) { - nodes[i].setAttribute('id','openpar-'+(i+1)); - nodes[i].setAttribute('name','openpar-'+(i+1)); - } - nodes=table.querySelectorAll('.fieldsel'); - for (i=cnodes; i>-1; i--) { - nodes[i].setAttribute('id','fieldsel-'+(i+1)); - nodes[i].setAttribute('name','fieldsel-'+(i+1)); - nodes[i].setAttribute('onchange','popusels('+(i+1)+',false);'); - } - nodes=table.querySelectorAll('.condsel'); - for (i=cnodes; i>-1; i--) { - nodes[i].setAttribute('id','condsel-'+(i+1)); - nodes[i].setAttribute('name','condsel-'+(i+1)); - nodes[i].setAttribute('onchange','inpdisif('+(i+1)+');'); - } - nodes=table.querySelectorAll('.valuesel'); - for (i=cnodes; i>-1; i--) { - nodes[i].setAttribute('id','valuesel-'+(i+1)); - nodes[i].setAttribute('name','valuesel-'+(i+1)); - } - nodes=table.querySelectorAll('.valueinp'); - for (i=cnodes; i>-1; i--) { - nodes[i].setAttribute('id','valueinp-'+(i+1)); - nodes[i].setAttribute('name','valueinp-'+(i+1)); - } - nodes=table.querySelectorAll('.closepar'); - for (i=cnodes; i>-1; i--) { - nodes[i].setAttribute('id','closepar-'+(i+1)); - nodes[i].setAttribute('name','closepar-'+(i+1)); - } - nodes=table.querySelectorAll('.andor'); - for (i=cnodes; i>-1; i--) { - nodes[i].setAttribute('id','andor-'+(i+1)); - nodes[i].setAttribute('name','andor-'+(i+1)); - nodes[i].disabled=false; - } - if (cnodes>=0) - nodes[cnodes].disabled=true; -} -function synctoi() { - var i=0; - var table=document.getElementById('planciaord'); - var nodes=table.querySelectorAll('.minus'); - var cnodes=nodes.length; - for (i=0; i-1; i--) { - nodes[i].setAttribute('id','ordfieldsel-'+(i+1)); - nodes[i].setAttribute('name','ordfieldsel-'+(i+1)); - } - nodes=table.querySelectorAll('.ascdesc'); - for (i=cnodes; i>-1; i--) { - nodes[i].setAttribute('id','ascdesc-'+(i+1)); - nodes[i].setAttribute('name','ascdesc-'+(i+1)); - } -} -function selind(id,val) { - var el=document.getElementById(id), i=0, found=false; - while (!found && i1) - remrow(1); -} -function truncord() { - var table=document.getElementById('planciaord'); - while (table.rows.length>1) - ordremrow(1); -} -function manfil() { - var filbut=document.getElementById('filbut'); - var table=document.getElementById('planciafil'); - var crows=table.rows.length; - if (crows<2) { - addrow(1,true); - filbut.value='Rimuovi tutti i criteri di ricerca'; - } else { - confirma('

Confermi di voler rimuovere tutti i criteri di ricerca?

','truncfil();filbut.value=\'Aggiungi criteri di ricerca\''); - } -} -function manord() { - var ordbut=document.getElementById('ordbut'); - var table=document.getElementById('planciaord'); - var crows=table.rows.length; - if (crows<2) { - ordaddrow(1,true); - ordbut.value='Rimuovi tutti i criteri di ordinamento'; - } else { - confirma('

Confermi di voler rimuovere tutti i criteri di ordinamento?

','truncord();ordbut.value=\'Aggiungi criteri di ordinamento\''); - } -} -function ckpar() { - var i=0; - var table=document.getElementById('planciafil'); - var nodes=table.querySelectorAll('.openpar'); - var cnodes=nodes.length; - var opars=[]; - var cpars=[]; - for (i=0; iopq) - break; - } - if (opq!=cpq) - ok=false; - console.log(i+'/'+spars.length+': '+ok); - return ok; -} -function ckf() { - var emsg=''; - if (!ckpar()) emsg+='Qualcosa non va con le parentesi!
\n'; -// emsg+='Comunque NO!
\n'; - if (emsg=='') { - var table=document.getElementById('planciafil'); - var crows=table.rows.length; - if (crows>1) - document.getElementById('andor-'+(crows-1)).disabled=false; - document.getElementById('f').submit(); - } else { - alerta('

'+emsg+'

'); - } -} -function pupwait(on) { - var pup=document.getElementById('popup'), inpup=document.getElementById('inpopup'); - if (on) { - if (pup.style.display!='table') { - inpup.innerHTML='

 
Caricamento in corso...
'; - pup.style.display='table'; - } else { - console.log('Sto già aspettando...'); - } - } else { - inpup.innerHTML='
...
'; - pup.style.display='none'; - } -} //--> @@ -449,8 +67,7 @@ function pupwait(on) {
- -
+ @@ -475,14 +92,54 @@ function pupwait(on) { Ciao sono una istanza - - - - - + + + + + +
 
 
 
 
 
 
 
 
 
 
+
+
+ +
+
+ + +
+
+ + + + + + + + + +
+ + + +
+
+
+
+ + +
+
+
+
-
- Orpo diff --git a/web/admin/imgs/cerca_off.svg b/web/admin/imgs/cerca_off.svg new file mode 100644 index 0000000..90169c0 --- /dev/null +++ b/web/admin/imgs/cerca_off.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/web/admin/imgs/cerca_on.svg b/web/admin/imgs/cerca_on.svg new file mode 100644 index 0000000..e5f9bd5 --- /dev/null +++ b/web/admin/imgs/cerca_on.svg @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/web/admin/imgs/esci.svg b/web/admin/imgs/esci.svg new file mode 100644 index 0000000..a07e865 --- /dev/null +++ b/web/admin/imgs/esci.svg @@ -0,0 +1,76 @@ + + + + + + + + + + + + + image/svg+xml + + + + + + + + + diff --git a/web/admin/index.html b/web/admin/index.html index 9d2c359..3ec2bf6 100644 --- a/web/admin/index.html +++ b/web/admin/index.html @@ -9,25 +9,18 @@ - + +
+

Ciao,
-qui, con nome utente “bida” e password uguale, puoi testare quel che c’è della sezione di admin per il “suggeritore d’istanze mastodon” che sto sviluppando per la Mastodon Startpage. Quel che c’è, al momento, è il “browser di istanze lato admin”, uno strumento che permette di “sfogliare” e cercare-ordinare secondo tanti criteri un database di metadati relativi a tante istanze mastodon.
-Qualche parola sul progetto nel suo insieme, per come l’avevamo pensato io che son pongrebio e Ca_Gi. In pratica si dovrebbe comporre di vari aggeggi, alcuni dei quali ci sono già, altri no:

-
    -
  • un crawler (c’è) che periodicamente recupera e salva-aggiorna in un database tutti i metadati disponibili relativi alle istanze note a cinque istanze italiane amiche, che al momento sono bida, cisti, nebbia (da un po’ di tempo è rotta), snapj e stereodon, tenendo conto delle rispettive “blacklist” (liste di istanze bloccate), ovvero marcando come tali le istanze blacklistate da una qualsiasi delle cinque istanze amiche, e marcando inoltre come “papabili” le istanze che corrispondono a certi criteri, al momento questi: l’istanza non è blacklistata, la registrazione di nuovi account è aperta, il numero di utenti è compreso tra 10 e 30.000, il numero di istanze note all’istanza è maggiore di 500, il numero di utenti attivi negli ultimi 30 giorni è maggiore di 10;
  • -
  • una sezione di admin con:
  • -
      -
    • un “browser di istanze lato admin” (c’è);
    • -
    • una pagina (non c’è) che dia la possibilità, per ciascuna istanza, di scegliere se renderla visibile tramite il “browser di istanze lato utente” e se mostrarla sulla “prima pagina” dello stesso, e di poterne editare alcuni metadati aggiuntivi/alternativi rispetto a quelli “standard” recuperati dal crawler: una descrizione alternativa (perché quella impostata dagli admin e disponibile tra i metadati “standard” recuperabili dal crawler è spesso troppo vaga o troppo scarna o troppo lunga), una localizzazione geografica (relativa al collettivo o al singolo che gestisce l’istanza, non alla collocazione del server; metadato non presente tra quelli “standard”), le lingue più impiegate sull’istanza (quella dichiarata nei metadati “standard” recuperabili dal crawler spesso non corrisponde a quella maggiormente impiegata realmente sull’istanza, e ci sono istanze multilingue), modalità di finanziamento (metadato non presente tra quelli “standard”), restrizioni (policy) sui contenuti postabili (metadato non presente tra quelli “standard”), tag descrittive riassuntive del tipo di istanza (metadato non presente tra quelli “standard”); tutti questi metadati aggiuntivi/alternativi sono già strutturati nel database e sono visibili-ricercabili tramite il “browser di istanze lato admin”;
    • -
    • una pagina (non c’è) per la gestione degli account admin;
    • -
    -
  • un “browser di istanze lato utente” (non c’è).
  • -
-

Se vuoi darmi una mano sullo sviluppo, il codice si trova qui, nella cartella web/admin.
-Per segnalare bachi o chiedere qualsiasi info aggiuntiva scrivimi su mastodon.

+qui, con nome utente “bida” e password uguale, puoi provare quel che c’è della sezione di admin per il “suggeritore d’istanze mastodon” della Mastodon Startpage.
+Quel che c’è, al momento, è il “browser di istanze lato admin”, uno strumento che permette di “sfogliare” e cercare-ordinare secondo tanti criteri un database di metadati relativi a tante istanze mastodon (per visualizzare il pannello di ricerca e ordinamento clicca sull’icona con la lente in alto a destra).
+Se vuoi segnalare bachi e/o collaborare in altro modo al progetto della Mastodon Startpage, qui c’è il repo git del progetto; nel wiki trovi una spiegazione abbastanza dettagliata di come si pensa di svilupparlo, quel che c’è e quel che manca.

+
+
diff --git a/web/admin/instances.php b/web/admin/instances.php index 250707c..ccf667a 100644 --- a/web/admin/instances.php +++ b/web/admin/instances.php @@ -439,14 +439,14 @@ if ($cinstsp<1) { $out.=''.N; // $out.=''.N; $out.=''.N; - $out.=''.N; + $out.=''.N; $attr=booly(trimname($cols['Instances.Blacklisted']['name']).': ',$row['Blacklisted'],false,true).N; $attr.=booly(trimname($cols['Instances.New']['name']).': ',$row['New'],true).N; $attr.=booly(trimname($cols['Instances.Good']['name']).': ',$row['Good']).N; $attr.=booly(trimname($cols['Instances.Chosen']['name']).': ',$row['Chosen']).N; $attr.=booly(trimname($cols['Instances.Visible']['name']).': ',$row['Visible']).N; -/* $attr.=booly(trimname($cols['Instances.RegOpen']['name']).': ',$row['RegOpen']).N; - $attr.=booly(trimname($cols['Instances.RegReqApproval']['name']).': ',$row['RegReqApproval'],true,true).N;*/ +/* $attr.=booly($cols['Instances.RegOpen']['name'].': ',$row['RegOpen']).N; + $attr.=booly($cols['Instances.RegReqApproval']['name'].': ',$row['RegReqApproval'],true,true).N;*/ $sres=mysqli_query($link,'SELECT * FROM InstChecks WHERE InstID='.$row['IID'].' ORDER BY Time DESC') or muoribene(mysqli_error($link),true); $csres=mysqli_num_rows($sres); @@ -664,13 +664,15 @@ function ulsh(el,sh) { } function shideplancia() { var plancia=document.getElementById('plancia'); - var plctrl=document.getElementById('plctrl'); + var plctrl=document.getElementById('lente'); if (plancia.style.display=='block') { plancia.style.display='none'; - plctrl.innerHTML='Mostra plancia'; + lente.src='imgs/cerca_off.svg'; + lente.title='Mostra il pannello di ricerca e ordinamento'; } else { plancia.style.display='block'; - plctrl.innerHTML='Nascondi plancia'; + lente.src='imgs/cerca_on.svg'; + lente.title='Nascondi il pannello di ricerca e ordinamento'; } } function hent(str) { @@ -1226,8 +1228,8 @@ function gotopage(pi) {
- - + +
@@ -1242,9 +1244,6 @@ function gotopage(pi) {
diff --git a/web/admin/theme.css b/web/admin/theme.css index 5e6d12b..9b434f2 100644 --- a/web/admin/theme.css +++ b/web/admin/theme.css @@ -404,8 +404,8 @@ input { } .rlinks { float: left; - padding-left: 10px; - padding-right: 10px; + padding-left: 5px; + padding-right: 5px; text-align: center; } .rlinks a { @@ -496,7 +496,8 @@ input { } /*720x1280*/ .edtab td { - padding: 3px; + padding: 6px; + line-height: 14pt; text-align: left; vertical-align: top; /* word-break: break-word;*/ @@ -510,22 +511,52 @@ input { .edtab .right { width: 99%; } -.edtab .tarea { +.edtab .tarea, .mselect { + display: block; width: 100%; resize: none; padding: 3px; border-radius: 3px; - border: 1px; + border: 1px solid darkgrey; +} +.edtab .search { + width: 100%; + padding: 3px; + border-radius: 3px; + border: 1px solid darkgrey; + margin-bottom: 1px; + font-size: 9pt; +} +.edtab label { + font-weight: bold; +} +.ruler { + width: 100%; + height: 12px; +} +.tit { + background-color: #6f916f; + color: white; + text-align: center; + border-radius: 3px; + margin-bottom: 6px; } .cbtab { - background-color: red; border-spacing: 0; } .cbtab td { border-radius: 0; padding: 0; - border: none; +} + +.picktab { + border-spacing: 0; + width: 100%; +} +.picktab td { + border-radius: 0; + padding: 0; } #pageselect { @@ -547,13 +578,15 @@ input { } #intro { - width:800px; + width:720px; margin-left:auto; margin-right:auto; padding:10px; + text-align: left; font-size:14pt; line-height: 18pt; background-color:lightgrey; + border-radius: 6px; } #intro p, ul { margin-bottom: 10px; @@ -564,4 +597,7 @@ input { width: 244px; min-width: 244px; } + #intro { + width: 360px; + } }
AttributiInfo
'.$row['URI'].' ('.($finst+$ci).'/'.$cinsts.')
'.$row['URI'].' ('.($finst+$ci).'/'.$cinsts.') - Modifica