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