MediaWiki:SmoothiesDebtCalculator.js: Difference between revisions

From Roat Pkz
Jump to navigation Jump to search
No edit summary
No edit summary
Line 13: Line 13:
         return Number(value.slice(0,-1)) * 1000000000;
         return Number(value.slice(0,-1)) * 1000000000;
     }
     }


     if (value.endsWith("m")) {
     if (value.endsWith("m")) {
         return Number(value.slice(0,-1)) * 1000000;
         return Number(value.slice(0,-1)) * 1000000;
     }
     }


     if (value.endsWith("k")) {
     if (value.endsWith("k")) {
         return Number(value.slice(0,-1)) * 1000;
         return Number(value.slice(0,-1)) * 1000;
     }
     }


     return Number(value) || 0;
     return Number(value) || 0;
}
}


Line 63: Line 67:


}
}




Line 69: Line 74:




let app = document.getElementById(
    let pkp = document.getElementById("pkp-inputs");
     "debt-calculator-app"
     let dp = document.getElementById("dp-inputs");
);
    let credits = document.getElementById("credits-inputs");




if(!app) return;
    if(!pkp || !dp || !credits) {
        return;
    }






app.innerHTML = `
    pkp.innerHTML = `


<div class="debt-items">
    <label>Amount</label>
    <input id="pkp-amount" value="0">


    `;


<div class="debt-item">


<h3>PKP</h3>


<label>Amount</label>
    dp.innerHTML = `
<input id="pkp-amount" value="0">


</div>
    <label>Trade Price (PKP)</label>
    <input id="dp-price" value="0">


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


    `;


<div class="debt-item">


<h3>DP</h3>


<label>Trade Price (PKP)</label>
    credits.innerHTML = `
<input id="dp-price" value="0">


<label>Amount</label>
    <label>Trade Price (PKP)</label>
<input id="dp-amount" value="0">
    <input id="credits-price" value="0">


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


    `;




<div class="debt-item">


<h3>Credits</h3>
    document
    .querySelectorAll(".debt-item input")
    .forEach(function(input){


<label>Trade Price (PKP)</label>
        input.addEventListener(
<input id="credits-price" value="0">
            "input",
 
            calculateDebt
<label>Amount</label>
        );
<input id="credits-amount" value="0">
 
</div>
 
 
</div>
 
`;
 
 
 
document
.querySelectorAll("#debt-calculator-app input")
.forEach(function(input){
 
    input.addEventListener(
        "input",
        calculateDebt
    );


});
    });





Revision as of 11:01, 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 pkp = document.getElementById("pkp-inputs");
    let dp = document.getElementById("dp-inputs");
    let credits = document.getElementById("credits-inputs");


    if(!pkp || !dp || !credits) {
        return;
    }



    pkp.innerHTML = `

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

    `;



    dp.innerHTML = `

    <label>Trade Price (PKP)</label>
    <input id="dp-price" value="0">

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

    `;



    credits.innerHTML = `

    <label>Trade Price (PKP)</label>
    <input id="credits-price" value="0">

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

    `;



    document
    .querySelectorAll(".debt-item input")
    .forEach(function(input){

        input.addEventListener(
            "input",
            calculateDebt
        );

    });


}



mw.hook("wikipage.content").add(function(){

    createCalculator();

});


})();