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.002: | Baris 1.002: | ||
/* ========================================================== | /* ========================================================== | ||
🔵 MIPPEDIA ACCOUNT VERIFICATION SYSTEM | 🔵 MIPPEDIA ACCOUNT VERIFICATION SYSTEM | ||
Fix: Posisi Centang Sejajar (Inline) & Pop-up | |||
========================================================== */ | ========================================================== */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
| Baris 1.009: | Baris 1.009: | ||
var ns = mw.config.get('wgNamespaceNumber'); | var ns = mw.config.get('wgNamespaceNumber'); | ||
var isAdmin = mw.config.get('wgUserGroups').includes('sysop'); | var isAdmin = mw.config.get('wgUserGroups').includes('sysop'); | ||
var api = new mw.Api(); | var api = new mw.Api(); | ||
var vFile = 'Verified_Badge.png'; | var vFile = 'Verified_Badge.png'; | ||
// --- 0. SISTEM POP-UP | // --- 0. SISTEM POP-UP --- | ||
function showVPopup() { | function showVPopup() { | ||
api.parse('[[Berkas:' + vFile + '|60px|link=|middle]]').done(function(renderedImage) { | api.parse('[[Berkas:' + vFile + '|60px|link=|middle]]').done(function(renderedImage) { | ||
var modalHtml = '<div id="v-modal-overlay" style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);z-index:99999;display:flex;align-items:center;justify-content:center;">' + | var modalHtml = '<div id="v-modal-overlay" style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.7);z-index:99999;display:flex;align-items:center;justify-content:center;">' + | ||
| Baris 1.031: | Baris 1.028: | ||
} | } | ||
// --- 1. RENDER CENTANG | // --- 1. RENDER CENTANG (FIX POSISI SEJAJAR) --- | ||
api.get({ action: 'query', list: 'categorymembers', cmtitle: 'Category:Pengguna_Terverifikasi', cmlimit: 'max' }).done(function(d) { | api.get({ action: 'query', list: 'categorymembers', cmtitle: 'Category:Pengguna_Terverifikasi', cmlimit: 'max' }).done(function(d) { | ||
var vUsers = d.query.categorymembers.map(function(m) { return m.title.replace('Pengguna:', ''); }); | var vUsers = d.query.categorymembers.map(function(m) { return m.title.replace('Pengguna:', ''); }); | ||
// Render di link nama pengguna (History/ | // Render di link nama pengguna (History/RC) | ||
mw.hook('wikipage.content').add(function() { | mw.hook('wikipage.content').add(function() { | ||
$('.mw-userlink').each(function() { | $('.mw-userlink').each(function() { | ||
| Baris 1.041: | Baris 1.038: | ||
var name = $el.text().trim(); | var name = $el.text().trim(); | ||
if (vUsers.includes(name) && !$el.next('.mp-v-icon').length) { | if (vUsers.includes(name) && !$el.next('.mp-v-icon').length) { | ||
api.parse('[[Berkas:' + vFile + '|13px|link=|middle]]').done(function(renderedImage) { | api.parse('[[Berkas:' + vFile + '|13px|link=|middle]]').done(function(renderedImage) { | ||
$el.after('<span class="mp-v-icon" style="margin-left:3px;vertical-align:middle;">' + renderedImage + '</span>'); | $el.after('<span class="mp-v-icon" style="display:inline-block; margin-left:3px; vertical-align:middle;">' + renderedImage + '</span>'); | ||
}); | }); | ||
} | } | ||
| Baris 1.049: | Baris 1.045: | ||
}); | }); | ||
// Render di Judul | // Render di Judul Profil - DIPAKSA SEJAJAR (INLINE) | ||
var targetTitle = mw.config.get('wgTitle'); | var targetTitle = mw.config.get('wgTitle'); | ||
if ((ns === 2 || ns === 3) && vUsers.includes(targetTitle) && !$('#firstHeading .mp-v-badge').length) { | if ((ns === 2 || ns === 3) && vUsers.includes(targetTitle) && !$('#firstHeading .mp-v-badge').length) { | ||
api.parse('[[Berkas:' + vFile + '|22px|link=|middle]]').done(function(renderedImage) { | |||
api.parse('[[Berkas:' + vFile + '| | // Gunakan display:inline-flex biar nempel terus di samping teks judul | ||
var $badge = $('<span class="mp-v-badge" style="margin-left:8px;vertical-align:middle | var $badge = $('<span class="mp-v-badge" style="display:inline-flex; align-items:center; margin-left:8px; cursor:pointer; vertical-align:middle;">' + renderedImage + '</span>'); | ||
$badge.click(showVPopup); | $badge.click(showVPopup); | ||
$('#firstHeading').append($badge); | |||
// Masukkan ke dalam elemen heading agar tidak pecah baris | |||
$('#firstHeading').css('display', 'flex').css('align-items', 'center').append($badge); | |||
}); | }); | ||
} | } | ||
}); | }); | ||
// --- 2. | // --- 2. LOGIKA PROTEKSI & ADMIN (TETAP SAMA SEPERTI KODE LO) --- | ||
if (mw.config.get('wgAction') === 'edit' && sessionStorage.getItem('mippedia_auth_verify')) { | if (mw.config.get('wgAction') === 'edit' && sessionStorage.getItem('mippedia_auth_verify')) { | ||
var savedText = sessionStorage.getItem('mippedia_auth_verify'); | var savedText = sessionStorage.getItem('mippedia_auth_verify'); | ||
var vTable = "{| class='wikitable' style='width:100%'\n|+ Bukti Identitas Resmi\n|-\n! Dokumen !! Tautan/URL Bukti\n|-\n| KTP / Paspor / SIM || (Masukkan URL Foto Bukti lo di sini, boys!)\n|-\n| Akun Medsos / Website || (Masukkan URL pembuktian identitas lainnya)\n|}"; | var vTable = "{| class='wikitable' style='width:100%'\n|+ Bukti Identitas Resmi\n|-\n! Dokumen !! Tautan/URL Bukti\n|-\n| KTP / Paspor / SIM || (Masukkan URL Foto Bukti lo di sini, boys!)\n|-\n| Akun Medsos / Website || (Masukkan URL pembuktian identitas lainnya)\n|}"; | ||
$('#wpTextbox1').val(savedText + "\n\n" + vTable + "\n\n<div class='mippedia-status'>'''Status: 🕒 Sedang diverifikasi'''</div>\n\n--" + user); | $('#wpTextbox1').val(savedText + "\n\n" + vTable + "\n\n<div class='mippedia-status'>'''Status: 🕒 Sedang diverifikasi'''</div>\n\n--" + user); | ||
sessionStorage.removeItem('mippedia_auth_verify'); | sessionStorage.removeItem('mippedia_auth_verify'); | ||
} | } | ||
if (ns === 2 && user && pageName.includes('Pengguna:' + user) && !$('#ca-mippedia-verify').length) { | |||
if (ns === 2 && user && pageName.includes('Pengguna:' + user) | var $vLink = $('<li>').attr({'id': 'ca-mippedia-verify', 'class': 'mw-list-item'}).append( | ||
$('<a>').attr({'href': '#'}).css({'display': 'flex', 'align-items': 'center', 'padding': '6px 12px'}).append( | |||
$('<span>').html('🔵 Verifikasi').css({'color': '#0095f6', 'font-weight': 'bold'}) | |||
) | |||
); | |||
$vLink.click(function(e) { | |||
e.preventDefault(); | |||
sessionStorage.setItem('mippedia_auth_verify', "== Permintaan Verifikasi Akun ==\nHalo Pengurus,\n\nSaya memohon verifikasi untuk akun [[" + pageName + "]] agar mendapatkan lencana centang biru resmi."); | |||
window.location.href = mw.util.getUrl("Pembicaraan_Pengguna:" + mw.config.get('wgTitle'), { action: 'edit', section: 'new', preloadtitle: 'Permintaan Verifikasi Akun' }); | |||
}); | |||
$('#p-cactions ul, #p-views ul').append($vLink); | |||
} | } | ||
if (ns === 2 && ['edit', 'submit'].includes(mw.config.get('wgAction'))) { | if (ns === 2 && ['edit', 'submit'].includes(mw.config.get('wgAction'))) { | ||
$('#editform').on('submit', function() { | $('#editform').on('submit', function() { | ||
var content = $('#wpTextbox1').val(); | var content = $('#wpTextbox1').val(); | ||
if (/\[\[Category:Pengguna_Terverifikasi\]\]/gi.test(content) && !sessionStorage.getItem('is_admin_action')) { | if (/\[\[Category:Pengguna_Terverifikasi\]\]/gi.test(content) && !sessionStorage.getItem('is_admin_action')) { | ||
alert("⚠️ AKSES DITOLAK: Penambahan kategori | alert("⚠️ AKSES DITOLAK: Penambahan kategori secara manual dilarang!"); | ||
$('#wpTextbox1').val(content.replace(/\[\[Category:Pengguna_Terverifikasi\]\]/gi, '')); | $('#wpTextbox1').val(content.replace(/\[\[Category:Pengguna_Terverifikasi\]\]/gi, '')); | ||
return false; | return false; | ||
} | } | ||
}); | }); | ||
} | } | ||
}); | }); | ||