Untitled
unknown
plain_text
2 months ago
4.8 kB
1
Indexable
javascript chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => { let url1 = tabs[0].url; function parseCsv(csvString) { return csvString.trim().split('\r\n').map(line => line.match(/(".*?"|[^",]+)(?=\s*,|\s*$)/g)); } if (url1.includes("projectcommercials.ultimatix.net/")) { let data = []; const logs = []; // Array to hold log entries for CSV document.getElementById('csvFile').addEventListener("change", function (e) { const csvFile = e.target.files[0]; if (!csvFile) return "No file selected"; const reader = new FileReader(); reader.onload = function (e) { const csvData = e.target.result; const parsedData = parseCsv(csvData); console.log(parsedData, "parsed"); data = parsedData; document.getElementById("addMilestoneBtn").style.display = "block"; }; reader.readAsText(csvFile); }); function formatDate(inputDate) { const dateObject = new Date(inputDate); if (!isNaN(dateObject.getTime())) { const day = String(dateObject.getDate()).padStart(2, "0"); const month = String(dateObject.getMonth() + 1).padStart(2, "0"); const year = dateObject.getFullYear(); return `${day}/${month}/${year}`; } const [day, month, year] = inputDate.split("/"); const padDay = String(day).padStart(2, "0"); const padMonth = String(month).padStart(2, "0"); const padYear = year; return `${padDay}/${padMonth}/${padYear}`; } function pipeFormatDate(Date) { let date = []; let dateArray = Date.split("|").map((value) => value.trim()); if (dateArray.length > 0) { dateArray.forEach((items) => { date.push(formatDate(items)); }); } else { date = Date.split("|").map((value) => value.trim()); } return date; } var T2 = document.getElementById("myProgress"); var T3 = document.getElementById("barText"); var T4 = document.getElementById("progressbar"); document.getElementById("addMilestoneBtn").addEventListener('click', async function () { if (confirm("Please Confirm to Proceed") == true) { T2.style.display = "block"; T3.style.display = "block"; T4.style.display = "block"; const csvHeader = data[0]; const csvHeaderLength = csvHeader.length; const headerlessCsvData = data.slice(1); const totalRecords = headerlessCsvData.length; for (let record = 0; record < totalRecords; record++) { let row = headerlessCsvData[record]; try { if (row && row.length === csvHeaderLength) { const wonNumber = row[0]; // Other variables and API interactions... async function addMilestone() { // Code for adding milestones as before... // On success, log success: logs.push({ wonNumber, status: "Success" }); } await addMilestone(); } else { throw new Error("Items in row are missing"); } updateProgressBar(record + 1, totalRecords); } catch (e) { console.log("error", e); logs.push({ wonNumber: row[0], status: "Failure" }); // Log failure updateProgressBar(record + 1, totalRecords); } } // Function to save logs as CSV function saveLogsAsCsv(logs) { const csvContent = "WON Number,Status\n" + logs.map(log => `${log.wonNumber},${log.status}`).join("\n"); const blob = new Blob([csvContent], { type: 'text/csv;charset=utf-8;' }); const link = document.createElement("a"); link.href = URL.createObjectURL(blob); link.setAttribute("download", "milestone_logs.csv"); document.body.appendChild(link); link.click(); document.body.removeChild(link); } // Save logs when process is finished saveLogsAsCsv(logs); } }); function updateProgressBar(currentRecord, totalRecords) { const progressPercentage = (currentRecord / totalRecords) * 100; const elem = document.getElementById("myProgress"); const ll = document.getElementById("barText"); elem.style.display = "block"; elem.style.width = progressPercentage + "%"; ll.innerHTML = Math.floor(progressPercentage) + "% Adding"; if (progressPercentage >= 100) { ll.innerHTML = "Milestones added successfully"; } } } else { window.location.replace("alert.html"); } });
Editor is loading...
Leave a Comment