MediaWiki: Common.js: Perbedaan antara revisi

Dari GBI Danau Bogor Raya
Lompat ke: navigasi, cari
Leo (bicara | kontrib)
kTidak ada ringkasan suntingan
Tanda: Dikembalikan
Leo (bicara | kontrib)
kTidak ada ringkasan suntingan
Tanda: Dikembalikan
Baris 58: Baris 58:


// Pastikan kode berjalan setelah dependensi jQuery siap
// Pastikan kode berjalan setelah dependensi jQuery siap
mw.loader.using(['jquery'], function() {
// Pastikan modul inti MediaWiki dan jQuery siap
mw.loader.using(['jquery', 'mediawiki.util'], function() {
     $(document).ready(function() {
     $(document).ready(function() {
       
 
         // Deteksi perpindahan tab di skin Tweeki (Bootstrap)
         // Fungsi utama untuk merapikan ulang grid masonry
         $('a[data-toggle="tab"], button[data-bs-toggle="tab"]').on('shown.bs.tab', function (e) {
         function refreshActiveMasonry() {
           
            // Cari elemen grid masonry di dalam tab yang baru aktif
             var $activeGrid = $('.tab-pane.active [data-masonry]');
             var $activeGrid = $('.tab-pane.active [data-masonry]');
              
              
             if ($activeGrid.length > 0) {
             if ($activeGrid.length > 0) {
                 // Inisialisasi ulang atau trigger layout dasar
                 // Gunakan taktik pembungkus untuk memastikan gambar selesai dimuat sempurna
                 var msnry = Masonry.data($activeGrid[0]);
                 $activeGrid.imagesLoaded().progress(function() {
               
                     $activeGrid.masonry('layout');
                if (msnry) {
                }).done(function() {
                    // Jika kontainer berisi gambar, tunggu gambar dimuat dahulu baru atur posisi
                    $activeGrid.masonry('layout');
                     $activeGrid.imagesLoaded(function() {
                });
                        msnry.layout();
                    });
                }
             }
             }
        }
        // Pemicu 1: Saat tab Bootstrap skin Tweeki diklik dan selesai tampil
        $('a[data-toggle="tab"], button[data-bs-toggle="tab"]').on('shown.bs.tab', function() {
            refreshActiveMasonry();
         });
         });
        // Pemicu 2: Antisipasi jika DPL3 memuat konten secara asinkronus setelah halaman siap
        setTimeout(function() {
            refreshActiveMasonry();
        }, 500);


     });
     });

Revisi per 30 Juni 2026 09.47

/* 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 kode berjalan setelah dependensi jQuery siap
// Pastikan modul inti MediaWiki dan jQuery siap
mw.loader.using(['jquery', 'mediawiki.util'], function() {
    $(document).ready(function() {

        // Fungsi utama untuk merapikan ulang grid masonry
        function refreshActiveMasonry() {
            var $activeGrid = $('.tab-pane.active [data-masonry]');
            
            if ($activeGrid.length > 0) {
                // Gunakan taktik pembungkus untuk memastikan gambar selesai dimuat sempurna
                $activeGrid.imagesLoaded().progress(function() {
                    $activeGrid.masonry('layout');
                }).done(function() {
                    $activeGrid.masonry('layout');
                });
            }
        }

        // Pemicu 1: Saat tab Bootstrap skin Tweeki diklik dan selesai tampil
        $('a[data-toggle="tab"], button[data-bs-toggle="tab"]').on('shown.bs.tab', function() {
            refreshActiveMasonry();
        });

        // Pemicu 2: Antisipasi jika DPL3 memuat konten secara asinkronus setelah halaman siap
        setTimeout(function() {
            refreshActiveMasonry();
        }, 500);

    });
});

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