MediaWiki:Tierlist.js: Difference between revisions

From Roat Pkz
Jump to navigation Jump to search
(Created page with "mw.loader.using('mediawiki.util').then(function () { console.log("✅ TierList.js loaded"); document.querySelectorAll(".tier-item").forEach(function (item) { item.draggable = true; item.addEventListener("dragstart", function (e) { e.dataTransfer.setData("text/plain", item.id); }); }); document.querySelectorAll(".tier-items").forEach(function (tier) { tier.addEventListener("dragover", function (e) {...")
 
No edit summary
 
(2 intermediate revisions by the same user not shown)
Line 3: Line 3:
     console.log("✅ TierList.js loaded");
     console.log("✅ TierList.js loaded");


     document.querySelectorAll(".tier-item").forEach(function (item) {
     function setupTierList() {


         item.draggable = true;
         let draggedItem = null;
 
 
        // Make items draggable
        document.querySelectorAll(".tier-item").forEach(function (item) {
 
            item.draggable = true;
 
            item.addEventListener("dragstart", function (e) {
 
                draggedItem = item;
 
                console.log("Dragging:", item.id);
 
                e.dataTransfer.effectAllowed = "move";
                e.dataTransfer.setData(
                    "text/plain",
                    item.id
                );
 
                item.style.opacity = "0.5";
 
            });
 
 
            item.addEventListener("dragend", function () {
 
                item.style.opacity = "1";
 
                draggedItem = null;
 
                console.log("Drag ended");
 
            });


        item.addEventListener("dragstart", function (e) {
            e.dataTransfer.setData("text/plain", item.id);
         });
         });


    });




    document.querySelectorAll(".tier-items").forEach(function (tier) {
        // Setup drop zones
        document.querySelectorAll(".tier-items").forEach(function (container) {
 
 
            container.addEventListener("dragover", function (e) {
 
                e.preventDefault();
 
                e.dataTransfer.dropEffect = "move";
 
            });
 
 
 
            container.addEventListener("dragenter", function (e) {
 
                e.preventDefault();
 
                container.classList.add("tier-hover");
 
            });
 
 
 
            container.addEventListener("dragleave", function () {
 
                container.classList.remove("tier-hover");
 
            });
 
 
 
            container.addEventListener("drop", function (e) {
 
                e.preventDefault();
 
                container.classList.remove("tier-hover");
 
 
                let id = e.dataTransfer.getData("text/plain");
 
                let item = document.getElementById(id);
 
 
                console.log(
                    "Dropped:",
                    id,
                    "into",
                    container.id
                );
 
 
                if (item) {
 
                    container.appendChild(item);
 
                }
 
            });


        tier.addEventListener("dragover", function (e) {
            e.preventDefault();
         });
         });


    }


        tier.addEventListener("drop", function (e) {
            e.preventDefault();


            let id = e.dataTransfer.getData("text/plain");
    if (document.readyState === "loading") {
            let item = document.getElementById(id);


             if (item) {
        document.addEventListener(
                tier.appendChild(item);
            "DOMContentLoaded",
            }
             setupTierList
        );


         });
    } else {
 
         setupTierList();


     });
     }


});
});

Latest revision as of 09:24, 18 July 2026

mw.loader.using('mediawiki.util').then(function () {

    console.log("✅ TierList.js loaded");

    function setupTierList() {

        let draggedItem = null;


        // Make items draggable
        document.querySelectorAll(".tier-item").forEach(function (item) {

            item.draggable = true;

            item.addEventListener("dragstart", function (e) {

                draggedItem = item;

                console.log("Dragging:", item.id);

                e.dataTransfer.effectAllowed = "move";
                e.dataTransfer.setData(
                    "text/plain",
                    item.id
                );

                item.style.opacity = "0.5";

            });


            item.addEventListener("dragend", function () {

                item.style.opacity = "1";

                draggedItem = null;

                console.log("Drag ended");

            });

        });



        // Setup drop zones
        document.querySelectorAll(".tier-items").forEach(function (container) {


            container.addEventListener("dragover", function (e) {

                e.preventDefault();

                e.dataTransfer.dropEffect = "move";

            });



            container.addEventListener("dragenter", function (e) {

                e.preventDefault();

                container.classList.add("tier-hover");

            });



            container.addEventListener("dragleave", function () {

                container.classList.remove("tier-hover");

            });



            container.addEventListener("drop", function (e) {

                e.preventDefault();

                container.classList.remove("tier-hover");


                let id = e.dataTransfer.getData("text/plain");

                let item = document.getElementById(id);


                console.log(
                    "Dropped:",
                    id,
                    "into",
                    container.id
                );


                if (item) {

                    container.appendChild(item);

                }

            });

        });

    }


    if (document.readyState === "loading") {

        document.addEventListener(
            "DOMContentLoaded",
            setupTierList
        );

    } else {

        setupTierList();

    }

});