MediaWiki:Common.js: Perbedaan antara revisi
Tampilan
ADMIN-ency (bicara | kontrib) Tidak ada ringkasan suntingan Tanda: Dikembalikan |
ADMIN-ency (bicara | kontrib) Tidak ada ringkasan suntingan Tanda: Pengembalian manual Dikembalikan |
||
| Baris 1: | Baris 1: | ||
/* ========================================================= | /* ========================================================= | ||
MALIKI ENCYCLOPEDIA | MALIKI ENCYCLOPEDIA | ||
HEADER NAVIGATION — PHASE | HEADER NAVIGATION — PHASE 1A | ||
Vector 2022 | Vector 2022 | ||
========================================================= */ | ========================================================= */ | ||
| Baris 9: | Baris 8: | ||
'use strict'; | 'use strict'; | ||
function createMalikiNavigation() { | function createMalikiNavigation() { | ||
| Baris 18: | Baris 16: | ||
} | } | ||
/* Pastikan halaman sudah memiliki header Vector */ | |||
var header = document.querySelector('.vector-header-container'); | |||
if (!header) { | |||
if (! | |||
return; | return; | ||
} | } | ||
/* ===================================================== | /* ===================================================== | ||
CONTAINER NAVIGASI | |||
===================================================== */ | ===================================================== */ | ||
var navigation = | var navigation = document.createElement('nav'); | ||
navigation.id = 'maliki-top-navigation'; | |||
navigation.setAttribute( | navigation.setAttribute( | ||
'aria-label', | 'aria-label', | ||
'Navigasi utama Maliki Encyclopedia' | 'Navigasi utama Maliki Encyclopedia' | ||
); | ); | ||
navigation.innerHTML = ` | navigation.innerHTML = ` | ||
| Baris 51: | Baris 39: | ||
<div class="maliki-nav-inner"> | <div class="maliki-nav-inner"> | ||
<!-- ENSIKLOPEDIA --> | |||
<!-- | |||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 62: | Baris 47: | ||
class="maliki-nav-button" | class="maliki-nav-button" | ||
aria-expanded="false"> | aria-expanded="false"> | ||
Ensiklopedia | Ensiklopedia | ||
<span class="maliki-nav-arrow">⌄</span> | |||
<span class="maliki-nav-arrow"> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 103: | Baris 82: | ||
<!-- | <!-- JELAJAH --> | ||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 113: | Baris 90: | ||
class="maliki-nav-button" | class="maliki-nav-button" | ||
aria-expanded="false"> | aria-expanded="false"> | ||
Jelajah | Jelajah | ||
<span class="maliki-nav-arrow">⌄</span> | |||
<span class="maliki-nav-arrow"> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 142: | Baris 113: | ||
<!-- | <!-- BIDANG ILMU --> | ||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 152: | Baris 121: | ||
class="maliki-nav-button" | class="maliki-nav-button" | ||
aria-expanded="false"> | aria-expanded="false"> | ||
Bidang Ilmu | Bidang Ilmu | ||
<span class="maliki-nav-arrow">⌄</span> | |||
<span class="maliki-nav-arrow"> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 193: | Baris 156: | ||
<!-- | <!-- ISLAM SAINS --> | ||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 203: | Baris 164: | ||
class="maliki-nav-button" | class="maliki-nav-button" | ||
aria-expanded="false"> | aria-expanded="false"> | ||
Islam–Sains | Islam–Sains | ||
<span class="maliki-nav-arrow">⌄</span> | |||
<span class="maliki-nav-arrow"> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 236: | Baris 191: | ||
<!-- | <!-- KONTRIBUSI --> | ||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 246: | Baris 199: | ||
class="maliki-nav-button" | class="maliki-nav-button" | ||
aria-expanded="false"> | aria-expanded="false"> | ||
Kontribusi | Kontribusi | ||
<span class="maliki-nav-arrow">⌄</span> | |||
<span class="maliki-nav-arrow"> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 271: | Baris 218: | ||
<!-- | <!-- MEDIA --> | ||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 281: | Baris 226: | ||
class="maliki-nav-button" | class="maliki-nav-button" | ||
aria-expanded="false"> | aria-expanded="false"> | ||
Media | Media | ||
<span class="maliki-nav-arrow">⌄</span> | |||
<span class="maliki-nav-arrow"> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 310: | Baris 249: | ||
<!-- | <!-- TENTANG --> | ||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 320: | Baris 257: | ||
class="maliki-nav-button" | class="maliki-nav-button" | ||
aria-expanded="false"> | aria-expanded="false"> | ||
Tentang Maliki | Tentang Maliki | ||
<span class="maliki-nav-arrow">⌄</span> | |||
<span class="maliki-nav-arrow"> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 347: | Baris 278: | ||
</div> | </div> | ||
</div> | </div> | ||
| Baris 355: | Baris 285: | ||
/* ===================================================== | /* ===================================================== | ||
MASUKKAN NAVIGASI KE DALAM HEADER | |||
===================================================== */ | ===================================================== */ | ||
header.appendChild(navigation); | |||
/* ===================================================== | /* ===================================================== | ||
DROPDOWN | INTERAKSI DROPDOWN | ||
===================================================== */ | ===================================================== */ | ||
var dropdownButtons = | var dropdownButtons = | ||
navigation.querySelectorAll( | navigation.querySelectorAll('.maliki-nav-button'); | ||
dropdownButtons.forEach( | dropdownButtons.forEach(function (button) { | ||
button.addEventListener('click', function (event) { | |||
event.stopPropagation(); | |||
var parent = | |||
button.closest('.maliki-nav-item'); | |||
var isOpen = | |||
parent.classList.contains('is-open'); | |||
/* Tutup semua dropdown */ | |||
navigation | |||
.querySelectorAll('.maliki-nav-item') | |||
.forEach(function (item) { | |||
item.classList.remove('is-open'); | |||
var itemButton = | |||
. | item.querySelector('.maliki-nav-button'); | ||
if (itemButton) { | |||
itemButton.setAttribute( | |||
'aria-expanded', | |||
'false' | |||
); | ); | ||
} | |||
}); | |||
/* Buka dropdown yang dipilih */ | |||
if (!isOpen) { | |||
parent.classList.add('is-open'); | |||
button.setAttribute( | |||
'aria-expanded', | |||
'true' | |||
); | |||
} | |||
}); | |||
}); | |||
| Baris 461: | Baris 355: | ||
===================================================== */ | ===================================================== */ | ||
document.addEventListener( | document.addEventListener('click', function () { | ||
navigation | |||
.querySelectorAll('.maliki-nav-item') | |||
.forEach(function (item) { | |||
item.classList.remove('is-open'); | |||
var button = | |||
item.querySelector('.maliki-nav-button'); | |||
if (button) { | |||
button.setAttribute( | |||
'aria-expanded', | |||
'false' | |||
); | |||
} | |||
}); | |||
}); | |||
/* ===================================================== | /* ===================================================== | ||
MOBILE / LAYAR KECIL | |||
===================================================== */ | ===================================================== */ | ||
window.addEventListener( | window.addEventListener('resize', function () { | ||
if (window.innerWidth > 800) { | |||
return; | |||
} | |||
navigation | |||
.querySelectorAll('.maliki-nav-item') | |||
.forEach(function (item) { | |||
item.classList.remove('is-open'); | |||
. | |||
}); | |||
}); | |||
} | } | ||
| Baris 536: | Baris 407: | ||
========================================================= */ | ========================================================= */ | ||
if ( | if (document.readyState === 'loading') { | ||
document.addEventListener( | document.addEventListener( | ||
Revisi per 27 September 2026 06.59
/* =========================================================
MALIKI ENCYCLOPEDIA
HEADER NAVIGATION — PHASE 1A
Vector 2022
========================================================= */
(function () {
'use strict';
function createMalikiNavigation() {
/* Jangan membuat menu dua kali */
if (document.getElementById('maliki-top-navigation')) {
return;
}
/* Pastikan halaman sudah memiliki header Vector */
var header = document.querySelector('.vector-header-container');
if (!header) {
return;
}
/* =====================================================
CONTAINER NAVIGASI
===================================================== */
var navigation = document.createElement('nav');
navigation.id = 'maliki-top-navigation';
navigation.setAttribute(
'aria-label',
'Navigasi utama Maliki Encyclopedia'
);
navigation.innerHTML = `
<div class="maliki-nav-inner">
<!-- ENSIKLOPEDIA -->
<div class="maliki-nav-item has-dropdown">
<button
type="button"
class="maliki-nav-button"
aria-expanded="false">
Ensiklopedia
<span class="maliki-nav-arrow">⌄</span>
</button>
<div class="maliki-nav-dropdown">
<a href="/index.php/Tokoh">
Tokoh
</a>
<a href="/index.php/Konsep">
Konsep
</a>
<a href="/index.php/Karya_Intelektual">
Karya Intelektual
</a>
<a href="/index.php/Lembaga">
Lembaga
</a>
<a href="/index.php/Peristiwa">
Peristiwa
</a>
<a href="/index.php/Tempat">
Tempat
</a>
</div>
</div>
<!-- JELAJAH -->
<div class="maliki-nav-item has-dropdown">
<button
type="button"
class="maliki-nav-button"
aria-expanded="false">
Jelajah
<span class="maliki-nav-arrow">⌄</span>
</button>
<div class="maliki-nav-dropdown">
<a href="/index.php/Maliki:Jelajah_Pengetahuan">
Jelajah Pengetahuan
</a>
<a href="/index.php/Spesial:Halaman_Baru">
Pengetahuan Terbaru
</a>
<a href="/index.php/Kategori:Unggulan">
Artikel Unggulan
</a>
</div>
</div>
<!-- BIDANG ILMU -->
<div class="maliki-nav-item has-dropdown">
<button
type="button"
class="maliki-nav-button"
aria-expanded="false">
Bidang Ilmu
<span class="maliki-nav-arrow">⌄</span>
</button>
<div class="maliki-nav-dropdown">
<a href="/index.php/Kategori:Studi_Islam">
Studi Islam
</a>
<a href="/index.php/Kategori:Pendidikan">
Pendidikan
</a>
<a href="/index.php/Kategori:Sains">
Sains
</a>
<a href="/index.php/Kategori:Kesehatan">
Kesehatan
</a>
<a href="/index.php/Kategori:Humaniora">
Humaniora
</a>
<a href="/index.php/Kategori:Sosial">
Sosial
</a>
</div>
</div>
<!-- ISLAM SAINS -->
<div class="maliki-nav-item has-dropdown">
<button
type="button"
class="maliki-nav-button"
aria-expanded="false">
Islam–Sains
<span class="maliki-nav-arrow">⌄</span>
</button>
<div class="maliki-nav-dropdown">
<a href="/index.php/Kategori:Nilai_dan_Etika">
Nilai & Etika
</a>
<a href="/index.php/Kategori:Perspektif">
Perspektif
</a>
<a href="/index.php/Kategori:Dialog_Keilmuan">
Dialog Keilmuan
</a>
<a href="/index.php/Kategori:Integrasi_Substantif">
Integrasi Substantif
</a>
</div>
</div>
<!-- KONTRIBUSI -->
<div class="maliki-nav-item has-dropdown">
<button
type="button"
class="maliki-nav-button"
aria-expanded="false">
Kontribusi
<span class="maliki-nav-arrow">⌄</span>
</button>
<div class="maliki-nav-dropdown">
<a href="/index.php/Maliki:Pengajuan_Artikel">
Mulai Membuat Artikel
</a>
<a href="/index.php/Maliki:Panduan_Kontributor">
Panduan Kontributor
</a>
</div>
</div>
<!-- MEDIA -->
<div class="maliki-nav-item has-dropdown">
<button
type="button"
class="maliki-nav-button"
aria-expanded="false">
Media
<span class="maliki-nav-arrow">⌄</span>
</button>
<div class="maliki-nav-dropdown">
<a href="/index.php/Kategori:Gambar">
Gambar
</a>
<a href="/index.php/Kategori:Video">
Video
</a>
<a href="/index.php/Maliki:Sumber_Pengetahuan">
Sumber Pengetahuan
</a>
</div>
</div>
<!-- TENTANG -->
<div class="maliki-nav-item has-dropdown">
<button
type="button"
class="maliki-nav-button"
aria-expanded="false">
Tentang Maliki
<span class="maliki-nav-arrow">⌄</span>
</button>
<div class="maliki-nav-dropdown">
<a href="/index.php/Maliki:Tentang">
Tentang Maliki Encyclopedia
</a>
<a href="/index.php/Maliki:UIN_Malang">
UIN Maulana Malik Ibrahim Malang
</a>
<a href="/index.php/Maliki:Tim_Editorial">
Tim Editorial
</a>
</div>
</div>
</div>
`;
/* =====================================================
MASUKKAN NAVIGASI KE DALAM HEADER
===================================================== */
header.appendChild(navigation);
/* =====================================================
INTERAKSI DROPDOWN
===================================================== */
var dropdownButtons =
navigation.querySelectorAll('.maliki-nav-button');
dropdownButtons.forEach(function (button) {
button.addEventListener('click', function (event) {
event.stopPropagation();
var parent =
button.closest('.maliki-nav-item');
var isOpen =
parent.classList.contains('is-open');
/* Tutup semua dropdown */
navigation
.querySelectorAll('.maliki-nav-item')
.forEach(function (item) {
item.classList.remove('is-open');
var itemButton =
item.querySelector('.maliki-nav-button');
if (itemButton) {
itemButton.setAttribute(
'aria-expanded',
'false'
);
}
});
/* Buka dropdown yang dipilih */
if (!isOpen) {
parent.classList.add('is-open');
button.setAttribute(
'aria-expanded',
'true'
);
}
});
});
/* =====================================================
KLIK DI LUAR MENU
===================================================== */
document.addEventListener('click', function () {
navigation
.querySelectorAll('.maliki-nav-item')
.forEach(function (item) {
item.classList.remove('is-open');
var button =
item.querySelector('.maliki-nav-button');
if (button) {
button.setAttribute(
'aria-expanded',
'false'
);
}
});
});
/* =====================================================
MOBILE / LAYAR KECIL
===================================================== */
window.addEventListener('resize', function () {
if (window.innerWidth > 800) {
return;
}
navigation
.querySelectorAll('.maliki-nav-item')
.forEach(function (item) {
item.classList.remove('is-open');
});
});
}
/* =========================================================
JALANKAN SETELAH HALAMAN SIAP
========================================================= */
if (document.readyState === 'loading') {
document.addEventListener(
'DOMContentLoaded',
createMalikiNavigation
);
} else {
createMalikiNavigation();
}
})();