jQuery = $; window.$ = window.jQuery = $; import 'bootstrap'; import 'bootstrap/dist/css/bootstrap.min.css'; import './font-awesome.scss'; import '../node_modules/bootstrap-cookie-alert/cookiealert.css'; // TODO: migrate to Bootstrap Italia import 'bootstrap-datepicker'; import '../node_modules/bootstrap-toggle/css/bootstrap-toggle.css'; import '../node_modules/bootstrap-toggle/js/bootstrap-toggle.js'; import '../node_modules/bootstrap-datepicker/dist/css/bootstrap-datepicker3.css'; import 'time-input-polyfill/auto'; $( document ).ajaxError(function(event, xhr, settings, error) { console.error("Error requesting content: "+error+" - status code "+xhr.status); console.log(event); console.log(xhr); console.log(settings); }); $( document ).ready(function() { // From https://github.com/Wruczek/Bootstrap-Cookie-Alert/blob/gh-pages/cookiealert.js var cookieAlert = document.querySelector(".cookiealert"); var acceptCookies = document.querySelector(".acceptcookies"); if (!cookieAlert) { return; } cookieAlert.offsetHeight; // Force browser to trigger reflow (https://stackoverflow.com/a/39451131) // Show the alert if we cant find the "acceptCookies" cookie if (!getCookie("acceptCookies")) { cookieAlert.classList.add("show"); } // When clicking on the agree button, create a 1 year // cookie to remember user's choice and close the banner acceptCookies.addEventListener("click", function () { setCookie("acceptCookies", true, 365); cookieAlert.classList.remove("show"); // dispatch the accept event window.dispatchEvent(new Event("cookieAlertAccept")) }); // Cookie functions from w3schools function setCookie(cname, cvalue, exdays) { var d = new Date(); d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000)); var expires = "expires=" + d.toUTCString(); document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/"; } function getCookie(cname) { var name = cname + "="; var decodedCookie = decodeURIComponent(document.cookie); var ca = decodedCookie.split(';'); for (var i = 0; i < ca.length; i++) { var c = ca[i]; while (c.charAt(0) === ' ') { c = c.substring(1); } if (c.indexOf(name) === 0) { return c.substring(name.length, c.length); } } return ""; } }); if ('serviceWorker' in navigator) { window.addEventListener('load', () => { navigator.serviceWorker.register('/sw.js').then(registration => { console.log('SW registered: ', registration); }).catch(registrationError => { console.log('SW registration failed: ', registrationError); }); }); } function fillTable(data){ $("#table_body").empty(); $.each(data, function(num, item) { var row = document.createElement("tr"); $.each(item, function(num, i) { if(i !== null){ var cell = document.createElement("td"); cell.innerHTML = i; row.appendChild(cell); } }); document.getElementById("table_body").appendChild(row); }); } function loadTable(table_page){ $.getJSON( "resources/ajax/ajax_"+table_page+".php", function( data, status, xhr ) { fillTable(data); caches.open('tables-1').then((cache) => { cache.put('/table_'+table_page+'.json', new Response(xhr.responseText)) }); }).fail(function() { caches.open('tables-1').then(cache => { cache.match("/table_"+table_page+".json").then(response => { response.json().then(data => { fillTable(data); console.log("Table loaded from cache"); }); }); }); }); } window.fillTable = fillTable; window.loadTable = loadTable;