Changeset 31108d4


Ignore:
Timestamp:
Nov 9, 2025, 11:06:05 PM (4 weeks ago)
Author:
rgigli <roberto.gigli@…>
Branches:
main
Children:
a497294
Parents:
9996219
Message:

Prime tre schede per le impostazioni e dati generali

Location:
admin
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • admin/modules/gestione_enti_comuni.php

    r9996219 r31108d4  
    55$row=configurazione();
    66$predefinito=$row[0]['siteistat'];
    7 $row=elenco_comuni();
    8 foreach($row as $key=>$val) {
    9         if($predefinito===$val['id_comune']) $pred=true; else $pred=false;
    10 $enti[]=['id'=>($key+1),'denominazione'=>$val['denominazione'],'codice_istat'=>$val['id_comune'],'capoluogo'=>$val['capoluogo'],'indirizzo'=>$val['indirizzo'],'abitanti'=>$val['fascia'],'fax'=>$val['fax'],'email'=>$val['email'],'cap'=>$val['cap'],'centralino'=>$val['centralino'],'stemma'=>$val['stemma'],'predefinito'=>$pred];
    11 }
    12 /*
    13 $enti = [
    14   ['id'=>1, 'denominazione'=>'Comune A', 'codice_istat'=>'001', 'capoluogo'=>'Sì', 'indirizzo'=>'Via Roma 1', 'abitanti'=>'3000-10000', 'fax'=>'0123456789', 'email'=>'comuneA@pec.it', 'cap'=>'00100', 'centralino'=>'123456', 'stemma'=>'', 'predefinito' => true],
    15   ['id'=>2, 'denominazione'=>'Comune B', 'codice_istat'=>'002', 'capoluogo'=>'No', 'indirizzo'=>'Via Milano 2', 'abitanti'=>'10000-15000', 'fax'=>'9876543210', 'email'=>'comuneB@pec.it', 'cap'=>'00200', 'centralino'=>'654321', 'stemma'=>'', 'predefinito' => false],
    16   ['id'=>3, 'denominazione'=>'Comune C', 'codice_istat'=>'003', 'capoluogo'=>'Sì', 'indirizzo'=>'Via Napoli 3', 'abitanti'=>'15000-30000', 'fax'=>'0112233445', 'email'=>'comuneC@pec.it', 'cap'=>'00300', 'centralino'=>'112233', 'stemma'=>'', 'predefinito' => false],
    17 ]; */
    18 //require_once '../includes/db_connection.php'; // Assumendo che qui apri la connessione $conn (mysqli)
    19 
    20 // Aggiunta, modifica, eliminazione enti in MySQL
    21 
    22 // --- ELIMINAZIONE ---
    23 /*
    24 if (isset($_GET['delete_ente_id'])) {
    25     $delete_id = intval($_GET['delete_ente_id']);
    26     // Eliminazione
    27     $sql_delete = "DELETE FROM enti WHERE id = ?";
    28     if ($stmt = $conn->prepare($sql_delete)) {
    29         $stmt->bind_param("i", $delete_id);
    30         if ($stmt->execute()) {
    31             // messaggio eliminazione riuscita (gestisci come vuoi)
    32             $message = "Eliminazione ente ID $delete_id avvenuta con successo.";
    33         } else {
    34             $message = "Errore durante eliminazione ente.";
    35         }
    36         $stmt->close();
    37     }
    38 }
    39 */
    40 
    41 // --- INSERIMENTO O AGGIORNAMENTO ---
    42 // Se invii il form con POST
    43 /*
    44 if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    45     // Sanifica input
    46     $id = isset($_POST['ente_id']) ? intval($_POST['ente_id']) : 0;
    47     $denominazione = $_POST['denominazione'] ?? '';
    48     $codice_istat = $_POST['codice_istat'] ?? '';
    49     $capoluogo = $_POST['capoluogo'] ?? '';
    50     $indirizzo = $_POST['indirizzo'] ?? '';
    51     $centralino = $_POST['centralino'] ?? '';
    52     $abitanti = $_POST['abitanti'] ?? '';
    53     $fax = $_POST['fax'] ?? '';
    54     $email = $_POST['email'] ?? '';
    55     $cap = $_POST['cap'] ?? '';
    56     $predefinito = isset($_POST['predefinito']) ? 1 : 0;
    57 
    58     // Gestisci upload file stemma se presente
    59     $stemma_path = '';
    60     if (isset($_FILES['stemma']) && $_FILES['stemma']['error'] === UPLOAD_ERR_OK) {
    61         $tmp_name = $_FILES['stemma']['tmp_name'];
    62         $name = basename($_FILES['stemma']['name']);
    63         $upload_dir = '../uploads/'; // crea questa cartella e rendila scrivibile
    64         if (!is_dir($upload_dir)) mkdir($upload_dir, 0755, true);
    65         $target_file = $upload_dir . time() . '_' . $name;
    66         if (move_uploaded_file($tmp_name, $target_file)) {
    67             $stemma_path = $target_file;
    68         }
    69     }
    70 
    71     // Se predefinito, azzera gli altri
    72     if ($predefinito) {
    73         $conn->query("UPDATE enti SET predefinito = 0");
    74     }
    75 
    76     if ($id > 0) {
    77         // UPDATE
    78         $sql_update = "UPDATE enti SET denominazione=?, codice_istat=?, capoluogo=?, indirizzo=?, centralino=?, abitanti=?, fax=?, email=?, cap=?, stemma=?, predefinito=? WHERE id=?";
    79         if ($stmt = $conn->prepare($sql_update)) {
    80             // Se non hai cambiato il file, mantieni lo stemma vecchio
    81             if (!$stemma_path) {
    82                 // Prendi stemma attuale dal DB per questo id
    83                 $res = $conn->query("SELECT stemma FROM enti WHERE id=$id");
    84                 if ($res && $row = $res->fetch_assoc()) {
    85                     $stemma_path = $row['stemma'];
    86                 }
    87             }
    88             $stmt->bind_param("ssssssssssii", $denominazione, $codice_istat, $capoluogo, $indirizzo, $centralino, $abitanti, $fax, $email, $cap, $stemma_path, $predefinito, $id);
    89             if ($stmt->execute()) {
    90                 $message = "Ente aggiornato con successo.";
    91             } else {
    92                 $message = "Errore durante aggiornamento ente.";
    93             }
    94             $stmt->close();
    95         }
    96     } else {
    97         // INSERT
    98         $sql_insert = "INSERT INTO enti (denominazione, codice_istat, capoluogo, indirizzo, centralino, abitanti, fax, email, cap, stemma, predefinito) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    99         if ($stmt = $conn->prepare($sql_insert)) {
    100             $stmt->bind_param("ssssssssssi", $denominazione, $codice_istat, $capoluogo, $indirizzo, $centralino, $abitanti, $fax, $email, $cap, $stemma_path, $predefinito);
    101             if ($stmt->execute()) {
    102                 $message = "Ente aggiunto con successo.";
    103             } else {
    104                 $message = "Errore durante inserimento ente.";
    105             }
    106             $stmt->close();
    107         }
    108     }
    109 }
    110 */
    111 
    112 // --- Recupero dati da DB (per esempio) ---
    113 /*
    114 $sql = "SELECT * FROM enti ORDER BY denominazione";
    115 $result = $conn->query($sql);
    116 $enti = [];
    117 if ($result) {
    118     while ($row = $result->fetch_assoc()) {
    119         $enti[] = $row;
    120     }
    121 }
    122 */
     7
    1238?>
    1249
     
    13318      </div>
    13419      <div class="card-body">
    135         <form id="enteForm" enctype="multipart/form-data">
     20        <form id="enteForm" enctype="multipart/form-data"  onsubmit="aggiungiComune(event)">
    13621          <input type="hidden" name="ente_id" id="ente_id">
    13722
     
    21297      </div>
    21398    </div>
    214 
     99 
    215100    <!-- LISTA -->
    216101    <div class="card">
     
    232117            </tr>
    233118          </thead>
    234           <tbody id="enteRows"></tbody>
     119          <tbody id="risultato">
     120                  <?php include('elenco_comuni.php'); ?>                 
     121                  </tbody>
    235122        </table>
    236123      </div>
     
    240127
    241128<script>
    242 let enti = <?php echo json_encode($enti); ?>;
    243 
    244 const enteForm = document.getElementById('enteForm');
    245 const enteRows = document.getElementById('enteRows');
    246 const formTitle = document.getElementById('form-subtitle');
    247 const submitBtn = document.getElementById('submitBtn');
    248 const formMainTitle = document.getElementById('form-title');
    249 
    250 function renderEnti() {
    251   enteRows.innerHTML = '';
    252   enti.forEach(ente => {
    253     const tr = document.createElement('tr');
    254     tr.innerHTML = `
    255       <td>${ente.predefinito ? '<i class="fas fa-star" style="color:gold;"></i>' : '<i class="far fa-star"></i>'}</td>
    256       <td>${ente.stemma ? `<img src="${ente.stemma}" alt="Stemma" style="height:30px;">` : ''}</td>
    257       <td>${ente.denominazione}</td>
    258       <td>${ente.indirizzo}</td>
    259       <td>${ente.abitanti}</td>
    260       <td>${ente.codice_istat}</td>
    261       <td>${ente.capoluogo}</td>
    262       <td>
    263         <button class="btn btn-sm btn-warning" onclick="editEnte(${ente.id})">Modifica</button>
    264         <button class="btn btn-sm btn-danger" onclick="deleteEnte(${ente.id})">Elimina</button>
    265       </td>
    266     `;
    267     enteRows.appendChild(tr);
    268   });
    269 }
    270 
    271 function editEnte(id) {
    272   const e = enti.find(e => e.id === id);
    273   if (!e) return;
    274 
    275   document.getElementById('ente_id').value = e.id;
    276   document.getElementById('denominazione').value = e.denominazione;
    277   document.getElementById('codice_istat').value = e.codice_istat;
    278   document.getElementById('capoluogo').value = e.capoluogo;
    279   document.getElementById('indirizzo').value = e.indirizzo;
    280   document.getElementById('centralino').value = e.centralino;
    281   document.getElementById('abitanti').value = e.abitanti;
    282   document.getElementById('fax').value = e.fax;
    283   document.getElementById('email').value = e.email;
    284   document.getElementById('cap').value = e.cap;
    285   document.getElementById('anteprimaStemma').src = e.stemma || '';
    286   document.getElementById('anteprimaStemma').style.display = e.stemma ? 'block' : 'none';
    287   document.getElementById('predefinito').checked = e.predefinito;
    288 
    289   formTitle.innerText = 'Modifica Ente';
    290   submitBtn.innerText = 'Salva ente';
    291 
    292   formMainTitle.scrollIntoView({ behavior: 'smooth' });
    293 }
    294 
    295 function deleteEnte(id) {
    296   const enteToDelete = enti.find(e => e.id === id);
    297   if (!enteToDelete) return;
    298 
    299   if (enteToDelete.predefinito) {
    300     const altro = enti.find(e => e.id !== id);
    301     if (altro) {
    302       if (!confirm(`Stai eliminando l'ente predefinito "${enteToDelete.denominazione}". Verrà impostato come predefinito "${altro.denominazione}". Procedere?`)) {
    303         return;
    304       }
    305       altro.predefinito = true; // nuovo predefinito
    306     } else {
    307       if (!confirm(`Stai eliminando l'ente predefinito "${enteToDelete.denominazione}". Non ci sono altri enti disponibili. Procedere?`)) {
    308         return;
    309       }
     129  function aggiungiComune(e) {
     130    e.preventDefault();
     131       
     132        var denominazione = document.getElementById ( "denominazione" ).value
     133        var indirizzo = document.getElementById ( "indirizzo" ).value
     134        var cap = document.getElementById ( "cap" ).value
     135        var email = document.getElementById ( "email" ).value
     136        var centralino = document.getElementById ( "centralino" ).value
     137        var fax = document.getElementById ( "fax" ).value
     138        var abitanti = document.getElementById ( "abitanti" ).value
     139        var codiceIstat = document.getElementById ( "codice_istat" ).value
     140        var capoluogo = document.getElementById ( "capoluogo" ).value
     141
     142    // Salvataggio nel DB (commentato)
     143    var xmlhttp = new XMLHttpRequest();
     144    xmlhttp.onreadystatechange = function() {
     145                if (this.readyState == 4 && this.status == 200) {
     146                        document.getElementById("risultato").innerHTML = this.responseText;
     147                        document.getElementById ( "submitBtn" ).textContent = "Aggiungi ente"
     148                        document.getElementById ( "denominazione" ).value = ''
     149                        document.getElementById ( "indirizzo" ).value = ""
     150                        document.getElementById ( "cap" ).value = ''
     151                        document.getElementById ( "email" ).value = ''
     152                        document.getElementById ( "centralino" ).value = ''
     153                        document.getElementById ( "fax" ).value = ''
     154                        document.getElementById ( "abitanti" ).selectedIndex = 0
     155                        document.getElementById ( "codice_istat" ).value = ''
     156                        document.getElementById ( "capoluogo" ).selectedIndex = 0
     157                }
    310158    }
    311   } else {
    312     if (!confirm(`Sei sicuro di voler eliminare l'ente "${enteToDelete.denominazione}"?`)) {
    313       return;
     159    xmlhttp.open("GET","../principale.php?funzione=salvaComune&descrizione="+denominazione+"&indirizzo="+indirizzo+"&cap="+cap+"&email="+email+"&centralino="+centralino+"&fax="+fax+"&fascia="+abitanti+"&id_comune="+codiceIstat+"&capoluogo="+capoluogo+"&op=salva",true);
     160    xmlhttp.send();
     161       
     162  }
     163
     164  function deleteEnte(index) {
     165        var denominazione = document.getElementById ( "denominazione"+index ).innerText
     166        var indirizzo = document.getElementById ( "indirizzo"+index ).innerText
     167        var abitanti = document.getElementById ( "abitanti"+index ).innerText
     168        var codiceIstat = document.getElementById ( "codiceIstat"+index ).innerText
     169        var capoluogo = document.getElementById ( "capoluogo"+index ).innerText
     170    var xmlhttp = new XMLHttpRequest();
     171    xmlhttp.onreadystatechange = function() {
     172                if (this.readyState == 4 && this.status == 200) {
     173                                document.getElementById("risultato").innerHTML = this.responseText;
     174                }
    314175    }
    315   }
    316 
    317   enti = enti.filter(e => e.id !== id);
    318   renderEnti();
    319   predefinitoAttuale = enti.find(e => e.predefinito);
    320   alert(`Eliminazione dell'ente "${enteToDelete.denominazione}" avvenuta con successo.`);
    321 }
    322 
    323 let predefinitoAttuale = enti.find(e => e.predefinito);
    324 
    325 enteForm.addEventListener('submit', function(e){
    326   e.preventDefault();
    327 
    328   const id = parseInt(document.getElementById('ente_id').value);
    329   const predefinito = document.getElementById('predefinito').checked;
    330   const isModifica = !isNaN(id);
    331   const eraPredefinito = predefinitoAttuale && predefinitoAttuale.id === id;
    332 
    333   if (isModifica && eraPredefinito && !predefinito) {
    334     if (!confirm(`Stai rimuovendo lo stato di predefinito dall'ente "${predefinitoAttuale.denominazione}". Continuare?`)) {
    335       return;
    336     } else {
    337       // Se confermi la rimozione, assegno il predefinito al primo ente diverso da questo (se esiste)
    338       const altriEnti = enti.filter(e => e.id !== id);
    339       if (altriEnti.length > 0) {
    340         altriEnti.forEach(e => e.predefinito = false); // resetta tutti
    341         altriEnti[0].predefinito = true; // assegna al primo
    342         alert(`L'ente "${altriEnti[0].denominazione}" è stato impostato automaticamente come predefinito.`);
    343       } else {
    344         alert(`Non ci sono altri enti a cui assegnare lo stato di predefinito.`);
    345       }
    346     }
    347   }
    348 
    349   const newEnte = {
    350     id: id || (enti.length ? Math.max(...enti.map(e => e.id)) + 1 : 1),
    351     denominazione: document.getElementById('denominazione').value,
    352     codice_istat: document.getElementById('codice_istat').value,
    353     capoluogo: document.getElementById('capoluogo').value,
    354     indirizzo: document.getElementById('indirizzo').value,
    355     centralino: document.getElementById('centralino').value,
    356     abitanti: document.getElementById('abitanti').value,
    357     fax: document.getElementById('fax').value,
    358     email: document.getElementById('email').value,
    359     cap: document.getElementById('cap').value,
    360     stemma: document.getElementById('anteprimaStemma').src || '',
    361     predefinito: predefinito
    362   };
    363 
    364   if (predefinito) {
    365     enti.forEach(e => e.predefinito = false);
    366   }
    367 
    368   if (isModifica) {
    369     const index = enti.findIndex(e => e.id === id);
    370     enti[index] = newEnte;
    371     alert(`Ente "${newEnte.denominazione}" modificato con successo.`);
    372   } else {
    373     enti.push(newEnte);
    374     alert(`Ente "${newEnte.denominazione}" aggiunto con successo.`);
    375   }
    376 
    377   enteForm.reset();
    378   document.getElementById('anteprimaStemma').style.display = 'none';
    379   formTitle.innerText = 'Aggiungi Ente';
    380   submitBtn.innerText = 'Aggiungi ente';
    381 
    382   renderEnti();
    383 
    384   predefinitoAttuale = enti.find(e => e.predefinito);
    385 
    386   formMainTitle.scrollIntoView({behavior: 'smooth'});
    387 });
    388 
    389 document.getElementById('cancelEdit').addEventListener('click', () => {
    390   enteForm.reset();
    391   document.getElementById('anteprimaStemma').style.display = 'none';
    392   formTitle.innerText = 'Aggiungi Ente';
    393   submitBtn.innerText = 'Aggiungi ente';
    394 });
    395 
    396 renderEnti();
    397 
     176    xmlhttp.open("GET","../principale.php?funzione=salvaComune&descrizione="+denominazione+"&indirizzo="+indirizzo+"&fascia="+abitanti+"&id_comune="+codiceIstat+"&capoluogo="+capoluogo+"&op=cancella",true);
     177    xmlhttp.send();
     178
     179//      document.getElementById("riga"+index).style.display = 'none'
     180  }
     181   function editEnte(index) {
     182        document.getElementById ( "denominazione" ).value = document.getElementById ( "denominazione"+index ).innerText
     183        document.getElementById ( "indirizzo" ).value = document.getElementById ( "indirizzo"+index ).innerText
     184        document.getElementById ( "cap" ).value = document.getElementById ( "cap"+index ).value
     185        document.getElementById ( "email" ).value = document.getElementById ( "email"+index ).value
     186        document.getElementById ( "centralino" ).value = document.getElementById ( "centralino"+index ).value
     187        document.getElementById ( "fax" ).value = document.getElementById ( "fax"+index ).value
     188        document.getElementById ( "abitanti" ).selectedIndex = document.getElementById ( "abitanti"+index ).value
     189        document.getElementById ( "codice_istat" ).value = document.getElementById ( "codiceIstat"+index ).innerText
     190        if( document.getElementById ( "capoluogo"+index ).value == 1 )
     191                document.getElementById ( "capoluogo" ).selectedIndex = 1
     192        else
     193                document.getElementById ( "capoluogo" ).selectedIndex = 2
     194        document.getElementById ( "submitBtn" ).textContent = "Salva modifiche"
     195//      document.getElementById("riga"+index).style.display = 'none'
     196  }
     197 
     198  function nascondiElemento() {
     199  const elemento = document.getElementById('risultato');
     200  if (elemento) {
     201    // Imposta la proprietà CSS display su 'none'
     202    elemento.style.display = 'none';
     203  }
     204  }
    398205</script>
  • admin/modules/salva_colore_tema.php

    r9996219 r31108d4  
    1515#if (isset($_GET['scrutinata'])) {$scrutinata=$_GET['scrutinata']==false ? false : true;}else $scrutinata=false;
    1616
    17 global $prefix,$fileout,$aid;
     17global $prefix,$fileout,$aid,$id_cons;
    1818       
    1919        $salvato=1;
     
    3333                $orariol=date(' H:i:s');
    3434                $riga=addslashes($sql);
    35                 $sqlog="insert into ".$prefix."_ele_log values('','','$aid','$datal','$orariol','','$riga','".$prefix."_config - nuovo colore tema: $colore')";
     35                $sqlog="insert into ".$prefix."_ele_log values('$id_cons','0','$aid','$datal','$orariol','','$riga','".$prefix."_config')";
    3636                $res = $dbi->prepare("$sqlog");
    3737                $res->execute();
  • admin/modules/salva_config_sito.php

    r9996219 r31108d4  
    3838                $salvato=0;
    3939        }                 
    40         if($salvato){
    41                 echo "<br><button id=\"bottoneStato\" style=\"background-color:aquamarine;\" onfocusout=\"document.getElementById('bottoneStato').style.display='none'\" > Dati salvati correttamente </button>";
    42         }else{
    43                 echo "Errore di inserimento dati";
    44         }
     40if($salvato){
     41        echo "<br><button id=\"bottoneStato\" style=\"background-color:aquamarine;\" onfocusout=\"document.getElementById('bottoneStato').style.display='none'\" > Dati salvati correttamente </button>";
     42}else{
     43        echo "Errore di inserimento dati";
     44}
    4545
    4646?>
  • admin/modules/salva_orario_affluenza.php

    r9996219 r31108d4  
    6262                $res = $dbi->prepare("$sqlog");
    6363                $res->execute();
    64                 include('modules/elenco_rilevazioni.php');
    6564#               echo "Nuovo orario di rilevazione inserito";
    6665        }else{
    67                 echo "Errore, nessun cambiamento dell'impostazione del colore";
     66                echo "<tr><td colspan=\"3\">Errore, impossibile salvare i dati</td></tr>";
    6867        }
     68        include('modules/elenco_rilevazioni.php');
    6969
    7070?>
  • admin/principale.php

    r9996219 r31108d4  
    9696                include("modules/salva_config_sito.php");
    9797                break;
     98        case 'salvaComune':
     99                include("modules/salva_comune.php");
     100                break;
    98101        case 101:
    99102                include("ws/funzioni/salvaModifiche.php");
Note: See TracChangeset for help on using the changeset viewer.