Untitled
unknown
plain_text
9 months ago
4.8 kB
2
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