MediaWiki:Vector.js: Difference between revisions

From Forklift Certified Video Games
Jump to navigation Jump to search
Line 5: Line 5:
     function addGalleryRow() {
     function addGalleryRow() {
         var $builder = $('#gallery-builder');
         var $builder = $('#gallery-builder');
         var $lastRow = $builder.find('.gallery-row').last();
         var $row = $builder.find('.gallery-row').first().clone();
        var $newRow = $lastRow.clone(true, true);


        // Clear inputs
         $row.find('input').val('');
         $newRow.find('input[type="text"]').val('');
         $row.find('.pfImagePreview').remove();
         $newRow.find('input[type="hidden"]').val('');


        // Remove image preview if present
         $builder.append($row);
        $newRow.find('.pfImagePreview').remove();
 
         $builder.append($newRow);
     }
     }


     $('#addGalleryRowBtn').on('click', function (e) {
     $('.add-gallery-row').on('click', function (e) {
         e.preventDefault();
         e.preventDefault();
         addGalleryRow();
         addGalleryRow();
     });
     });


    // On form submit, build the gallery wikitext
     $('form').on('submit', function () {
     $('form').on('submit', function () {
         var galleryText = "<gallery>\n";
         var gallery = "<gallery>\n";
 
        var images = $('input[name="gallery_image[]"]');
        var captions = $('input[name="gallery_caption[]"]');


         images.each(function (index) {
         $('input[name="gallery_image[]"]').each(function (i) {
             var image = $(this).val();
             var img = $(this).val();
             var caption = captions.eq(index).val();
             var cap = $('input[name="gallery_caption[]"]').eq(i).val();


             if (image) {
             if (img) {
                 galleryText += image;
                 gallery += img + (cap ? "|" + cap : "") + "\n";
                if (caption) {
                    galleryText += "|" + caption;
                }
                galleryText += "\n";
             }
             }
         });
         });


         galleryText += "</gallery>";
         gallery += "</gallery>";


         $('input[name="gallery"]').val(galleryText);
         $('textarea[name="gallery"]').val(gallery);
     });
     });


});
});

Revision as of 20:37, 21 January 2026

/* All JavaScript here will be loaded for users of the Vector skin */

mw.loader.using(['jquery'], function () {

    function addGalleryRow() {
        var $builder = $('#gallery-builder');
        var $row = $builder.find('.gallery-row').first().clone();

        $row.find('input').val('');
        $row.find('.pfImagePreview').remove();

        $builder.append($row);
    }

    $('.add-gallery-row').on('click', function (e) {
        e.preventDefault();
        addGalleryRow();
    });

    $('form').on('submit', function () {
        var gallery = "<gallery>\n";

        $('input[name="gallery_image[]"]').each(function (i) {
            var img = $(this).val();
            var cap = $('input[name="gallery_caption[]"]').eq(i).val();

            if (img) {
                gallery += img + (cap ? "|" + cap : "") + "\n";
            }
        });

        gallery += "</gallery>";

        $('textarea[name="gallery"]').val(gallery);
    });

});