/** * Keep code in MediaWiki:Common.js to a minimum as it is unconditionally * loaded for all users on every wiki page. If possible create a gadget that is * enabled by default instead of adding it here (since gadgets are fully * optimized ResourceLoader modules with possibility to add dependencies etc.) * * Since Common.js isn't a gadget, there is no place to declare its * dependencies, so we have to lazy load them with mw.loader.using on demand and * then execute the rest in the callback. In most cases these dependencies will * be loaded (or loading) already and the callback will not be delayed. In case a * dependency hasn't arrived yet it'll make sure those are loaded before this. */ /*jslint browser: true, vars: true, plusplus:true */ /*globals mw, $, importStylesheet, importScript*/ "use strict"; /** JavaScript yang ada di sini akan diterapkan untuk semua kulit. **/ /** Sembunyikan tombol daftar ************************************************ * * Deskripsi: Menyembunyikan tombol "Bergabung menjadi kontributor" * di Halaman Utama, MediaWiki:Nocreatetext * jika telah masuk log * Pemelihara: Pengguna:Kenrick95 */ functionhideSignup(){ if(($(".idwp-signup-button").length>0)&&(mw.config.get('wgUserName')!==null)){ $(".idwp-signup-button").hide(); } } mw.hook('wikipage.content').add(hideSignup); /** InterProject ******************************************************* * * Deskripsi: Membuat pranala-pranala di menu samping (seperti interwiki) * ke proyek-proyek Wikimedia yang lain * Lihat [[Templat:Interproyek]]. * Pemelihara: Admin */ functioniProject(){ if(document.getElementById("interProyek")){ mw.loader.using('mediawiki.util').done(function(){ mw.util.addCSS('#interProyek {display: none; speak: none;}'); }); variProjectText='<div id="p-ipj"><h3>Proyek lain<\/h3><div class="body">'+$("#interProyek").html()+'</div></div>'; var$sidebar=$("#mw-panel"); if($sidebar.length===0){ $sidebar=$("#vector-main-menu"); } if($sidebar.length>0){ $sidebar.append(iProjectText); $("#p-ipj").addClass("portal expanded").attr("role","navigation"); } } } $(iProject); /** * @source [[:en:MediaWiki:Common.js]], 2019-07-26, updated by Kenrick95 * Collapsible tables; reimplemented with mw-collapsibe * Styling is also in place to avoid FOUC * * Allows tables to be collapsed, showing only the header. See [[Help:Collapsing]]. * @version 3.0.0 (2018-05-20) * @source https://www.mediawiki.org/wiki/MediaWiki:Gadget-collapsibleTables.js * @author [[User:R. Koot]] * @author [[User:Krinkle]] * @author [[User:TheDJ]] * @deprecated Since MediaWiki 1.20: Use class="mw-collapsible" instead which * is supported in MediaWiki core. Shimmable since MediaWiki 1.32 */ functionmakeCollapsibleMwCollapsible($content){ var$tables=$content .find('table.collapsible:not(.mw-collapsible)') .addClass('mw-collapsible'); $.each($tables,function(index,table){ // mw.log.warn( 'This page is using the deprecated class collapsible. Please replace it with mw-collapsible.'); if($(table).hasClass('collapsed')){ $(table).addClass('mw-collapsed'); // mw.log.warn( 'This page is using the deprecated class collapsed. Please replace it with mw-collapsed.'); } }); if($tables.length>0){ mw.loader.using('jquery.makeCollapsible').then(function(){ $tables.makeCollapsible(); }); } } mw.hook('wikipage.content').add(makeCollapsibleMwCollapsible); /** * @source [[:en:MediaWiki:Common.js]], 2019-07-26, updated by Kenrick95 * Add support to mw-collapsible for autocollapse, innercollapse and outercollapse * * Maintainers: TheDJ */ functionmwCollapsibleSetup($collapsibleContent){ var$element, $toggle, autoCollapseThreshold=2; $.each($collapsibleContent,function(index,element){ $element=$(element); if($element.hasClass('collapsible')){ $element.find('tr:first > th:first').prepend($element.find('tr:first > * > .mw-collapsible-toggle')); } if($collapsibleContent.length>=autoCollapseThreshold&&$element.hasClass('autocollapse')){ $element.data('mw-collapsible').collapse(); }elseif($element.hasClass('innercollapse')){ if($element.parents('.outercollapse').length>0){ $element.data('mw-collapsible').collapse(); } } // because of colored backgrounds, style the link in the text color // to ensure accessible contrast $toggle=$element.find('.mw-collapsible-toggle'); if($toggle.length){ // Make the toggle inherit text color if($toggle.parent()[0].style.color){ $toggle.css('color','inherit'); $toggle.find('.mw-collapsible-text').css('color','inherit'); } } }); } mw.hook('wikipage.collapsibleContent').add(mwCollapsibleSetup); /** * Dynamic Navigation Bars (experimental) * * Description: See [[Wikipedia:NavFrame]]. * Maintainers: UNMAINTAINED */ varcollapseCaption='sembunyikan'; varexpandCaption='tampilkan'; /* set up the words in your language */ varnavigationBarHide='['+collapseCaption+']'; varnavigationBarShow='['+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){ varNavToggle=document.getElementById('NavToggle'+indexNavigationBar); varNavFrame=document.getElementById('NavFrame'+indexNavigationBar); varNavChild; if(!NavFrame||!NavToggle){ returnfalse; } /* 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 */ }elseif(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(); }; /** Portlet tambahan/Jumlah suntingan ******************************************************* * * Deskripsi: Menambah tombol/portlet tambahan berupa jumlah suntingan pengguna * Letak: di bawah menu Konribusi di halaman pengguna * * Pemelihara: [[Pengguna:Kenrick95]] */ functionaddEditcountPortlet(){ if(document.getElementById('t-editcount')){ return; } if(document.getElementById("t-contributions")&&mw.config.get('wgRelevantUserName')){ varsText='Statistik pengguna'; varsLink='https://xtools.wmcloud.org/ec/?' +'project='+mw.config.get('wgServerName') +'&user='+encodeURIComponent(mw.config.get('wgRelevantUserName')); mw.loader.using('mediawiki.util').done(function(){ mw.util.addPortletLink( 'p-tb', sLink, sText, 't-editcount', 'Jumlah suntingan pengguna' ); }); } } mw.hook('wikipage.content').add(addEditcountPortlet); /** 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]] */ functionsandboxNotice(){ varnotice=document.createElement('div'); varcontent=$("#mw-content-text"); content.prepend(notice); $.get( '//id.wikipedia.org/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(); } /** Magic editintros **************************************************** * * Deskripsi: Menambahkan editintro di halaman disambiguasi, halaman BLP, dan halaman lain yang diperlukan. * Pemelihara: [[User:RockMFR]] (en.wikipedia.org/wiki/MediaWiki:Common.js) */ functionaddEditIntro(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(){ varcats=mw.config.get('wgCategories'); if(!cats){ return; } if($.inArray('Orang hidup',cats)!==-1||$.inArray('Semua orang hidup',cats)!==-1){ addEditIntro('Template:BLP_editintro'); } }); } // 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.wikipedia.org/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.wikipedia.org */ 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 */ mw.loader.using('mediawiki.util').done(function(){ varextraCSS=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'}); } } }); (function(){ varconf=mw.config.get([ 'wgCanonicalSpecialPageName', 'wgUserGroups', 'wgPageName', 'wgUserName' ]); if(conf.wgPageName.indexOf('Wikipedia:Pernyataan_')===0&&conf.wgUserName!==null){ mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Bennylin/Vote.js&action=raw&ctype=text/javascript'); } }());
MediaWiki:Common.js
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA)
Lihat versi asli di Wikipedia