MediaWiki:Common.js

Dari GBI Danau Bogor Raya
Revisi sejak 3 Juli 2026 10.10 oleh Leo (bicara | kontrib)
Lompat ke: navigasi, cari

Catatan: Setelah menerbitkan, Anda mungkin perlu melewati tembolok peramban web Anda untuk melihat perubahan.

  • Firefox/Safari: Tekan dan tahan Shift sembari mengeklik Reload, atau tekan Ctrl-F5 atau Ctrl-R (⌘-R di Mac)
  • Google Chrome: Tekan Ctrl-Shift-R (⌘-Shift-R di Mac)
  • Edge: Tahan Ctrl sembari mengeklik Refresh, atau tekan Ctrl-F5
/* 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);
});