init
This commit is contained in:
53
scripts/tools.js
Normal file
53
scripts/tools.js
Normal file
@ -0,0 +1,53 @@
|
||||
function formatCSV(data) {
|
||||
return data.reduce(
|
||||
(csv, lineCells) => {
|
||||
let line = lineCells.reduce(
|
||||
(lineText, cell, idx) => {
|
||||
cell = '"' + cell.trim().replace(/"/g, '""') + '"';
|
||||
return lineText + cell + (idx == lineCells.length - 1 ? "" : ",")
|
||||
}, "");
|
||||
return csv + line + "\n";
|
||||
},
|
||||
""
|
||||
);
|
||||
}
|
||||
|
||||
function saveFile(data, mimeType, fileName) {
|
||||
fileName = fileName || document.title || "result";
|
||||
var blob;
|
||||
if (typeof window.Blob == "function") {
|
||||
blob = new Blob([data], {
|
||||
type: mimeType
|
||||
})
|
||||
} else {
|
||||
var BlobBuiler = window.BlobBuilder || window.MozBlobBuilder || window.WebKitBlobBuilder || window.MSBlobBuilder;
|
||||
var builer = new BlobBuiler();
|
||||
builer.append(data);
|
||||
blob = builer.getBlob(mimeType)
|
||||
}
|
||||
var URL = window.URL || window.webkitURL;
|
||||
var url = URL.createObjectURL(blob);
|
||||
var link = document.createElement("a");
|
||||
if ('download' in link) {
|
||||
link.style.visibility = "hidden";
|
||||
link.href = url;
|
||||
link.download = fileName;
|
||||
document.body.appendChild(link);
|
||||
var j = document.createEvent("MouseEvents");
|
||||
j.initEvent("click", true, true);
|
||||
link.dispatchEvent(j);
|
||||
document.body.removeChild(link)
|
||||
} else if (navigator.msSaveBlob) {
|
||||
navigator.msSaveBlob(blob, fileName)
|
||||
} else {
|
||||
location.href = url
|
||||
}
|
||||
}
|
||||
|
||||
function saveFileAsk(data) {
|
||||
let csv = formatCSV(data.slice(1, 50)).trim() || "- Empty -";
|
||||
if (confirm(`Click confirm to download if the sample data looks good (${data.length-1} items):\n\n${csv}`)) {
|
||||
csv = formatCSV(data);
|
||||
saveFile(csv, "text/csv");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user