MediaWiki:SmoothiesDebtCalculator.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
(function () { | (function () { | ||
function parseAmount(value) { | function parseAmount(value) { | ||
| Line 7: | Line 8: | ||
.replace(/,/g,"") | .replace(/,/g,"") | ||
.trim(); | .trim(); | ||
if (value.endsWith("b")) { | if (value.endsWith("b")) { | ||
| Line 22: | Line 24: | ||
return Number(value) || 0; | return Number(value) || 0; | ||
} | } | ||
function calculateDebt() { | function calculateDebt() { | ||
let pkp = | let pkp = | ||
parseAmount(document.getElementById("pkp-amount").value); | parseAmount( | ||
document.getElementById("pkp-amount").value | |||
); | |||
let dp = | let dp = | ||
parseAmount(document.getElementById("dp-price").value) * | parseAmount( | ||
parseAmount(document.getElementById("dp-amount").value); | document.getElementById("dp-price").value | ||
) | |||
* | |||
parseAmount( | |||
document.getElementById("dp-amount").value | |||
); | |||
let credits = | let credits = | ||
parseAmount(document.getElementById("credits-price").value) * | parseAmount( | ||
parseAmount(document.getElementById("credits-amount").value); | document.getElementById("credits-price").value | ||
) | |||
* | |||
parseAmount( | |||
document.getElementById("credits-amount").value | |||
); | |||
| Line 45: | Line 61: | ||
document.getElementById("total").innerHTML = | document.getElementById("total").innerHTML = | ||
Math.floor(total).toLocaleString() + " PKP"; | Math.floor(total).toLocaleString() + " PKP"; | ||
} | } | ||
function createCalculator() { | function createCalculator(){ | ||
if (!app) return; | let app = document.getElementById( | ||
"debt-calculator-app" | |||
); | |||
if(!app) return; | |||
| Line 62: | Line 84: | ||
<div class="debt-item"> | <div class="debt-item"> | ||
<h3>PKP</h3> | <h3>PKP</h3> | ||
| Line 75: | Line 95: | ||
<div class="debt-item"> | <div class="debt-item"> | ||
<h3>DP</h3> | <h3>DP</h3> | ||
| Line 91: | Line 109: | ||
<div class="debt-item"> | <div class="debt-item"> | ||
<h3>Credits</h3> | <h3>Credits</h3> | ||
| Line 111: | Line 127: | ||
document.querySelectorAll("#debt-calculator-app input") | document | ||
.querySelectorAll("#debt-calculator-app input") | |||
.forEach(function(input){ | .forEach(function(input){ | ||
input.addEventListener("input", calculateDebt); | input.addEventListener( | ||
"input", | |||
calculateDebt | |||
); | |||
}); | }); | ||
| Line 125: | Line 145: | ||
mw.hook("wikipage.content").add(function(){ | mw.hook("wikipage.content").add(function(){ | ||
createCalculator(); | createCalculator(); | ||
}); | }); | ||
Revision as of 10:59, 18 July 2026
(function () {
function parseAmount(value) {
value = value
.toLowerCase()
.replace(/,/g,"")
.trim();
if (value.endsWith("b")) {
return Number(value.slice(0,-1)) * 1000000000;
}
if (value.endsWith("m")) {
return Number(value.slice(0,-1)) * 1000000;
}
if (value.endsWith("k")) {
return Number(value.slice(0,-1)) * 1000;
}
return Number(value) || 0;
}
function calculateDebt() {
let pkp =
parseAmount(
document.getElementById("pkp-amount").value
);
let dp =
parseAmount(
document.getElementById("dp-price").value
)
*
parseAmount(
document.getElementById("dp-amount").value
);
let credits =
parseAmount(
document.getElementById("credits-price").value
)
*
parseAmount(
document.getElementById("credits-amount").value
);
let total = pkp + dp + credits;
document.getElementById("total").innerHTML =
Math.floor(total).toLocaleString() + " PKP";
}
function createCalculator(){
let app = document.getElementById(
"debt-calculator-app"
);
if(!app) return;
app.innerHTML = `
<div class="debt-items">
<div class="debt-item">
<h3>PKP</h3>
<label>Amount</label>
<input id="pkp-amount" value="0">
</div>
<div class="debt-item">
<h3>DP</h3>
<label>Trade Price (PKP)</label>
<input id="dp-price" value="0">
<label>Amount</label>
<input id="dp-amount" value="0">
</div>
<div class="debt-item">
<h3>Credits</h3>
<label>Trade Price (PKP)</label>
<input id="credits-price" value="0">
<label>Amount</label>
<input id="credits-amount" value="0">
</div>
</div>
`;
document
.querySelectorAll("#debt-calculator-app input")
.forEach(function(input){
input.addEventListener(
"input",
calculateDebt
);
});
}
mw.hook("wikipage.content").add(function(){
createCalculator();
});
})();