MediaWiki:Tierlist.js: Difference between revisions

From Roat Pkz
Jump to navigation Jump to search
No edit summary
No edit summary
 
Line 3: Line 3:
     console.log("✅ TierList.js loaded");
     console.log("✅ TierList.js loaded");


     let draggedItem = null;
     function setupTierList() {


        let draggedItem = null;


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


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


        item.addEventListener("dragstart", function (e) {
            item.draggable = true;


             draggedItem = item;
             item.addEventListener("dragstart", function (e) {


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


            e.dataTransfer.effectAllowed = "move";
                console.log("Dragging:", item.id);
            e.dataTransfer.setData("text/plain", 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";


        item.addEventListener("dragend", function () {
                draggedItem = null;


            console.log("Drag ended");
                console.log("Drag ended");


             draggedItem = null;
             });


         });
         });


    });




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


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


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


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


            e.preventDefault();
                e.dataTransfer.dropEffect = "move";


             e.dataTransfer.dropEffect = "move";
             });


            console.log("Over:", container.id);


        });


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


                e.preventDefault();


        container.addEventListener("dragenter", function () {
                container.classList.add("tier-hover");


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


        });




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


        container.addEventListener("dragleave", function () {
                container.classList.remove("tier-hover");


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


        });




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


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


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


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


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


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


            let item = document.getElementById(id);


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


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


                if (item) {


            if (item) {
                    container.appendChild(item);


                 container.appendChild(item);
                 }


             }
             });


         });
         });


     });
     }
 
 
    if (document.readyState === "loading") {
 
        document.addEventListener(
            "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();

    }

});