Jump to content

MediaWiki:Asset.js: Difference between revisions

From Costa Sano MediaWiki
Created page with "$(document).ready(function () { function f(name) { return $("[name='Asset[" + name + "]']"); } function generate() { const ch = f("Chapter").val(); const pl = f("Place").val(); const org = f("Organisation").val(); if (!ch || (pl && org) || (!pl && !org)) return; new mw.Api().get({ action: "scribunto-console", title: "Module:AssetID", question: "return requi..."
 
No edit summary
 
Line 1: Line 1:
$(document).ready(function () {
$(document).ready(function () {


     function f(name) {
     function field(name) {
         return $("[name='Asset[" + name + "]']");
         return $("[name='Asset[" + name + "]']");
     }
     }


     function generate() {
     function generateIdentifier() {
         const ch = f("Chapter").val();
         const chapter = field("Chapter").val();
         const pl = f("Place").val();
         const place = field("Place").val();
         const org = f("Organisation").val();
         const org = field("Organisation").val();


         if (!ch || (pl && org) || (!pl && !org)) return;
         if (!chapter) return;
        if (place && org) {
            alert("Select either a Place OR an Organisation.");
            return;
        }
        if (!place && !org) return;


         new mw.Api().get({
         new mw.Api().get({
Line 17: Line 22:
             question:
             question:
                 "return require('Module:AssetID').generate{" +
                 "return require('Module:AssetID').generate{" +
                 "Chapter='" + ch + "'," +
                 "Chapter='" + chapter + "'," +
                 "Place='" + pl + "'," +
                 "Place='" + place + "'," +
                 "Organisation='" + org + "'}"
                 "Organisation='" + org + "'}"
         }).done(function (data) {
         }).done(function (data) {
            const r = JSON.parse(data.return);
            if (r.error) { alert(r.error); return; }


             f("Label").val(r.identifier);
             const result = JSON.parse(data.return);
             f("Sequence").val(r.sequence);
            if (result.error) {
             $("input[name='pfFormPageName']").val(r.identifier);
                alert(result.error);
                return;
            }
 
            // Store hidden values
            field("Label").val(result.identifier);
             field("Sequence").val(result.sequence);
 
            // Display values
            $("#asset-identifier-display").text(result.identifier);
            $("#asset-sequence-display").text(result.sequence);
 
            // Override page name
             $("input[name='pfFormPageName']").val(result.identifier);
         });
         });
     }
     }


     f("Chapter").change(generate);
     field("Chapter").change(generateIdentifier);
     f("Place").change(generate);
     field("Place").change(generateIdentifier);
     f("Organisation").change(generate);
     field("Organisation").change(generateIdentifier);


     $("input[type='file']").on("change", function () {
     $("input[type='file']").on("change", function () {
         if (this.files[0]) {
         if (!this.files[0]) return;
            f("OriginalFilename").val(this.files[0].name);
 
         }
        const name = this.files[0].name;
        field("OriginalFilename").val(name);
         $("#asset-originalfilename-display").text(name);
     });
     });
});
});

Latest revision as of 16:27, 18 February 2026

$(document).ready(function () {

    function field(name) {
        return $("[name='Asset[" + name + "]']");
    }

    function generateIdentifier() {
        const chapter = field("Chapter").val();
        const place = field("Place").val();
        const org = field("Organisation").val();

        if (!chapter) return;
        if (place && org) {
            alert("Select either a Place OR an Organisation.");
            return;
        }
        if (!place && !org) return;

        new mw.Api().get({
            action: "scribunto-console",
            title: "Module:AssetID",
            question:
                "return require('Module:AssetID').generate{" +
                "Chapter='" + chapter + "'," +
                "Place='" + place + "'," +
                "Organisation='" + org + "'}"
        }).done(function (data) {

            const result = JSON.parse(data.return);
            if (result.error) {
                alert(result.error);
                return;
            }

            // Store hidden values
            field("Label").val(result.identifier);
            field("Sequence").val(result.sequence);

            // Display values
            $("#asset-identifier-display").text(result.identifier);
            $("#asset-sequence-display").text(result.sequence);

            // Override page name
            $("input[name='pfFormPageName']").val(result.identifier);
        });
    }

    field("Chapter").change(generateIdentifier);
    field("Place").change(generateIdentifier);
    field("Organisation").change(generateIdentifier);

    $("input[type='file']").on("change", function () {
        if (!this.files[0]) return;

        const name = this.files[0].name;
        field("OriginalFilename").val(name);
        $("#asset-originalfilename-display").text(name);
    });
});