MediaWiki:Common.js
Tampilan
Catatan: Setelah menyimpan, Anda harus memintas tembolok (cache) peramban Anda untuk melihat perubahannya. Google Chrome, Firefox, Microsoft Edge dan Safari: Tahan tombol ⇧ Shift dan klik Muat ulang (Reload) di tombol bilah alat. Untuk detail dan instruksi tentang peramban lain, lihat halaman menghapus singgahan (Inggris).
/*jslint browser: true, vars: true, plusplus:true */
/*globals mw, $, importStylesheet, importScript*/
"use strict";
/**
JavaScript yang ada di sini akan diterapkan untuk semua kulit.
**/
/** MainPageTransform ************************************************
*
* Deskripsi: Menghilangkan judul [[Halaman Utama]] dan mengganti nama tab.
* Pemelihara: -
*/
var mpTitle = "Halaman Utama";
var isMainPage = (mw.config.get('wgIsMainPage') === true);
var isDiff = (document.location.search && (
document.location.search.indexOf("diff=") !== -1 ||
document.location.search.indexOf("oldid=") !== -1 ||
document.location.search.indexOf("action=history") !== -1
));
function mainPageTransform() {
var mpContentEl = document.getElementById("bodyContent"),
mpBrowseEl = document.getElementById("EnWpMpBrowse"),
mpContainEl = document.getElementById("EnWpMpBrowseContainer"),
mpMarginEl = document.getElementById("EnWpMpMargin"),
mpEl = document.getElementById("EnWpMainPage"),
mpMinWidth = 700;
if (!mpContentEl || !mpBrowseEl || !mpContainEl || !mpMarginEl || !mpEl) {
return;
}
if (mpContentEl.offsetWidth < mpMinWidth) {
mpContainEl.insertBefore(mpBrowseEl, mpContainEl.firstChild);
mpBrowseEl.className = "EnWpMpBrowseBottom";
mpMarginEl.style.marginRight = 0;
} else if (mpContentEl.offsetWidth > mpMinWidth) {
mpEl.insertBefore(mpBrowseEl, mpEl.firstChild);
mpBrowseEl.className = "EnWpMpBrowseRight";
mpMarginEl.style.marginRight = "13.8em";
}
}
if (isMainPage && !isDiff && (mw.config.get('wgCanonicalNamespace') !== 'Special')) {
mw.util.addCSS('#content, #content div.thumb, #p-cactions li a, #p-cactions li a:hover, #p-cactions li.selected a { background: #fff!important; }');
$(mainPageTransform);
if (window.addEventListener) {
window.addEventListener("resize", mainPageTransform, false);
} else if (window.attachEvent) {
window.attachEvent("onresize", mainPageTransform);
}
}
/** Sembunyikan tombol daftar ************************************************
*
* Deskripsi: Menyembunyikan tombol "Bergabung menjadi kontributor"
* di Halaman Utama, MediaWiki:Nocreatetext
* jika telah masuk log
* Pemelihara: Pengguna:Kenrick95
*/
function hide_signup() {
if (($(".idwp-signup-button").length > 0) && (mw.config.get('wgUserName') !== null)) {
$(".idwp-signup-button").hide();
}
}
$(hide_signup);
/** Lowcase Title *******************************************************
*
* Deskripsi: Membuat judul halaman dengan huruf pertama kecil
* Lihat [[Templat:Judul]].
* Pemelihara: Admin
*/
function pTitle() {
if (document.getElementById("title-override")) {
var pTitleText = document.getElementById("pTitle").innerHTML;
document.getElementsByTagName("h1")[0].innerHTML = pTitleText;
}
}
if (mw.config.get("wgaction") !== "edit" || mw.config.get("wgaction") !== "submit") {
mw.util.addCSS('#title-override {display: none; speak: none;}');
$(document).ready(pTitle);
}
/** LinkFA & LinkGA *******************************************************
*
* Deskripsi: Menambahkan ikon bintang untuk interwiki ke artikel yang
* merupakan artikel pilihan di wiki tujuan
* Lihat [[Templat:LinkFA]].
* Menambahkan ikon artikel bagus untuk interwiki ke artikel yang
* merupakan artikel bagus di wiki tujuan
* Lihat [[Templat:LinkGA]].
* Pemelihara: Admin
*/
function LinkFA() {
var i, className;
if (document.getElementById('p-lang')) {
var InterwikiLinks = document.getElementById('p-lang').getElementsByTagName('li');
for (i = 0; i < InterwikiLinks.length; i++) {
className = InterwikiLinks[i].className.match(/interwiki-[\-\w]+/);
if (document.getElementById(className + '-fa')
&& InterwikiLinks[i].className.indexOf('badge-featuredarticle') === -1) {
InterwikiLinks[i].className += ' FA';
InterwikiLinks[i].title = 'Ini adalah artikel pilihan dalam bahasa lain.';
} else if (document.getElementById(className + '-ga')
&& InterwikiLinks[i].className.indexOf('badge-goodarticle') === -1) {
InterwikiLinks[i].className += ' GA';
InterwikiLinks[i].title = 'Ini adalah artikel bagus dalam bahasa lain.';
}
}
}
}
mw.hook('wikipage.content').add(LinkFA);
/** InterProject *******************************************************
*
* Deskripsi: Membuat pranala-pranala di menu samping (seperti interwiki)
* ke proyek-proyek Wikimedia yang lain
* Lihat [[Templat:Interproyek]].
* Pemelihara: Admin
*/
mw.util.addCSS('#interProyek {display: none; speak: none;}');
function iProject() {
if (document.getElementById("interProyek")) {
var iProjectText = '<div id="p-ipj"><h3>Proyek lain<\/h3><div class="body">' + $("#interProyek").html() + '</div></div>';
$("#mw-panel").append(iProjectText);
$("#p-ipj").addClass("portal");
$("#p-ipj").addClass("expanded");
$("#p-ipj").attr("role", "navigation");
}
}
$(iProject);
/**
* Collapsible tables *********************************************************
*
* Description: Allows tables to be collapsed, showing only the header. See
* [[Wikipedia:NavFrame]].
* Maintainers: [[User:R. Koot]]
*/
var autoCollapse = 2;
var collapseCaption = 'sembunyikan';
var expandCaption = 'tampilkan';
window.collapseTable = function (tableIndex) {
var collapseButton = document.getElementById('collapseButton' + tableIndex);
var collapseTable = document.getElementById('collapsibleTable' + tableIndex);
if (!collapseTable || !collapseButton) {
return false;
}
var collapseRows = collapseTable.rows, i;
if (collapseButton.firstChild.data === collapseCaption) {
for (i = 1; i < collapseRows.length; i++) {
collapseRows[i].style.display = 'none';
}
collapseButton.firstChild.data = expandCaption;
} else {
for (i = 1; i < collapseRows.length; i++) {
collapseRows[i].style.display = collapseRows[0].style.display;
}
collapseButton.firstChild.data = collapseCaption;
}
};
function createCollapseButtons() {
var tableIndex = 0,
NavigationBoxes = {},
Tables = document.getElementsByTagName('table'),
i, HeaderRow, Header, Button, ButtonLink, ButtonText;
function handleButtonLink(index, e) {
window.collapseTable(index);
e.preventDefault();
}
for (i = 0; i < Tables.length; i++) {
if ($(Tables[i]).hasClass('collapsible')) {
/* only add button and increment count if there is a header row to work with */
HeaderRow = Tables[i].getElementsByTagName('tr')[0];
if (!HeaderRow) { continue; }
Header = HeaderRow.getElementsByTagName('th')[0];
if (!Header) { continue; }
NavigationBoxes[tableIndex] = Tables[i];
Tables[i].setAttribute('id', 'collapsibleTable' + tableIndex);
Button = document.createElement('span');
ButtonLink = document.createElement('a');
ButtonText = document.createTextNode(collapseCaption);
Button.className = 'collapseButton'; /* Styles are declared in Common.css */
ButtonLink.style.color = Header.style.color;
ButtonLink.setAttribute('id', 'collapseButton' + tableIndex);
ButtonLink.setAttribute('href', '#');
$(ButtonLink).on('click', $.proxy(handleButtonLink, ButtonLink, tableIndex));
ButtonLink.appendChild(ButtonText);
Button.appendChild(document.createTextNode('['));
Button.appendChild(ButtonLink);
Button.appendChild(document.createTextNode(']'));
Header.insertBefore(Button, Header.firstChild);
tableIndex++;
}
}
var element;
for (i = 0; i < tableIndex; i++) {
if ($(NavigationBoxes[i]).hasClass('collapsed') || (tableIndex >= autoCollapse && $(NavigationBoxes[i]).hasClass('autocollapse'))) {
window.collapseTable(i);
} else if ($(NavigationBoxes[i]).hasClass('innercollapse')) {
element = NavigationBoxes[i];
while ((element = element.parentNode)) {
if ($(element).hasClass('outercollapse')) {
window.collapseTable(i);
break;
}
}
}
}
}
$(createCollapseButtons);
/**
* Dynamic Navigation Bars (experimental)
*
* Description: See [[Wikipedia:NavFrame]].
* Maintainers: UNMAINTAINED
*/
/* set up the words in your language */
var NavigationBarHide = '[' + collapseCaption + ']';
var NavigationBarShow = '[' + expandCaption + ']';
/**
* Shows and hides content and picture (if available) of navigation bars
* Parameters:
* indexNavigationBar: the index of navigation bar to be toggled
**/
window.toggleNavigationBar = function (indexNavigationBar, event) {
var NavToggle = document.getElementById('NavToggle' + indexNavigationBar);
var NavFrame = document.getElementById('NavFrame' + indexNavigationBar);
var NavChild;
if (!NavFrame || !NavToggle) {
return false;
}
/* if shown now */
if (NavToggle.firstChild.data === NavigationBarHide) {
for (NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling) {
if ($(NavChild).hasClass('NavContent') || $(NavChild).hasClass('NavPic')) {
NavChild.style.display = 'none';
}
}
NavToggle.firstChild.data = NavigationBarShow;
/* if hidden now */
} else if (NavToggle.firstChild.data === NavigationBarShow) {
for (NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling) {
if ($(NavChild).hasClass('NavContent') || $(NavChild).hasClass('NavPic')) {
NavChild.style.display = 'block';
}
}
NavToggle.firstChild.data = NavigationBarHide;
}
event.preventDefault();
};
/* adds show/hide-button to navigation bars */
function createNavigationBarToggleButton() {
var indexNavigationBar = 0, NavFrame, NavChild, i, j, NavToggle, isCollapsed, NavToggleText;
/* iterate over all < div >-elements */
var divs = document.getElementsByTagName('div');
for (i = 0; (NavFrame = divs[i]); i++) {
/* if found a navigation bar */
if ($(NavFrame).hasClass('NavFrame')) {
indexNavigationBar++;
NavToggle = document.createElement('a');
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', '#');
$(NavToggle).on('click', $.proxy(window.toggleNavigationBar, window, indexNavigationBar));
isCollapsed = $(NavFrame).hasClass('collapsed');
/**
* Check if any children are already hidden. This loop is here for backwards compatibility:
* the old way of making NavFrames start out collapsed was to manually add style="display:none"
* to all the NavPic/NavContent elements. Since this was bad for accessibility (no way to make
* the content visible without JavaScript support), the new recommended way is to add the class
* "collapsed" to the NavFrame itself, just like with collapsible tables.
*/
for (NavChild = NavFrame.firstChild; NavChild !== null && !isCollapsed; NavChild = NavChild.nextSibling) {
if ($(NavChild).hasClass('NavPic') || $(NavChild).hasClass('NavContent')) {
if (NavChild.style.display === 'none') {
isCollapsed = true;
}
}
}
if (isCollapsed) {
for (NavChild = NavFrame.firstChild; NavChild !== null; NavChild = NavChild.nextSibling) {
if ($(NavChild).hasClass('NavPic') || $(NavChild).hasClass('NavContent')) {
NavChild.style.display = 'none';
}
}
}
NavToggleText = document.createTextNode(isCollapsed ? NavigationBarShow : NavigationBarHide);
NavToggle.appendChild(NavToggleText);
/* Find the NavHead and attach the toggle link (Must be this complicated because Moz's firstChild handling is borked) */
for (j = 0; j < NavFrame.childNodes.length; j++) {
if ($(NavFrame.childNodes[j]).hasClass('NavHead')) {
NavToggle.style.color = NavFrame.childNodes[j].style.color;
NavFrame.childNodes[j].appendChild(NavToggle);
}
}
NavFrame.setAttribute('id', 'NavFrame' + indexNavigationBar);
}
}
}
$(createNavigationBarToggleButton);
/** Edittools *******************************************************
*
* Deskripsi: Kotak drop-down untuk menu karakter istimewa
* di [[MediaWiki:Edittools]]
* Adaptasi dari:
* de.wiki-indonesia.club/wiki/MediaWiki:Onlyifediting.js
* de.wiktionary.org/wiki/MediaWiki:Onlyifediting.js
* en.wiktionary.org/wiki/MediaWiki:Monobook.js
* Pemelihara: Admin
*/
// Helper function to move DOM element
function elementMoveto(node, refNode, pos) {
if (node && refNode) {
var parent = refNode.parentNode;
if (pos && pos === 'after') { refNode = refNode.nextSibling; }
try {
parent.insertBefore(node, refNode);
} catch (DOMException) {
console.error(DOMException);
}
}
}
// CharSubset selection
function chooseCharSubset(s) {
var specialchars = document.getElementById('specialchars');
if (specialchars) {
var l = specialchars.getElementsByTagName('p'), i;
for (i = 0; i < l.length; i++) {
l[i].style.display = (i === s) ? 'inline' : 'none';
// l[i].style.visibility = i == s ? 'visible' : 'hidden';
}
}
}
$(chooseCharSubset);
// Menu insertion
function addCharSubsetMenu() {
var specialchars = document.getElementById('specialchars');
if (specialchars) {
var menu = "<select style=\"display:inline\" onChange=\"chooseCharSubset(selectedIndex)\">";
menu += "<option>Standar+Templat</option>";
menu += "<option>IPA</option>";
menu += "<option>Latin</option>";
menu += "<option>Jawa+Jawa Kuna</option>";
menu += "<option>Pinyin+Romaji</option>";
menu += "<option>Arab</option>";
menu += "<option>Ibrani</option>";
menu += "<option>Sirilik</option>";
menu += "<option>Yunani</option>";
menu += "<option>Devanāgarī</option>";
menu += "<option>Yiddish</option>";
menu += "</select>";
specialchars.innerHTML = menu + specialchars.innerHTML;
// Standard-CharSubset
chooseCharSubset(0);
}
}
$(addCharSubsetMenu);
// Move the toolbar to the top
function fixToolbar() {
var wpEditToolbar = document.getElementById("toolbar");
var editTools = document.getElementById("specialchars");
//elementMoveto(editTools, wpEditToolbar, 'after');
if (editTools) { editTools.style.display = "block"; }
// var editspecialchars = document.getElementById("editpage-specialchars");
//elementMoveto(editTools, wpEditToolbar, 'after');
}
$(fixToolbar);
/** Stripe *******************************************************
*
* Deskripsi: Membuat tabel berwarna latar berselang-seling
* Lihat [[Bantuan:Tabel]]
* Pemelihara: Admin
*/
function stripe() {
// This function will add stripes to all tables that have the "wikitable-striped" class attribute.
var tables = document.getElementsByTagName("table"), a, table, tbodies, b, even, trs, c;
for (a = 0; a !== tables.length; a++) {
table = tables[a];
if (!table) { return; } // If there are no tables, abort.
if (table.getAttribute("class") === "tabelcantik") {
tbodies = table.getElementsByTagName("tbody");
for (b = 0; b < tbodies.length; b++) {
even = true; // We start with an even stripe.
trs = tbodies[b].getElementsByTagName("tr");
for (c = 0; c < trs.length; c++) {
if (even) {
trs[c].className += "even";
} else {
trs[c].className += "odd";
}
even = !even;
}
}
} else if (table.getAttribute("class") === "tabelcantikcyan") {
tbodies = table.getElementsByTagName("tbody");
for (b = 0; b < tbodies.length; b++) {
even = true; // We start with an even stripe.
trs = tbodies[b].getElementsByTagName("tr");
for (c = 0; c < trs.length; c++) {
if (even) {
trs[c].className += "evencyan";
} else {
trs[c].className += "oddcyan";
}
even = !even;
}
}
} else if (table.getAttribute("class") === "tabelcantikmerah") {
tbodies = table.getElementsByTagName("tbody");
for (b = 0; b < tbodies.length; b++) {
even = true; // We start with an even stripe.
trs = tbodies[b].getElementsByTagName("tr");
for (c = 0; c < trs.length; c++) {
if (even) {
trs[c].className += "evenmerah";
} else {
trs[c].className += "oddmerah";
}
even = !even;
}
}
}
}
}
// Perform the striping.
$(stripe);
/** Portlet tambahan *******************************************************
*
* Deskripsi: Menambah tombol/portlet tambahan di halaman-halaman wiki
*
* Pemelihara: [[Pengguna:Kenrick95]]
*/
function addPL(PLplace, PLlink, PLtext, PLid, PLtitle) {
var PLtempplace = PLplace;
var PLinside = '<li id="' + PLid + '" title="' + PLtitle + '">'
+ '<a href="' + PLlink + '"> ' + PLtext + '</a>'
+ '</li>';
$(PLtempplace).append(PLinside);
}
/** Portlet tambahan/Jumlah suntingan *******************************************************
*
* Deskripsi: Menambah tombol/portlet tambahan berupa jumlah suntingan pengguna
* Letak: di bawah menu Konribusi di halaman pengguna
*
* Pemelihara: [[Pengguna:Kenrick95]]
*/
function addEditcountPortlet() {
if (document.getElementById("t-contributions")) {
var sText = 'Statistik pengguna';
var sLink = '//tools.wmflabs.org/xtools-ec/?'
+ 'project=' + mw.config.get('wgServerName')
+ '&user=' + mw.config.get('wgRelevantUserName');
addPL('#p-tb .body ul', sLink, sText, 't-editcount', 'Jumlah suntingan pengguna');
}
}
$(addEditcountPortlet);
/** Portlet tambahan/Sunting bagian 0 *******************************************************
*
* Deskripsi: Menambah tombol/portlet tambahan berupa tombol menyunting bagian 0 halaman
* Letak: di dalam drop-down menu di antara kotak pencarian dan
* tombol pantau halaman
*
* Pemelihara: [[Pengguna:Kenrick95]]
*/
function addEdittopPortletLink() {
if (mw.config.get('wgCanonicalNamespace') === 'Special'
|| document.getElementById("wikiPreview")
|| document.getElementById("histlegend")
|| document.getElementById("difference")
|| document.getElementById("watchdetails")) { return; }
if (document.getElementById("ca-edit")) {
// var sElm = document.getElementById("ca-addsection") ? 'ca-addsection' : 'ca-edit';
var sText = '↑';
var sLink = mw.config.get('wgScriptPath') + "/index.php?title=" + mw.config.get('wgPageName')
+ "&action=edit§ion=0";
addPL('#p-cactions .menu ul', sLink, sText, 'ca-edittop', 'Suntingan bagian atas halaman ini');
}
}
$(addEdittopPortletLink);
/** Notice di [[Wikipedia:Bak pasir]] dan [[Pembicaraan Wikipedia:Bak pasir]] *******
*
* Deskripsi: Menambah notice-box di [[Wikipedia:Bak pasir]] dan
* [[Pembicaraan Wikipedia:Bak pasir]]
*
* Pemelihara: [[Pengguna:Bennylin]]
*/
function sandboxNotice() {
var notice = document.createElement('div');
document.getElementById('bodyContent').insertBefore(notice, document.getElementById('jump-to-nav').nextSibling);
$.get(
'//wiki-indonesia.club/w/index.php?title=Templat:Bakpasir&action=render',
function (data) {
notice.innerHTML = data;
}
);
}
if (["view", "edit", "submit"].indexOf(mw.config.get('wgAction')) > -1 &&
["Wikipedia:Bak_pasir", "Pembicaraan_Wikipedia:Bak_pasir"].indexOf(mw.config.get('wgPageName')) > -1) {
sandboxNotice();
}
/** Notice di halaman-halaman pembicaraan *******
*
* Deskripsi: Menambah notice-box di ruang nama 1
*
* Pemelihara: [[Pengguna:Bennylin]]
*/
function talkpageNotice() {
var notice = document.createElement('div');
document.getElementById('bodyContent').insertBefore(notice, document.getElementById('jump-to-nav').nextSibling);
$.get(
'//wiki-indonesia.club/w/index.php?title=Templat:Talkheader/core&action=render',
function (data) {
notice.innerHTML = data;
}
);
}
if (mw.config.get('wgAction').match(/edit|submit/)) {
$(function () {
if (document.getElementsByTagName('body')[0].className.match(/ns-1 /)) {
return talkpageNotice();
}
});
}
/** Magic editintros ****************************************************
*
* Deskripsi: Menambahkan editintro di halaman disambiguasi, halaman BLP, dan halaman lain yang diperlukan.
* Pemelihara: [[User:RockMFR]] (en.wiki-indonesia.club/wiki/MediaWiki:Common.js)
*/
function addEditIntro( name ) {
$( '.mw-editsection, #ca-edit' ).find( 'a' ).each( function ( i, el ) {
el.href = $( this ).attr( 'href' ) + '&editintro=' + name;
} );
}
if ( mw.config.get( 'wgNamespaceNumber' ) === 0 ) {
$( function () {
if ( document.getElementById( 'disambigbox' ) ) {
addEditIntro( 'Template:Disambig_editintro' );
}
} );
$( function () {
var cats = mw.config.get('wgCategories');
if ( !cats ) {
return;
}
if ( $.inArray( 'Orang hidup', cats ) !== -1 ) {
addEditIntro( 'Template:BLP_editintro' );
}
} );
}
/**
* WikiMiniAtlas is a popup click and drag world map.
* See [[meta:WikiMiniAtlas]] for more information.
* Maintainers: [[w:User:Dschwen]]
*/
mw.loader.load( '//meta.wikimedia.org/w/index.php?title=MediaWiki:Wikiminiatlas.js&action=raw&ctype=text/javascript' );
/** Skrip tambahan *******************************************************
* Deskripsi: Skrip tambahan untuk kelas .hlist di common.css
* Pemelihara: [[User:Edokter]]
*/
if ($.client.profile().name === 'msie') {
/* remove interpunct from last list items in IE 8 */
if ($.client.profile().versionBase === '8') {
$('.hlist').find('dd:last-child, dt:last-child, li:last-child')
.addClass('nopunct');
}
}
/**
* Réécriture des titres
*
* Fonction utilisée par [[Modèle:Titre incorrect]]
*
* La fonction cherche un bandeau de la forme
* <div id="RealTitleBanner">
* <span id="RealTitle">titre</span>
* </div>
*
* Un élément comportant id="DisableRealTitle" désactive la fonction
*/
function rewritePageH1() {
var realTitleBanner = document.getElementById('RealTitleBanner');
if (realTitleBanner) {
if (!document.getElementById('DisableRealTitle')) {
var realTitle = document.getElementById('RealTitle');
var h1 = document.getElementById('firstHeading');
if (!h1) {
h1 = document.getElementsByTagName('h1')[0]; // Nostalgia, Standard
}
var realH1 = getTextContent(h1); // ERROR: undefined getTextContent()
if (realTitle && h1) {
var titleText = realTitle.innerHTML;
if (titleText === '') {
h1.style.display = 'none';
} else {
h1.innerHTML = titleText;
}
realTitleBanner.style.display = 'none';
var avert = document.createElement('p');
avert.style.fontSize = '80%';
avert.innerHTML = 'Judul yang akan digunakan untuk membuat sebuah pranala internal: <b>' + realH1.HTMLize() + '</b>';
insertAfter(h1.parentNode, avert, h1); // ERROR: undefined insertAfter()
}
}
}
}
// Results from Wikidata
// [[File:Wdsearch_script_screenshot.png]]
if (mw.config.get('wgCanonicalSpecialPageName') === 'Search' || (mw.config.get('wgArticleId') === 0 && mw.config.get('wgCanonicalSpecialPageName') === false)) {
mw.loader.load("//en.wiki-indonesia.club/w/index.php?title=MediaWiki:Wdsearch.js&action=raw&ctype=text/javascript");
}
/**
* Description: Lazy-load mediawiki.ui.button module when .mw-ui-button is present; extended for mediawiki.ui.input too
* Maintainers: [[User:Edokter]]. Imported from en.wiki-indonesia.club
*/
mw.hook('wikipage.content').add(function () {
if ((mw.loader.getState('mediawiki.ui.button') === 'registered') && ($('.mw-ui-button').length)) {
mw.loader.load('mediawiki.ui.button');
}
if ((mw.loader.getState('mediawiki.ui.input') === 'registered') && ($('.mw-ui-input').length)) {
mw.loader.load('mediawiki.ui.input');
}
});
/**
* @source www.mediawiki.org/wiki/Snippets/Load_JS_and_CSS_by_URL
* @rev 6
*/
var extraCSS = mw.util.getParamValue('withCSS'),
extraJS = mw.util.getParamValue('withJS');
if (extraCSS) {
if (extraCSS.match(/^MediaWiki:[^&<>=%#]*\.css$/)) {
importStylesheet(extraCSS);
} else {
mw.notify('Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withCSS value' });
}
}
if (extraJS) {
if (extraJS.match(/^MediaWiki:[^&<>=%#]*\.js$/)) {
importScript(extraJS);
} else {
mw.notify('Only pages from the MediaWiki namespace are allowed.', { title: 'Invalid withJS value' });
}
}
/**
* Sembunyikan "Belum Diperiksa" untuk non-editor
* @author Kenrick95
*/
function hideFlaggedRevs() {
function hfrDoHide(rights) {
if (rights.indexOf("review") === -1 && $("#mw-fr-revisiontag").text() === "Belum Diperiksa") {
$("#mw-fr-revisiontag").hide()
}
}
var hfrStorageName = "hfrUserRights",
hfrRights = null;
if (mw.config.get('wgUserName') === null) { // anon
hfrDoHide([]);
} else if (localStorage.getItem(hfrStorageName) !== null) {
hfrRights = JSON.parse(localStorage.getItem(hfrStorageName));
hfrDoHide(hfrRights);
} else {
mw.loader.using("mediawiki.api", function () {
var api = new mw.Api();
api.get({
action: "query",
list: "users",
format: "json",
usprop: "rights",
ususers: mw.config.get("wgUserName")
})
.done(function (data) {
hfrRights = data.query.users[0].rights;
localStorage.setItem(hfrStorageName, JSON.stringify(hfrRights));
hfrDoHide(hfrRights);
});
});
}
}
$(hideFlaggedRevs);