MediaWiki:Common.js: Perbedaan antara revisi
Tampilan
ADMIN-ency (bicara | kontrib) Tidak ada ringkasan suntingan Tanda: Pengembalian manual Dikembalikan |
ADMIN-ency (bicara | kontrib) Tidak ada ringkasan suntingan Tanda: Pengembalian manual |
||
| Baris 1: | Baris 1: | ||
/* ========================================================= | /* ========================================================= | ||
MALIKI ENCYCLOPEDIA | MALIKI ENCYCLOPEDIA | ||
HEADER NAVIGATION — PHASE | HEADER NAVIGATION — PHASE 1B.1 | ||
Vector 2022 | Vector 2022 | ||
Navigation positioned after Vector header | |||
========================================================= */ | ========================================================= */ | ||
| Baris 8: | Baris 9: | ||
'use strict'; | 'use strict'; | ||
function createMalikiNavigation() { | function createMalikiNavigation() { | ||
| Baris 16: | Baris 18: | ||
} | } | ||
if (! | /* ===================================================== | ||
CARI HEADER VECTOR 2022 | |||
===================================================== */ | |||
var headerContainer = | |||
document.querySelector('.vector-header-container'); | |||
if (!headerContainer) { | |||
return; | return; | ||
} | } | ||
/* ===================================================== | /* ===================================================== | ||
BUAT NAVIGASI | |||
===================================================== */ | ===================================================== */ | ||
var navigation = document.createElement('nav'); | 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 39: | Baris 51: | ||
<div class="maliki-nav-inner"> | <div class="maliki-nav-inner"> | ||
<!-- ENSIKLOPEDIA --> | |||
<!-- ========================= | |||
ENSIKLOPEDIA | |||
========================= --> | |||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 47: | Baris 62: | ||
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"> | |||
⌄ | |||
</span> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 82: | Baris 103: | ||
<!-- JELAJAH --> | <!-- ========================= | ||
JELAJAH | |||
========================= --> | |||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 90: | Baris 113: | ||
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"> | |||
⌄ | |||
</span> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 113: | Baris 142: | ||
<!-- BIDANG ILMU --> | <!-- ========================= | ||
BIDANG ILMU | |||
========================= --> | |||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 121: | Baris 152: | ||
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"> | |||
⌄ | |||
</span> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 156: | Baris 193: | ||
<!-- | <!-- ========================= | ||
ISLAM–SAINS | |||
========================= --> | |||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 164: | Baris 203: | ||
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"> | |||
⌄ | |||
</span> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 191: | Baris 236: | ||
<!-- KONTRIBUSI --> | <!-- ========================= | ||
KONTRIBUSI | |||
========================= --> | |||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 199: | Baris 246: | ||
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"> | |||
⌄ | |||
</span> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 218: | Baris 271: | ||
<!-- MEDIA --> | <!-- ========================= | ||
MEDIA | |||
========================= --> | |||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 226: | Baris 281: | ||
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"> | |||
⌄ | |||
</span> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 249: | Baris 310: | ||
<!-- TENTANG --> | <!-- ========================= | ||
TENTANG MALIKI | |||
========================= --> | |||
<div class="maliki-nav-item has-dropdown"> | <div class="maliki-nav-item has-dropdown"> | ||
| Baris 257: | Baris 320: | ||
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"> | |||
⌄ | |||
</span> | |||
</button> | </button> | ||
<div class="maliki-nav-dropdown"> | <div class="maliki-nav-dropdown"> | ||
| Baris 278: | Baris 347: | ||
</div> | </div> | ||
</div> | </div> | ||
| Baris 285: | Baris 355: | ||
/* ===================================================== | /* ===================================================== | ||
LETAKKAN NAVIGASI | |||
SETELAH VECTOR HEADER | |||
===================================================== */ | ===================================================== */ | ||
headerContainer.parentNode.insertBefore( | |||
navigation, | |||
headerContainer.nextSibling | |||
); | |||
/* ===================================================== | /* ===================================================== | ||
DROPDOWN INTERACTION | |||
===================================================== */ | ===================================================== */ | ||
var dropdownButtons = | var dropdownButtons = | ||
navigation.querySelectorAll('.maliki-nav-button'); | 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 menu | |||
*/ | |||
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 menu yang dipilih | |||
*/ | |||
if (!isOpen) { | |||
parent.classList.add( | |||
'is-open' | |||
); | |||
button.setAttribute( | |||
'aria-expanded', | |||
'true' | |||
); | |||
} | |||
} | |||
); | |||
} | |||
); | |||
| Baris 355: | Baris 461: | ||
===================================================== */ | ===================================================== */ | ||
document.addEventListener('click', function () { | 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' | |||
); | |||
} | |||
} | |||
); | |||
} | |||
); | |||
/* ===================================================== | /* ===================================================== | ||
RESPONSIVE | |||
===================================================== */ | ===================================================== */ | ||
window.addEventListener('resize', function () { | window.addEventListener( | ||
'resize', | |||
function () { | |||
if (window.innerWidth > 800) { | |||
return; | |||
} | |||
navigation | |||
.querySelectorAll( | |||
'.maliki-nav-item' | |||
) | |||
.forEach( | |||
function (item) { | |||
item.classList.remove( | |||
'is-open' | |||
); | |||
} | |||
); | |||
} | |||
); | |||
} | } | ||
| Baris 407: | Baris 536: | ||
========================================================= */ | ========================================================= */ | ||
if (document.readyState === 'loading') { | if ( | ||
document.readyState === | |||
'loading' | |||
) { | |||
document.addEventListener( | document.addEventListener( | ||
Revisi per 27 September 2026 07.00
/* =========================================================
MALIKI ENCYCLOPEDIA
HEADER NAVIGATION — PHASE 1B.1
Vector 2022
Navigation positioned after Vector header
========================================================= */
(function () {
'use strict';
function createMalikiNavigation() {
/* Jangan membuat menu dua kali */
if (document.getElementById('maliki-top-navigation')) {
return;
}
/* =====================================================
CARI HEADER VECTOR 2022
===================================================== */
var headerContainer =
document.querySelector('.vector-header-container');
if (!headerContainer) {
return;
}
/* =====================================================
BUAT 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 MALIKI
========================= -->
<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>
`;
/* =====================================================
LETAKKAN NAVIGASI
SETELAH VECTOR HEADER
===================================================== */
headerContainer.parentNode.insertBefore(
navigation,
headerContainer.nextSibling
);
/* =====================================================
DROPDOWN INTERACTION
===================================================== */
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 menu
*/
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 menu 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'
);
}
}
);
}
);
/* =====================================================
RESPONSIVE
===================================================== */
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();
}
})();