MediaWiki: Common.js: Perbedaan antara revisi

Dari GBI Danau Bogor Raya
Lompat ke: navigasi, cari
Leo (bicara | kontrib)
Tidak ada ringkasan suntingan
Tanda: Dikembalikan
Leo (bicara | kontrib)
Tidak ada ringkasan suntingan
Tanda: Dikembalikan
Baris 61: Baris 61:
     $(document).ready(function () {
     $(document).ready(function () {
          
          
         // Targetkan elemen collapse berdasarkan class bawaan Bootstrap atau ID spesifik Anda
         // Memantau event ketika elemen collapse Bootstrap selesai terbuka sempurna
        // Di sini kita menangkap event 'shown.bs.collapse' menggunakan jQuery bawaan MediaWiki
         $(document).on('shown.bs.collapse', '.collapse', function () {
         $('.collapse').on('shown.bs.collapse', function () {
              
              
             // Cari kontainer grid Masonry di dalam atau di sekitar elemen yang baru di-expand
             // Targetkan row yang memiliki atribut data-masonry sesuai template Anda
             var $grid = $('.grid'); // Ganti '.grid' dengan class kontainer Masonry Anda
            var $grid = $('.row[data-masonry]');
           
            // Berikan delay kecil (300ms) untuk memastikan transisi menu/collapse selesai
            // dan tinggi elemen yang di-expand sudah maksimal saat dihitung ulang
             setTimeout(function() {
               
                // Cek inisialisasi lewat metode jQuery
                if ($grid.data('masonry')) {
                    $grid.masonry('layout');
                }
                // Jika auto-init via data-attribute, gunakan window.Masonry untuk memicu layout ulang
                else if (typeof Masonry !== 'undefined') {
                    $grid.each(function() {
                        var msnry = Masonry.data(this);
                        if (msnry) {
                            msnry.layout();
                        }
                    });
                }
               
            }, 300);
              
              
            // Pastikan instance Masonry ada sebelum memicu layout ulang
            if ($grid.data('masonry')) {
                $grid.masonry('layout');
            } else if (typeof Masonry !== 'undefined') {
                // Jika diinisialisasi secara vanilla JS
                var msnry = Masonry.data($grid[0]);
                if (msnry) msnry.layout();
            }
         });
         });


     });
     });
});
});


$activeGrid.imagesLoaded(function() {
$activeGrid.imagesLoaded(function() {

Revisi per 3 Juli 2026 10.10

/* JavaScript yang ada di sini akan diterapkan untuk semua kulit. */

/* Code dari MediaWiki:Common.js sebagian besar dipindahkan ke MediaWiki_Talk:Common.js sejak 11 Oktober 2022 */


$(document).ready(function() {
    $('.carousel').carousel();
  });

$(document).ready(function() {
    $('#myCarousel').carousel();
  });

/*
$('button').click(function(){ //you can give id or class name here for $('button')
$(this).text(function(i,old){
return old=='+' ?  '-' : '+';
});
});
*/

/* Didapat dari:
https://stackoverflow.com/questions/23101966/bootstrap-alert-auto-close

Menggunakan id="success-alert"
*/
$("#alert-hideable").fadeTo(10000, 500).slideUp(500, function(){
    $("#alert-hideable").slideUp(500);
});

$("#alert-hideable-1").fadeTo(10000, 500).slideUp(500, function(){
    $("#alert-hideable-1").slideUp(500);
});

$("#alert-hideable-2").fadeTo(10000, 500).slideUp(500, function(){
    $("#alert-hideable-2").slideUp(500);
});


var one = document.querySelector("#sidebar-right");
var children = document.querySelector(".catlinks").children;

Array.prototype.forEach.call(children, function (child) {
    one.appendChild(child);
});



// Optimize LCP image: remove lazy loading and set high fetch priority
mw.hook('wikipage.content').add(function() {
    var firstImg = document.querySelector('#mw-content-text img');
    if (firstImg) {
        firstImg.loading = 'eager';
        firstImg.fetchPriority = 'high';
    }
});


// Pastikan library core MediaWiki dan jQuery sudah siap
mw.loader.using(['javascript.util', 'jquery']).then(function () {
    $(document).ready(function () {
        
        // Memantau event ketika elemen collapse Bootstrap selesai terbuka sempurna
        $(document).on('shown.bs.collapse', '.collapse', function () {
            
            // Targetkan row yang memiliki atribut data-masonry sesuai template Anda
            var $grid = $('.row[data-masonry]'); 
            
            // Berikan delay kecil (300ms) untuk memastikan transisi menu/collapse selesai 
            // dan tinggi elemen yang di-expand sudah maksimal saat dihitung ulang
            setTimeout(function() {
                
                // Cek inisialisasi lewat metode jQuery
                if ($grid.data('masonry')) {
                    $grid.masonry('layout');
                } 
                // Jika auto-init via data-attribute, gunakan window.Masonry untuk memicu layout ulang
                else if (typeof Masonry !== 'undefined') {
                    $grid.each(function() {
                        var msnry = Masonry.data(this);
                        if (msnry) {
                            msnry.layout();
                        }
                    });
                }
                
            }, 300);
            
        });

    });
});

$activeGrid.imagesLoaded(function() {
    $activeGrid.masonry('layout');
});


$('.collapse').on('shown.bs.collapse', function () {
    var $grid = $('.grid');
    
    // Berikan delay kecil (misal 200ms) agar transisi selesai & gambar mulai ter-render
    setTimeout(function() {
        if ($grid.data('masonry')) {
            $grid.masonry('layout');
        }
    }, 200);
});