Changeset a497294
- Timestamp:
- Nov 10, 2025, 10:46:04 AM (4 weeks ago)
- Branches:
- main
- Children:
- b4e4945
- Parents:
- e200df2 (diff), 31108d4 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- admin
- Files:
-
- 2 added
- 5 edited
-
modules/elenco_comuni.php (added)
-
modules/gestione_enti_comuni.php (modified) (5 diffs)
-
modules/salva_colore_tema.php (modified) (1 diff)
-
modules/salva_comune.php (added)
-
modules/salva_config_sito.php (modified) (1 diff)
-
modules/salva_orario_affluenza.php (modified) (1 diff)
-
principale.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
admin/modules/gestione_enti_comuni.php
re200df2 ra497294 5 5 $row=configurazione(); 6 6 $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 123 8 ?> 124 9 … … 133 18 </div> 134 19 <div class="card-body"> 135 <form id="enteForm" enctype="multipart/form-data" >20 <form id="enteForm" enctype="multipart/form-data" onsubmit="aggiungiComune(event)"> 136 21 <input type="hidden" name="ente_id" id="ente_id"> 137 22 … … 212 97 </div> 213 98 </div> 214 99 215 100 <!-- LISTA --> 216 101 <div class="card"> … … 232 117 </tr> 233 118 </thead> 234 <tbody id="enteRows"></tbody> 119 <tbody id="risultato"> 120 <?php include('elenco_comuni.php'); ?> 121 </tbody> 235 122 </table> 236 123 </div> … … 240 127 241 128 <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 } 310 158 } 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+"¢ralino="+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 } 314 175 } 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 } 398 205 </script> -
admin/modules/salva_colore_tema.php
re200df2 ra497294 33 33 $orariol=date(' H:i:s'); 34 34 $riga=addslashes($sql); 35 $sqlog="insert into ".$prefix."_ele_log values('$id_cons',' ','$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')"; 36 36 $res = $dbi->prepare("$sqlog"); 37 37 $res->execute(); -
admin/modules/salva_config_sito.php
re200df2 ra497294 38 38 $salvato=0; 39 39 } 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 }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 } 45 45 46 46 ?> -
admin/modules/salva_orario_affluenza.php
re200df2 ra497294 62 62 $res = $dbi->prepare("$sqlog"); 63 63 $res->execute(); 64 include('modules/elenco_rilevazioni.php');65 64 # echo "Nuovo orario di rilevazione inserito"; 66 65 }else{ 67 echo " Errore, nessun cambiamento dell'impostazione del colore";66 echo "<tr><td colspan=\"3\">Errore, impossibile salvare i dati</td></tr>"; 68 67 } 68 include('modules/elenco_rilevazioni.php'); 69 69 70 70 ?> -
admin/principale.php
re200df2 ra497294 96 96 include("modules/salva_config_sito.php"); 97 97 break; 98 case 'salvaComune': 99 include("modules/salva_comune.php"); 100 break; 98 101 case 101: 99 102 include("ws/funzioni/salvaModifiche.php");
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/eleonline4/chrome/common/trac_banner.png)