MediaWiki:Common.js: Perbedaan antara revisi

Tidak ada ringkasan suntingan
Tanda: Suntingan perangkat seluler Suntingan peramban seluler
Tidak ada ringkasan suntingan
Tanda: Suntingan perangkat seluler Suntingan peramban seluler
Baris 1.309: Baris 1.309:
});
});


/* * Skrip Penarik Infobox Otomatis Mippedia (Fix Link Gambar & Tanpa Deskripsi)
/* * Skrip Penarik Infobox Otomatis Mippedia (Anti-Galat Pratinjau)
  * Fungsi: Menarik infobox, hapus deskripsi, fix URL gambar, dan fix link klik gambar.
  * Fungsi: Tarik data, fix URL gambar, dan matikan pop-up rusak (MultimediaViewer).
  */
  */
$(document).ready(function() {
$(document).ready(function() {
     var pageName = mw.config.get('wgPageName');
     var pageName = mw.config.get('wgPageName');
     var container = $('#mip-infobox-container');
     var container = $('#mip-infobox-container');
     var dataDomain = 'https://data.mippedia.org'; // Domain pusat data
     var dataDomain = 'https://data.mippedia.org'; // Domain pusat data lo


     if (container.length) {
     if (container.length) {
Baris 1.332: Baris 1.332:
                     var html = data.parse.text['*'];
                     var html = data.parse.text['*'];
                     var $html = $(html);
                     var $html = $(html);
                   
                     var infobox = $html.find('table.infobox');
                     var infobox = $html.find('table.infobox');


Baris 1.345: Baris 1.344:
                             var oldSrc = $img.attr('src');
                             var oldSrc = $img.attr('src');


                             // Fix Source Gambar
                             // Fix Source Gambar (agar muncul di infobox)
                             if (oldSrc && !oldSrc.startsWith('http')) {
                             if (oldSrc && !oldSrc.startsWith('http')) {
                                 $img.attr('src', dataDomain + oldSrc);
                                 $img.attr('src', dataDomain + oldSrc);
                             }
                             }


                             // Fix Srcset (untuk layar resolusi tinggi/HP)
                             // Fix Srcset (untuk layar HP/Retina)
                             var oldSrcset = $img.attr('srcset');
                             var oldSrcset = $img.attr('srcset');
                             if (oldSrcset) {
                             if (oldSrcset) {
Baris 1.360: Baris 1.359:
                             }
                             }


                             // 3. FIX LINK KLIK GAMBAR
                             // 3. FIX LINK KLIK & MATIKAN POP-UP RUSAK
                            // Mengarahkan link klik gambar ke halaman berkas di Mippedia Data
                             if ($link.length) {
                             if ($link.length) {
                                 var href = $link.attr('href');
                                 var href = $link.attr('href');
                                 if (href && (href.includes('Berkas:') || href.includes('File:'))) {
                                 if (href && (href.includes('Berkas:') || href.includes('File:'))) {
                                    // Ambil nama file saja dari link lama
                                     var fileName = href.split(':').pop();
                                     var fileName = href.split(':').pop();
                                     // Arahkan ke halaman file di pusat data
                                    var finalUrl = dataDomain + '/wiki/Berkas:' + fileName;
                                     $link.attr('href', dataDomain + '/wiki/Berkas:' + fileName);
                                   
                                     $link.attr('target', '_blank'); // Buka di tab baru agar tidak meninggalkan artikel
                                     // Update URL ke domain pusat
                                     $link.attr('href', finalUrl);
                                   
                                    // KUNCINYA DI SINI:
                                    // Tambahkan class 'mw-no-invert' atau hapus class yang memicu MultimediaViewer
                                    $link.addClass('no-viewer');  
                                     $link.attr('data-mw', ''); // Reset metadata internal
                                   
                                    // Paksa buka di tab baru agar tidak memicu galat pop-up hitam
                                    $link.on('click', function(e) {
                                        e.stopPropagation(); // Stop script pop-up lokal
                                        window.open(finalUrl, '_blank');
                                        return false;
                                    });
                                 }
                                 }
                             }
                             }
Baris 1.379: Baris 1.389:
                         }).remove();
                         }).remove();


                         // TAMPILKAN HASILNYA
                         // TAMPILKAN
                         $('#mip-loading').hide();
                         $('#mip-loading').hide();
                         container.html(infobox);
                         container.html(infobox);
                     } else {
                     } else {
                         container.html('<div style="color:#d33; font-weight:bold;">Data tidak ditemukan di pusat Mippedia Data.</div>');
                         container.html('<div style="color:#d33; font-weight:bold;">Data tidak ditemukan di pusat.</div>');
                     }
                     }
                 }
                 }
             },
             },
             error: function() {
             error: function() {
                 container.html('<div style="color:#d33; font-weight:bold;">Gagal terhubung ke server Mippedia Data.</div>');
                 container.html('<div style="color:#d33; font-weight:bold;">Gagal terhubung ke Mippedia Data.</div>');
             }
             }
         });
         });
     }
     }
});
});