function loadUsersList() { ShowPageLoader(); var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { document.querySelector("#users_list_content").innerHTML = this.responseText; HidePageLoader(); $(document).ready( function () { new DataTable('#users_list_table', { paging: false, scrollCollapse: true, scrollY: '500px', layout: { topStart: { buttons: [ { extend: 'colvis', postfixButtons: ['colvisRestore'], popoverTitle: 'Visibilità colonne' }, { extend: 'print', split: ['print','excel','pdf', 'csv'] }, { text: 'Nuovo utente', action: function (e, dt, node, config) { NewUser(); } } ] } }, language: { emptyTable: "Nessun dato presente nella tabella", search: "Cerca:", infoEmpty: "Visualizzati da 0 a 0 di 0 risultati", info: "Visualizzati da _START_ a _END_ di _TOTAL_ risultati", buttons: { print: "Stampa", colvis: "Visualizza", colvisRestore: "Ripristina visualizzazione" } }, order: { idx: 1, dir: 'asc' } }); } ); } }; xmlhttp.open("GET", "public/users/users_list.php"); xmlhttp.send(); } function EditUser(user_id) { document.getElementById("open_edit_user").click(); var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { document.querySelector("#edit_user_content").innerHTML = this.responseText; } }; xmlhttp.open("GET", "public/users/edit_user_content.php?user_id="+user_id); xmlhttp.send(); } function sendInvite(user_id) { Swal.fire({ title: "Inviare invito?", text: "L'utente riceverà una mail con i dettagli della registrazione e i link di accesso", icon: "warning", showCancelButton: true, confirmButtonColor: "#47404f", cancelButtonColor: "#607d8b", confirmButtonText: "Sì, invia!", cancelButtonText: "Annulla" }).then((result) => { if (result.isConfirmed) { ShowPageLoader(); $.ajax({ type: "POST", url: "php/users/send_invite.php", data: { user_id: user_id }, success: function (res) { if (res === 'error') { ErrorAlert('Errore: ' + res); } else if (res === 'ok') { SuccessAlert('Invito inviato con successo'); } HidePageLoader(); } }); } }); } function deleteUser(user_id) { Swal.fire({ title: "Eliminare l'utente?", text: "L'utente sarà eliminato definitivamente solo se non ha nessuna timbratura, permesso, trasferta associate. In caso contrario è possibile solamente disabilitarlo.", icon: "warning", showCancelButton: true, confirmButtonColor: "#47404f", cancelButtonColor: "#607d8b", confirmButtonText: "Sì, elimina!", cancelButtonText: "Annulla" }).then((result) => { if (result.isConfirmed) { ShowPageLoader(); $.ajax({ type: "POST", url: "php/users/delete_user.php", data: { user_id: user_id }, success: function (res) { if (res === 'error') { ErrorAlert('Errore: ' + res); } else if (res === 'ok') { SuccessAlert('Utente eliminato con successo'); document.getElementById("close_user_details").click(); loadUsersList(); } else if (res === 'presence') { ErrorAlert("L'Utente ha almeno una timbratura, permesso o trasferta associate e non può essere eliminato"); } HidePageLoader(); } }); } }); } function NewUser() { document.getElementById("open_new_user").click(); var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { document.querySelector("#new_user_content").innerHTML = this.responseText; } }; xmlhttp.open("GET", "public/users/new_user_content.php"); xmlhttp.send(); } function UserCalendar(user_id) { ShowPageLoader(); document.getElementById("open_user_calendar").click(); setTimeout(() => { loadUserCalendar(user_id); HidePageLoader(); }, 1000); } function loadUserCalendar(user_id) { var xmlhttp = new XMLHttpRequest(); xmlhttp.onreadystatechange = function () { if (this.readyState == 4 && this.status == 200) { document.querySelector("#user_calendar_content").innerHTML = this.responseText; var calendarEl = document.getElementById('calendar'); var calendar = new FullCalendar.Calendar(calendarEl, { initialView: 'dayGridMonth', locale: 'it', editable: false, height: 700, displayEventTime: true, forceEventDuration: true, defaultTimedEventDuration: '00:01', firstDay: 1, headerToolbar: { left: 'prev,next today', center: 'title', right: 'dayGridMonth,timeGridWeek,timeGridDay,listMonth' }, buttonText: { prev: 'Prec', next: 'Succ', today: 'Oggi', year: 'Anno', month: 'Mese', week: 'Settimana', day: 'Giorno', list: 'Agenda', }, allDayText: 'Tutto il giorno', moreLinkText(n) { return '+altri ' + n; }, events: "php/users/get_calendar_events.php?user_id="+user_id, eventDisplay: 'block', /* eventColor: '#378006', */ displayEventTime: true, eventTimeFormat: { hour: '2-digit', minute: '2-digit', hour12: false }, noEventsText: 'Non ci sono eventi da visualizzare', eventRender: function (event, element, view) { if (event.allDay === 'true') { event.allDay = true; } else { event.allDay = false; } }, selectable: false, }); calendar.render(); //calendar.changeView('timeGridWeek'); } }; xmlhttp.open("GET", "public/users/user_calendar_content.php?user_id="+user_id); xmlhttp.send(); } function saveUser(user_id) { ShowPageLoader(); var name = document.getElementById("user_name").value; var surname = document.getElementById("user_surname").value; var cf = document.getElementById("user_cf").value; var reg_num = document.getElementById("user_reg_num").value; var user_qual = document.getElementById("user_qual").value; var user_qual_2 = document.getElementById("user_qual_2").value; var email = document.getElementById("user_email").value; var role = document.getElementById("user_role").value; var office = document.getElementById("user_office").value; var gender_male = document.getElementById("user_gender_male").checked; var gender_female = document.getElementById("user_gender_female").checked; var badge = document.getElementById("user_badge").value; var enable = document.getElementById("user_enable").checked; var bacheca_notifies = document.getElementById("user_bacheca_notifies").checked; var attendance = document.getElementById("user_attendance").checked; if(name == "") { ErrorAlert('Codice fiscale è obbligatorio!'); } if(surname == "") { ErrorAlert('Cognome è obbligatorio!'); } if(reg_num == "") { ErrorAlert('Matricola è obbligatorio!'); } if(cf == "") { ErrorAlert('Codice fiscale è obbligatorio!'); } if(email == "") { ErrorAlert('Email è obbligatoria!'); } if(role == "") { ErrorAlert('Ruolo è obbligatorio!'); } $.ajax({ type: "POST", url: "php/users/edit_user.php", data: { user_id:user_id, name:name, surname:surname, cf:cf, reg_num: reg_num, user_qual: user_qual, user_qual_2: user_qual_2, email:email, role:role, office:office, gender_male:gender_male, gender_female:gender_female, badge:badge, enable:enable, bacheca_notifies:bacheca_notifies, attendance:attendance }, success: function (res) { if (res === 'error') { ErrorAlert('Errore: ' + res); } else if (res === 'ok') { SuccessAlert('Utente modificato'); loadUsersList(); document.getElementById("close_user_details").click(); } HidePageLoader(); } }); } function createUser() { ShowPageLoader(); var name = document.getElementById("user_name").value; var surname = document.getElementById("user_surname").value; var cf = document.getElementById("user_cf").value; var reg_num = document.getElementById("user_reg_num").value; var user_qual = document.getElementById("user_qual").value; var user_qual_2 = document.getElementById("user_qual_2").value; var email = document.getElementById("user_email").value; var role = document.getElementById("user_role").value; var office = document.getElementById("user_office").value; var gender_male = document.getElementById("user_gender_male").checked; var gender_female = document.getElementById("user_gender_female").checked; var badge = document.getElementById("user_badge").value; var enable = document.getElementById("user_enable").checked; var invite = document.getElementById("user_invite").checked; var bacheca_notifies = document.getElementById("user_bacheca_notifies").checked; var attendance = document.getElementById("user_attendance").checked; if(name == "") { ErrorAlert('Codice fiscale è obbligatorio!'); } if(surname == "") { ErrorAlert('Cognome è obbligatorio!'); } if(reg_num == "") { ErrorAlert('Matricola è obbligatorio!'); } if(cf == "") { ErrorAlert('Codice fiscale è obbligatorio!'); } if(email == "") { ErrorAlert('Email è obbligatoria!'); } if(role == "") { ErrorAlert('Ruolo è obbligatorio!'); } $.ajax({ type: "POST", url: "php/users/create_user.php", data: { name:name, surname:surname, cf:cf, reg_num: reg_num, user_qual: user_qual, user_qual_2: user_qual_2, email:email, role:role, office:office, gender_male:gender_male, gender_female:gender_female, badge:badge, enable:enable, invite: invite, bacheca_notifies: bacheca_notifies, attendance:attendance }, success: function (res) { if (res === 'error') { ErrorAlert('Errore: ' + res); } else if (res === 'ok') { SuccessAlert('Utente creato'); loadUsersList(); document.getElementById("close_new_user").click(); } HidePageLoader(); } }); }