78 lines
1.9 KiB
JavaScript
78 lines
1.9 KiB
JavaScript
(function() {
|
|
flatpickr('[type="date"]', {
|
|
altInput: true,
|
|
altFormat: "F j, Y at H:i",
|
|
dateFormat: "U",
|
|
enableTime: true,
|
|
});
|
|
})();
|
|
|
|
function ajax(method, url, callback) {
|
|
let xmlhttp = new XMLHttpRequest();
|
|
xmlhttp.onreadystatechange = function() {
|
|
if (xmlhttp.readyState === XMLHttpRequest.DONE) { // XMLHttpRequest.DONE == 4
|
|
callback(xmlhttp.status, xmlhttp.responseText);
|
|
}
|
|
};
|
|
xmlhttp.open(method, url, true);
|
|
xmlhttp.send();
|
|
}
|
|
|
|
function formURI(formData) {
|
|
let pairs = [];
|
|
for (let data of formData.entries()) {
|
|
pairs.push(encodeURIComponent(data[0]) + '=' + encodeURIComponent(data[1]))
|
|
}
|
|
return pairs.join("&").replace(/%20/g, '+');
|
|
}
|
|
|
|
function elementHTML(id, html) {
|
|
document.getElementById(id).innerHTML = html
|
|
}
|
|
|
|
function downloadCSV(csv, filename) {
|
|
let csvFile;
|
|
let downloadLink;
|
|
|
|
// CSV file
|
|
csvFile = new Blob([csv], {type: "text/csv"});
|
|
|
|
// Download link
|
|
downloadLink = document.createElement("a");
|
|
|
|
// File name
|
|
downloadLink.download = filename;
|
|
|
|
// Create a link to the file
|
|
downloadLink.href = window.URL.createObjectURL(csvFile);
|
|
|
|
// Hide download link
|
|
downloadLink.style.display = "none";
|
|
|
|
// Add the link to DOM
|
|
document.body.appendChild(downloadLink);
|
|
|
|
// Click download link
|
|
downloadLink.click();
|
|
}
|
|
|
|
function exportTableToCSV(filename, elementId) {
|
|
let csv = [];
|
|
let selector = "table tr";
|
|
if (elementId !== "") {
|
|
selector = "#" + elementId + " tr"
|
|
}
|
|
let rows = document.querySelectorAll(selector);
|
|
|
|
for (let i = 0; i < rows.length; i++) {
|
|
let row = [], cols = rows[i].querySelectorAll("td, th");
|
|
|
|
for (let j = 0; j < cols.length; j++)
|
|
row.push('"' + cols[j].innerText + '"');
|
|
|
|
csv.push(row.join(","));
|
|
}
|
|
|
|
// Download CSV file
|
|
downloadCSV(csv.join("\n"), filename);
|
|
} |