MediaWiki:SmoothiesDebtCalculator.js: Difference between revisions

From Roat Pkz
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
console.log("Smoothies calculator loaded");
(function () {
(function () {


Line 8: Line 7:
         .replace(/,/g,"")
         .replace(/,/g,"")
         .trim();
         .trim();


     if (value.endsWith("b")) {
     if (value.endsWith("b")) {
Line 24: Line 22:
     return Number(value) || 0;
     return Number(value) || 0;
}
}




Line 30: Line 27:


     let pkp =
     let pkp =
         parseAmount(
         parseAmount(document.getElementById("pkp-amount").value);
            document.getElementById("pkp-amount").value
        );




     let dp =
     let dp =
         parseAmount(
         parseAmount(document.getElementById("dp-price").value) *
            document.getElementById("dp-price").value
         parseAmount(document.getElementById("dp-amount").value);
        )
        *
         parseAmount(
            document.getElementById("dp-amount").value
        );




     let credits =
     let credits =
         parseAmount(
         parseAmount(document.getElementById("credits-price").value) *
            document.getElementById("credits-price").value
         parseAmount(document.getElementById("credits-amount").value);
        )
        *
         parseAmount(
            document.getElementById("credits-amount").value
        );




Line 60: Line 45:
     document.getElementById("total").innerHTML =
     document.getElementById("total").innerHTML =
         Math.floor(total).toLocaleString() + " PKP";
         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">
<img src="/images/PKP.png">
<h3>PKP</h3>
<label>Amount</label>
<input id="pkp-amount" value="0">
</div>
<div class="debt-item">
<img src="/images/DP.png">
<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">
<img src="/images/Credits.png">
<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);


document.addEventListener("DOMContentLoaded", function(){
});


    let inputs = document.querySelectorAll(
        ".debt-item input"
    );


}


    inputs.forEach(function(input){


        input.addEventListener(
            "input",
            calculateDebt
        );


    });
mw.hook("wikipage.content").add(function(){
 
createCalculator();


});
});


console.log("Inputs found:", document.querySelectorAll(".debt-item input").length);
 
})();
})();

Revision as of 10:56, 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">

<img src="/images/PKP.png">

<h3>PKP</h3>

<label>Amount</label>
<input id="pkp-amount" value="0">

</div>



<div class="debt-item">

<img src="/images/DP.png">

<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">

<img src="/images/Credits.png">

<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();

});


})();