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 ULTIMATE VERIFICATION SYSTEM (FULL FIX) | 🔵 MIPPEDIA ULTIMATE VERIFICATION SYSTEM (FULL FIX) | ||
Update: Fix Tombol Verifikasi Muncul di Semua User | |||
========================================================== */ | ========================================================== */ | ||
$(document).ready(function() { | $(document).ready(function() { | ||
| Baris 1.013: | Baris 1.013: | ||
var vFile = 'Verified_Badge.png'; | var vFile = 'Verified_Badge.png'; | ||
// --- 1. POP-UP TERVERIFIKASI | // --- 1. POP-UP TERVERIFIKASI --- | ||
function showVerifiedPopup() { | function showVerifiedPopup() { | ||
api.parse('[[Berkas:' + vFile + '|60px|link=|middle]]').done(function(renderedImage) { | api.parse('[[Berkas:' + vFile + '|60px|link=|middle]]').done(function(renderedImage) { | ||
var modalHtml = '<div id="mippedia-v-modal" style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.75);z-index:99999;display:flex;align-items:center;justify-content:center;">' + | var modalHtml = '<div id="mippedia-v-modal" style="position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,0.75);z-index:99999;display:flex;align-items:center;justify-content:center;">' + | ||
| Baris 1.029: | Baris 1.028: | ||
} | } | ||
// --- 2. LOGIKA CENTANG BIRU GLOBAL | // --- 2. LOGIKA CENTANG BIRU GLOBAL --- | ||
function applyGlobalBadge($element) { | function applyGlobalBadge($element) { | ||
if ($element.data('has-badge') || $element.next('.mippedia-badge-global').length) return; | if ($element.data('has-badge') || $element.next('.mippedia-badge-global').length) return; | ||
api.parse('[[Berkas:' + vFile + '|13px|link=|middle]]').done(function(renderedImage) { | api.parse('[[Berkas:' + vFile + '|13px|link=|middle]]').done(function(renderedImage) { | ||
if ($element.next('.mippedia-badge-global').length) return; | if ($element.next('.mippedia-badge-global').length) return; | ||
var cleanImage = $(renderedImage).find('img').first(); | var cleanImage = $(renderedImage).find('img').first(); | ||
var $badge = $('<span class="mippedia-badge-global" style="margin-left: 4px; display: inline-flex; align-items: center; vertical-align: middle; position: relative; top: -1px; cursor: pointer;"></span>').append(cleanImage); | var $badge = $('<span class="mippedia-badge-global" style="margin-left: 4px; display: inline-flex; align-items: center; vertical-align: middle; position: relative; top: -1px; cursor: pointer;"></span>').append(cleanImage); | ||
$badge.click(function(e) { e.preventDefault(); showVerifiedPopup(); }); | |||
$badge.click(function(e) { | |||
$element.after($badge); | $element.after($badge); | ||
$element.data('has-badge', true); | $element.data('has-badge', true); | ||
| Baris 1.052: | Baris 1.041: | ||
} | } | ||
api.get({ action: 'query', list: 'categorymembers', cmtitle: 'Category:Pengguna_Terverifikasi', cmlimit: 'max' }).done(function(data) { | |||
api.get({ | var verifiedUsers = data.query.categorymembers.map(function(member) { return member.title.replace('Pengguna:', ''); }); | ||
var verifiedUsers = data.query.categorymembers.map(function(member) { | |||
function scanLinks() { | function scanLinks() { | ||
$('a.mw-userlink').each(function() { | $('a.mw-userlink').each(function() { | ||
var username = $(this).text().trim(); | var username = $(this).text().trim(); | ||
if (verifiedUsers.includes(username)) { | if (verifiedUsers.includes(username)) { applyGlobalBadge($(this)); } | ||
}); | }); | ||
} | } | ||
scanLinks(); | scanLinks(); | ||
mw.hook('wikipage.content').add(scanLinks); | mw.hook('wikipage.content').add(scanLinks); | ||
var currentTitle = mw.config.get('wgTitle'); | var currentTitle = mw.config.get('wgTitle'); | ||
if ((ns === 2 || ns === 3) && verifiedUsers.includes(currentTitle)) { | if ((ns === 2 || ns === 3) && verifiedUsers.includes(currentTitle)) { | ||
if (!$('#firstHeading').find('.mippedia-profile-badge').length) { | if (!$('#firstHeading').find('.mippedia-profile-badge').length) { | ||
api.parse('[[Berkas:' + vFile + '| | api.parse('[[Berkas:' + vFile + '|22px|link=|middle]]').done(function(renderedImage) { | ||
var cleanImage = $(renderedImage).find('img').first(); | var cleanImage = $(renderedImage).find('img').first(); | ||
var $pBadge = $('<span class="mippedia-profile-badge" style="margin-left: 6px; display: inline-flex; align-items: center; vertical-align: middle; cursor: pointer;"></span>').append(cleanImage); | var $pBadge = $('<span class="mippedia-profile-badge" style="margin-left: 6px; display: inline-flex; align-items: center; vertical-align: middle; cursor: pointer;"></span>').append(cleanImage); | ||
$pBadge.click(showVerifiedPopup); | $pBadge.click(showVerifiedPopup); | ||
$('#firstHeading').append($pBadge); | $('#firstHeading').append($pBadge); | ||
| Baris 1.099: | Baris 1.071: | ||
} | } | ||
// --- 4. PROTEKSI KATEGORI | // --- 4. PROTEKSI KATEGORI --- | ||
if (ns === 2 && (['edit', 'submit'].includes(mw.config.get('wgAction')))) { | if (ns === 2 && (['edit', 'submit'].includes(mw.config.get('wgAction')))) { | ||
$('#editform').on('submit', function(e) { | $('#editform').on('submit', function(e) { | ||
| Baris 1.105: | Baris 1.077: | ||
var content = $box.val(); | var content = $box.val(); | ||
var catPattern = /\[\[Category:Pengguna_Terverifikasi\]\]/gi; | var catPattern = /\[\[Category:Pengguna_Terverifikasi\]\]/gi; | ||
if (catPattern.test(content) && !sessionStorage.getItem('is_system_verify')) { | if (catPattern.test(content) && !sessionStorage.getItem('is_system_verify')) { | ||
alert("⚠️ AKSES DITOLAK: Penambahan kategori verifikasi secara manual dilarang | alert("⚠️ AKSES DITOLAK: Penambahan kategori verifikasi secara manual dilarang."); | ||
$box.val(content.replace(catPattern, '')); | $box.val(content.replace(catPattern, '')); | ||
return false; | return false; | ||
| Baris 1.114: | Baris 1.085: | ||
} | } | ||
// --- 5. TOMBOL MINTA VERIFIKASI --- | // --- 5. TOMBOL MINTA VERIFIKASI (FIXED LOGIC) --- | ||
if (ns === 2 && user && | // Sekarang ngecek pake wgTitle biar lebih akurat di halaman profil sendiri | ||
if (ns === 2 && user && mw.config.get('wgTitle') === user) { | |||
if (!$('#ca-verify-request').length) { | if (!$('#ca-verify-request').length) { | ||
var $verifyLink = $('<li>').attr({'id': 'ca-verify-request', 'class': 'mw-list-item'}).append( | var $verifyLink = $('<li>').attr({'id': 'ca-verify-request', 'class': 'mw-list-item'}).append( | ||
| Baris 1.138: | Baris 1.110: | ||
api.get({ action: 'query', prop: 'revisions', titles: pageName, rvprop: 'user|content', rvlimit: 1 }).done(function(res) { | api.get({ action: 'query', prop: 'revisions', titles: pageName, rvprop: 'user|content', rvlimit: 1 }).done(function(res) { | ||
var pg = res.query.pages[Object.keys(res.query.pages)[0]]; | var pg = res.query.pages[Object.keys(res.query.pages)[0]]; | ||
if (!pg || !pg.revisions) return; | |||
var requester = pg.revisions[0].user; | var requester = pg.revisions[0].user; | ||
var oldContent = pg.revisions[0]['*']; | var oldContent = pg.revisions[0]['*']; | ||
| Baris 1.154: | Baris 1.127: | ||
return api.postWithToken('edit', { action: 'edit', title: pageName, text: newText, summary: 'Approved' }); | return api.postWithToken('edit', { action: 'edit', title: pageName, text: newText, summary: 'Approved' }); | ||
}).then(function() { | }).then(function() { | ||
var msg = "\n== Profil Terverifikasi ==\nHalo [["+requester+"]], akun Anda resmi terverifikasi | var msg = "\n== Profil Terverifikasi ==\nHalo [["+requester+"]], akun Anda resmi terverifikasi. --[[Pengguna:Admin|Admin]]"; | ||
return api.postWithToken('edit', { action: 'edit', title: "Pembicaraan_Pengguna:"+requester, section: 'new', text: msg }); | return api.postWithToken('edit', { action: 'edit', title: "Pembicaraan_Pengguna:"+requester, section: 'new', text: msg }); | ||
}).done(function() { | }).done(function() { | ||