MediaWiki:Tierlist.js: Difference between revisions

From Roat Pkz
Jump to navigation Jump to search
No edit summary
No edit summary
Line 5: Line 5:
     let draggedItem = null;
     let draggedItem = null;


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


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


        item.addEventListener("dragstart", function() {
             draggedItem = item;
             draggedItem = item;
             console.log("Dragging:", item.id);
             console.log("Dragging:", item.id);
            e.dataTransfer.effectAllowed = "move";
            e.dataTransfer.setData("text/plain", item.id);
        });
        item.addEventListener("dragend", function () {
            console.log("Drag ended");
            draggedItem = null;
         });
         });


Line 17: Line 34:




    document.querySelectorAll(".tier-items").forEach(function(container) {


         container.addEventListener("dragover", function(e) {
    // Setup drop zones
    document.querySelectorAll(".tier-items").forEach(function (container) {
 
 
         container.addEventListener("dragover", function (e) {
 
             e.preventDefault();
             e.preventDefault();
            e.dataTransfer.dropEffect = "move";
            console.log("Over:", container.id);
         });
         });




         container.addEventListener("drop", function(e) {
 
        container.addEventListener("dragenter", function () {
 
            container.classList.add("tier-hover");
 
        });
 
 
 
        container.addEventListener("dragleave", function () {
 
            container.classList.remove("tier-hover");
 
        });
 
 
 
         container.addEventListener("drop", function (e) {
 
             e.preventDefault();
             e.preventDefault();


             if (draggedItem) {
             container.classList.remove("tier-hover");
                container.appendChild(draggedItem);
 
                console.log("Dropped:", draggedItem.id);
 
            let id = e.dataTransfer.getData("text/plain");
 
            let item = document.getElementById(id);
 
 
            console.log("Dropped:", id, "into", container.id);
 
 
            if (item) {
 
                container.appendChild(item);
 
             }
             }


Line 35: Line 91:


     });
     });


});
});

Revision as of 09:15, 18 July 2026

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

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

    let draggedItem = null;


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

        item.setAttribute("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.addEventListener("dragend", function () {

            console.log("Drag ended");

            draggedItem = null;

        });

    });



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


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

            e.preventDefault();

            e.dataTransfer.dropEffect = "move";

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

        });



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

            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);

            }

        });

    });


});