"+csvTxt.join('')+"";
function csvToFile(csv, filename) {
var blob = new Blob(csv, {type: "text/csv", endings: "native"}),
dl = document.createElement("A");
dl.href = URL.createObjectURL(blob);
dl.download = filename;
document.body.appendChild(dl); // FF doesn't support forced events unless element is part of the document
dl.click(); // so we make it so and click,
dl.remove(); // then immediately remove it
return dl;
}
};//}}} formatCSV
this.include = function(value) {
this.results.push(value);
};
this.collate = function(data, index) {//{{{
var r = {
totalPay: 0, totalBonus: 0, totalEntries: data.length,
totalSub: 0, totalApp: 0, totalRej: 0, totalPen: 0
};
for (var e of data) {
if (!r[e[index]]) {
r[e[index]] = [];
Object.defineProperty(r[e[index]], "pay", {value: 0, enumerable: false, configurable: true, writable: true});
}
r[e[index]].push(e);
if (index === "stats") {
r.totalSub += e.submitted;
r.totalApp += e.approved;
r.totalRej += e.rejected;
r.totalPen += e.pending;
r.totalPay += e.earnings;
} else {
r[e[index]].pay += (+_parseRewards(e.reward,"pay"));
r.totalPay += (+_parseRewards(e.reward,"pay"));
r.totalBonus += (+_parseRewards(e.reward,"bonus"));
}
}
return r;
};//}}} _collate
function _parseRewards(rewards,value) {//{{{
if (!isNaN(rewards)) {
if (value === "pay")
return Number(rewards).toFixed(2);
else
return "0.00";
} else {
if (value === "pay")
return Number(rewards.pay).toFixed(2);
else
return Number(rewards.bonus).toFixed(2);
}
} //}}} _parse
},//}}} databaseresult
DashboardUI = {//{{{
draw: function() {//{{{
var controlPanel = document.createElement("TABLE"),
insertionNode = document.querySelector(".footer_separator").previousSibling;
document.body.insertBefore(controlPanel, insertionNode);
controlPanel.width = "760";
controlPanel.align = "center";
controlPanel.id = "hdbControlPanel";
controlPanel.cellSpacing = "0";
controlPanel.cellPadding = "0";
controlPanel.innerHTML = 'Failed lines
' + '' + this.header.join(this.delimiter)+'
'; div.style.cssText = "z-index:5; position:fixed; top:50%;left:50%; padding:0.7%; width:650px; resize:both; overflow:auto;" + "background:rgba(204,204,204,0.88); box-shadow: 0px 0px 15px 2px #000; margin-right:-50%; transform:translate(-50%, -50%);"; divInner.style.cssText = "position:relative; max-height:350px; overflow:auto;"; for (var v of lr) { divInner.appendChild(document.createTextNode(v.reason)); var ta = divInner.appendChild(document.createElement('TEXTAREA')); ta.style.cssText = "resize:none; overflow:hidden; width:100%; display:block"; ta.onkeydown = kdFn; ta.onblur = blurFn; ta.value = v.record.join(this.delimiter); ta.style.height = ta.scrollHeight + 10 + 'px'; } buttons.style.cssText = "margin:1% auto; text-align:center;"; buttons.innerHTML = ' ' + ' ' + '