MediaWiki:Tierlist.js: Difference between revisions

From Roat Pkz
Jump to navigation Jump to search
No edit summary
No edit summary
 
(One intermediate revision by the same user not shown)
Line 3: Line 3:
     console.log("✅ TierList.js loaded");
     console.log("✅ TierList.js loaded");


     let draggedItem = null;
     function setupTierList() {


    document.querySelectorAll(".tier-item").forEach(function(item) {
        let draggedItem = null;


        item.draggable = true;


         item.addEventListener("dragstart", function() {
         // Make items draggable
            draggedItem = item;
        document.querySelectorAll(".tier-item").forEach(function (item) {
            console.log("Dragging:", item.id);
 
            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");
 
            });
 
         });
         });


    });




    document.querySelectorAll(".tier-items").forEach(function(container) {
        // 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);
 
                }
 
            });


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




        container.addEventListener("drop", function(e) {
    if (document.readyState === "loading") {
            e.preventDefault();


            if (draggedItem) {
        document.addEventListener(
                container.appendChild(draggedItem);
            "DOMContentLoaded",
                console.log("Dropped:", draggedItem.id);
            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();

    }

});