مدیاویکی:Common.js: تفاوت میان نسخهها
ظاهر
+خالی کردن میانگیر |
بروزرسانی - ابزار خالی کردن میانگیر در جای دیگری قرار گرفت |
||
| خط ۱: | خط ۱: | ||
/** | |||
* Scripts imported from wikisource.org | |||
*/ | |||
//Correcting rtl direction in index edit pages for Proofreadpage extention | |||
if (mw.config.get('wgNamespaceNumber') == 106) { | |||
if (mw.config.get('wgAction') == "edit") { | |||
$(function () { setTimeout(function () { $("textarea[name=Pages], textarea[name=Remarks]").attr('dir', 'ltr'); }, 1000); }); | |||
} | |||
} | |||
// Messages are configurable here | |||
self.ws_messages = { | |||
'optlist':'تنظیمات نمایش', | |||
'hide_page_numbers':'پنهان کردن شماره برگ', | |||
'show_page_numbers':'نمایش دادن شماره برگ', | |||
'layout':'نمایش', | |||
'author':'نویسنده', | |||
'translator':'مترجم', | |||
'editor':'ویراستار', | |||
'publisher':'ناشر', | |||
'place':'مکان', | |||
'volume':'جلد', | |||
'school':'مدرسه', | |||
'book':'کتاب', | |||
'collection':'گردآوری', | |||
'journal':'ژورنال و مجله', | |||
'phdthesis':'پایاننامه', | |||
'dictionary':'فرهنگلغت', | |||
'progress':'روند', | |||
'progress_T':'انجام شد', | |||
'progress_V':'نمونهخوانی شد', | |||
'progress_C':'باید نمونهخوانی شود', | |||
'progress_MS':'در انتظار همتایابی و جداسازی', | |||
'progress_OCR':'نیازمند لایه متنی اوسیآر', | |||
'progress_L':'پرونده مبدأ مشکل دارد (بدون برگاست، برگ در دسترس نیست، موارد دیگر)', | |||
'▲':'بازگشت به بالای صفحه', | |||
'corr_list':"فهرست نمونهخوانیهای انجام شده بر روی این برگ" , | |||
'corr_link':"تصحیح" , | |||
'corr_one':"یک اشتباه چاپی </a> تصحیح شد" , | |||
'corr_many':" اشتباههای چاپی</a> تصحیح شدند" , | |||
'corr_close':"بسته" , | |||
'iwtrans':'مبدا متن', | |||
'iwtrans2':'مبدا متن از ویکینبشتههای دیگر' | |||
}; | |||
self.ws_layouts = { | |||
'نمایش یک':{ | |||
'#text-wrap':"", | |||
'#text-container':"" , | |||
'#text':"", | |||
'.sidenote-right':"float:right;margin:0.5em;padding:3px;border:solid 1px gray;max-width:9em;text-indent:0em;text-align:left;", | |||
'.sidenote-left':"float:left;margin:0.5em;padding:3px;border:solid 1px gray;max-width:9em;text-indent:0em;text-align:left;", | |||
'.editsection':"display:none", | |||
'#headertemplate':""}, | |||
'نمایش دو':{ | |||
'#text-wrap':"position:relative;margin-left:3em;margin-right:3em;", | |||
'#text-container':"width:36em;margin:0px auto;font-family:Georgia,serif;" , | |||
'#text':"text-align:justify;", | |||
'.sidenote-right':"position:absolute; left:37em;width:16em;text-indent:0em;text-align:left;", | |||
'.sidenote-left':"position:absolute; right:37em;width:16em;text-indent:0em;text-align:right;", | |||
'.editsection':"display:none", | |||
'#headertemplate':""}, | |||
'نمایش سه':{ | |||
'#text-wrap':"margin-left:3em", | |||
'#text-container':"position:relative; min-width:60em; float:left; width:100%; margin-right:-23em;" , | |||
'#text':"text-align:justify;margin-right:23em; text-indent:0em; padding-left:0px; padding-right:0px;width:auto; position:relative;", | |||
'.sidenote-right':"position:absolute; right:-10em; width:9em; background-color:#eeeeee;text-indent:0em;text-align:left;", | |||
'.sidenote-left':"position:absolute; right:-10em; width:9em; background-color:#eeeeee;text-indent:0em;text-align:left;", | |||
'.editsection':"display:none", | |||
'#headertemplate':"position:absolute; top:0em; right:-23em; width:21em;float:right; text-align:left;"} | |||
}; | |||
self.proofreadpage_add_container = true; | |||
var old_wgserver = '//wikisource.org'; | |||
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Base.js&action=raw&ctype=text/javascript'); | |||
/*mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:OCR.js&action=raw&ctype=text/javascript');*/ | |||
mw.loader.load('//fa.wikisource.org/w/index.php?title=MediaWiki:PageNumbers.js&action=raw&ctype=text/javascript'); | |||
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Modernisation.js&action=raw&ctype=text/javascript'); | |||
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Corrections.js&action=raw&ctype=text/javascript'); | |||
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:DisplayFooter.js&action=raw&ctype=text/javascript'); | |||
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:InterWikiTransclusion.js&action=raw&ctype=text/javascript'); | |||
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:IndexForm.js&action=raw&ctype=text/javascript'); | |||
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Dictionary.js&action=raw&ctype=text/javascript'); | |||
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:RegexpButton.js&action=raw&ctype=text/javascript'); | |||
mw.loader.load(mw.config.get('wgServer') + '/w/index.php?title=MediaWiki:MediaWiki.panel.js&action=raw&ctype=text/javascript' ); | |||
// Mouse wheel zoom should work now for most browsers. | |||
// If it does not work for you, set this to true in your javascript. | |||
self.proofreadpage_disable_wheelzoom = false; | |||
/* Any JavaScript here will be loaded for all users on every page load. */ | /* Any JavaScript here will be loaded for all users on every page load. */ | ||
/** | |||
* قرار دادن فرمولهای ریاضی در سمت چپ مناسب برای ویکیهای راست به چپ | |||
*/ | |||
$(function(){ | |||
$("img.tex, span.texhtml").each(function(){ | |||
if($(this).parent().text().trim() == $(this).text() && $(this).parent().is("p,dd")) | |||
$(this).parent().css({direction: "ltr", padding: "1em 0"}); | |||
}); | |||
}); | |||
/** | |||
* جهت صفحات کدهای منبع پایتون، سیاساس، جاوااسکریپت، سی، سی++ در هنگام ویرایش | |||
*/ | |||
if(/\.(js|css|py|cpp|c)$/.test(mw.config.get('wgPageName'))) | |||
mw.util.addCSS(".diff-addedline, .diff-deletedline, .diff-context { direction: ltr; }" + | |||
".diff-addedline > div, .diff-deletedline > div, .diff-context > div { white-space: pre; }" + | |||
"#wpTextbox1 { direction: ltr; }" ); | |||
/** Collapsible tables ********************************************************* | |||
* | |||
* Description: Allows tables to be collapsed, showing only the header. See | |||
* [[Wikipedia:NavFrame]]. | |||
* Maintainers: [[User:R. Koot]] | |||
*/ | |||
var autoCollapse = 2; | |||
var collapseCaption = "نهفتن"; | |||
var expandCaption = "نمایش"; | |||
function collapseTable( tableIndex ) | |||
{ | |||
var Button = document.getElementById( "collapseButton" + tableIndex ); | |||
var Table = document.getElementById( "collapsibleTable" + tableIndex ); | |||
if ( !Table || !Button ) { | |||
return false; | |||
} | |||
var Rows = Table.rows; | |||
if ( Button.firstChild.data == collapseCaption ) { | |||
for ( var i = 1; i < Rows.length; i++ ) { | |||
Rows[i].style.display = "none"; | |||
} | |||
Button.firstChild.data = expandCaption; | |||
} else { | |||
for ( var i = 1; i < Rows.length; i++ ) { | |||
Rows[i].style.display = Rows[0].style.display; | |||
} | |||
Button.firstChild.data = collapseCaption; | |||
} | |||
} | |||
function createClickHandler( tableIndex ) { | |||
return function ( e ) { | |||
e.preventDefault(); | |||
collapseTable( tableIndex ); | |||
}; | |||
} | |||
function createCollapseButtons() | |||
{ | |||
var tableIndex = 0; | |||
var NavigationBoxes = {}; | |||
var Tables = document.getElementsByTagName( "table" ); | |||
for ( var 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 */ | |||
var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0]; | |||
if (!HeaderRow) continue; | |||
var Header = HeaderRow.getElementsByTagName( "th" )[0]; | |||
if (!Header) continue; | |||
NavigationBoxes[ tableIndex ] = Tables[i]; | |||
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex ); | |||
var Button = document.createElement( "span" ); | |||
var ButtonLink = document.createElement( "a" ); | |||
var 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', createClickHandler( tableIndex ) ); | |||
ButtonLink.appendChild( ButtonText ); | |||
Button.appendChild( document.createTextNode( "[" ) ); | |||
Button.appendChild( ButtonLink ); | |||
Button.appendChild( document.createTextNode( "]" ) ); | |||
Header.insertBefore( Button, Header.firstChild ); | |||
tableIndex++; | |||
} | |||
} | |||
for ( var i = 0; i < tableIndex; i++ ) { | |||
if ( $( NavigationBoxes[i] ).hasClass( "collapsed" ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( "autocollapse" ) ) ) { | |||
collapseTable( i ); | |||
} | |||
else if ( $( NavigationBoxes[i] ).hasClass( "innercollapse" ) ) { | |||
var element = NavigationBoxes[i]; | |||
while (element = element.parentNode) { | |||
if ( $( element ).hasClass( "outercollapse" ) ) { | |||
collapseTable ( i ); | |||
break; | |||
} | |||
} | |||
} | } | ||
} | |||
} | |||
mw.hook( 'wikipage.content' ).add( 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 | |||
function toggleNavigationBar(indexNavigationBar) | |||
{ | |||
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar); | |||
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar); | |||
if (!NavFrame || !NavToggle) { | |||
return false; | |||
} | |||
// if shown now | |||
if (NavToggle.firstChild.data == NavigationBarHide) { | |||
for (var 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 (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { | |||
if ($(NavChild).hasClass('NavContent') || $(NavChild).hasClass('NavPic')) { | |||
NavChild.style.display = 'block'; | |||
} | |||
} | |||
NavToggle.firstChild.data = NavigationBarHide; | |||
} | |||
} | |||
new | // adds show/hide-button to navigation bars | ||
function createNavigationBarToggleButton() | |||
{ | |||
}). | var indexNavigationBar = 0; | ||
// iterate over all < div >-elements | |||
}). | var divs = document.getElementsByTagName("div"); | ||
for (var i = 0; NavFrame = divs[i]; i++) { | |||
// if found a navigation bar | |||
if ($(NavFrame).hasClass("NavFrame")) { | |||
}); | indexNavigationBar++; | ||
}); | var NavToggle = document.createElement("a"); | ||
NavToggle.className = 'NavToggle'; | |||
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar); | |||
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');'); | |||
var 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 (var 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 (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) { | |||
if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) { | |||
NavChild.style.display = 'none'; | |||
} | |||
} | |||
} | |||
var 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(var 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 ); | |||
/** | |||
* Test if an element has a certain class. | |||
* | |||
* @deprecated Use jQuery instead. | |||
*/ | |||
var hasClass = (function () { | |||
var reCache = {}; | |||
return function (element, className) { | |||
return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className); | |||
}; | |||
})(); | |||
/** | |||
* Quality indicators on "article" tab | |||
* by [[user:ThomasV]] | |||
*/ | |||
// Return src for icon given percentage | |||
function icon_src(t){ | |||
var src='//upload.wikimedia.org/wikipedia/commons/'; | |||
switch(t){ | |||
case '0%': src+='8/8f/00'; break; | |||
case '25%': src+='5/5b/25'; break; | |||
case '50%': src+='3/3a/50'; break; | |||
case '75%': src+='c/cd/75'; break; | |||
case '100%': src+='6/64/100'; break; | |||
} | |||
return src + '%25.png'; | |||
} | |||
// add indicator | |||
function pageQuality() { | |||
var a = document.getElementById('ca-nstab-main'); | |||
if(!a) return; | |||
var pr_index = document.getElementById('pr_index'); | |||
if(pr_index) return; | |||
var q = document.getElementById('textquality'); | |||
var new_img; | |||
if(q) { | |||
new_img = document.createElement('img'); | |||
new_img.setAttribute('src', icon_src(q.className)); | |||
a.firstChild.appendChild(new_img); | |||
} | |||
for(var i=0; spanElem = document.getElementsByTagName('span')[i]; i++) { | |||
if (spanElem.className == 'pagequality') { | |||
new_img = document.createElement('img'); | |||
new_img.setAttribute('src', icon_src(spanElem.title)); | |||
if(mw.config.get('wgCanonicalNamespace') == 'Page') { | |||
a.firstChild.appendChild(new_img); | |||
} | |||
else { | |||
s1 = spanElem.parentNode.previousSibling; | |||
opttext = s1.firstChild.firstChild; | |||
img = opttext.firstChild.nextSibling.nextSibling.nextSibling; | |||
next = img.nextSibling; | |||
opttext.removeChild(img); | |||
opttext.insertBefore(new_img,next); | |||
} | |||
} | |||
} | |||
} | |||
$(pageQuality); | |||
// Add link to the extension [[user:sanbeg]] | |||
function pr_add_quality_buttons_link(){ | |||
if(typeof proofreadPageMessageStatus == 'undefined') return; | |||
if( self.proofreadpage_no_quality_buttons ) return; | |||
var ig = document.getElementById("wpWatchthis"); | |||
if( !ig ) return; | |||
var f = document.createElement("span"); | |||
f.innerHTML = ' (<a href="/wiki/Help:Page Status">help</a>)'; | |||
ig.parentNode.insertBefore(f,ig.nextSibling.nextSibling.nextSibling.nextSibling); | |||
} | |||
$(pr_add_quality_buttons_link); | |||
/** | |||
* Allow descriptive labels next to sidebar language links using {{interwiki-info}} | |||
* by [[user:ThomasV]] | |||
*/ | |||
function interwikiExtra() { | |||
// iterate over all <span>-elements | |||
for(var i=0; a=document.getElementsByTagName('span')[i]; i++) { | |||
// if found a linkInfo span | |||
if(a.className == 'interwiki-info') { | |||
// iterate over all <li>-elements | |||
var count=0; | |||
for(var j=0; b=document.getElementsByTagName('li')[j]; j++) { | |||
if(b.className == 'interwiki-' + a.id) { | |||
b.innerHTML = b.innerHTML + ' ' + a.title; | |||
if(a.title == '(vo)') { | |||
b.title = 'Original Version'; | |||
} | |||
} | |||
else if(b.className == 'interwiki-' + a.id.substr(0, a.id.length-1)) { | |||
count++; | |||
if(a.id.charAt(a.id.length-1) == count) { | |||
b.innerHTML = b.innerHTML + ' ' + a.title; | |||
} | |||
} | |||
} | |||
} | |||
} | |||
} | |||
$(interwikiExtra); | |||
//adding combo box to edittools.js | |||
var load_edittools = true; | |||
// extra drop down menu on editing for adding special characters | |||
importScript( 'MediaWiki:Edittools.js' ); | |||
// Editpage scripts | |||
if( $.inArray(mw.config.get('wgAction'), ['edit' , 'submit' ]) !== -1) { | |||
importScript( 'MediaWiki:Editpage.js' ); | |||
} | |||
نسخهٔ کنونی تا ۹ نوامبر ۲۰۲۶، ساعت ۱۰:۰۶
/**
* Scripts imported from wikisource.org
*/
//Correcting rtl direction in index edit pages for Proofreadpage extention
if (mw.config.get('wgNamespaceNumber') == 106) {
if (mw.config.get('wgAction') == "edit") {
$(function () { setTimeout(function () { $("textarea[name=Pages], textarea[name=Remarks]").attr('dir', 'ltr'); }, 1000); });
}
}
// Messages are configurable here
self.ws_messages = {
'optlist':'تنظیمات نمایش',
'hide_page_numbers':'پنهان کردن شماره برگ',
'show_page_numbers':'نمایش دادن شماره برگ',
'layout':'نمایش',
'author':'نویسنده',
'translator':'مترجم',
'editor':'ویراستار',
'publisher':'ناشر',
'place':'مکان',
'volume':'جلد',
'school':'مدرسه',
'book':'کتاب',
'collection':'گردآوری',
'journal':'ژورنال و مجله',
'phdthesis':'پایاننامه',
'dictionary':'فرهنگلغت',
'progress':'روند',
'progress_T':'انجام شد',
'progress_V':'نمونهخوانی شد',
'progress_C':'باید نمونهخوانی شود',
'progress_MS':'در انتظار همتایابی و جداسازی',
'progress_OCR':'نیازمند لایه متنی اوسیآر',
'progress_L':'پرونده مبدأ مشکل دارد (بدون برگاست، برگ در دسترس نیست، موارد دیگر)',
'▲':'بازگشت به بالای صفحه',
'corr_list':"فهرست نمونهخوانیهای انجام شده بر روی این برگ" ,
'corr_link':"تصحیح" ,
'corr_one':"یک اشتباه چاپی </a> تصحیح شد" ,
'corr_many':" اشتباههای چاپی</a> تصحیح شدند" ,
'corr_close':"بسته" ,
'iwtrans':'مبدا متن',
'iwtrans2':'مبدا متن از ویکینبشتههای دیگر'
};
self.ws_layouts = {
'نمایش یک':{
'#text-wrap':"",
'#text-container':"" ,
'#text':"",
'.sidenote-right':"float:right;margin:0.5em;padding:3px;border:solid 1px gray;max-width:9em;text-indent:0em;text-align:left;",
'.sidenote-left':"float:left;margin:0.5em;padding:3px;border:solid 1px gray;max-width:9em;text-indent:0em;text-align:left;",
'.editsection':"display:none",
'#headertemplate':""},
'نمایش دو':{
'#text-wrap':"position:relative;margin-left:3em;margin-right:3em;",
'#text-container':"width:36em;margin:0px auto;font-family:Georgia,serif;" ,
'#text':"text-align:justify;",
'.sidenote-right':"position:absolute; left:37em;width:16em;text-indent:0em;text-align:left;",
'.sidenote-left':"position:absolute; right:37em;width:16em;text-indent:0em;text-align:right;",
'.editsection':"display:none",
'#headertemplate':""},
'نمایش سه':{
'#text-wrap':"margin-left:3em",
'#text-container':"position:relative; min-width:60em; float:left; width:100%; margin-right:-23em;" ,
'#text':"text-align:justify;margin-right:23em; text-indent:0em; padding-left:0px; padding-right:0px;width:auto; position:relative;",
'.sidenote-right':"position:absolute; right:-10em; width:9em; background-color:#eeeeee;text-indent:0em;text-align:left;",
'.sidenote-left':"position:absolute; right:-10em; width:9em; background-color:#eeeeee;text-indent:0em;text-align:left;",
'.editsection':"display:none",
'#headertemplate':"position:absolute; top:0em; right:-23em; width:21em;float:right; text-align:left;"}
};
self.proofreadpage_add_container = true;
var old_wgserver = '//wikisource.org';
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Base.js&action=raw&ctype=text/javascript');
/*mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:OCR.js&action=raw&ctype=text/javascript');*/
mw.loader.load('//fa.wikisource.org/w/index.php?title=MediaWiki:PageNumbers.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Modernisation.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Corrections.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:DisplayFooter.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:InterWikiTransclusion.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:IndexForm.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:Dictionary.js&action=raw&ctype=text/javascript');
mw.loader.load(old_wgserver + '/w/index.php?title=MediaWiki:RegexpButton.js&action=raw&ctype=text/javascript');
mw.loader.load(mw.config.get('wgServer') + '/w/index.php?title=MediaWiki:MediaWiki.panel.js&action=raw&ctype=text/javascript' );
// Mouse wheel zoom should work now for most browsers.
// If it does not work for you, set this to true in your javascript.
self.proofreadpage_disable_wheelzoom = false;
/* Any JavaScript here will be loaded for all users on every page load. */
/**
* قرار دادن فرمولهای ریاضی در سمت چپ مناسب برای ویکیهای راست به چپ
*/
$(function(){
$("img.tex, span.texhtml").each(function(){
if($(this).parent().text().trim() == $(this).text() && $(this).parent().is("p,dd"))
$(this).parent().css({direction: "ltr", padding: "1em 0"});
});
});
/**
* جهت صفحات کدهای منبع پایتون، سیاساس، جاوااسکریپت، سی، سی++ در هنگام ویرایش
*/
if(/\.(js|css|py|cpp|c)$/.test(mw.config.get('wgPageName')))
mw.util.addCSS(".diff-addedline, .diff-deletedline, .diff-context { direction: ltr; }" +
".diff-addedline > div, .diff-deletedline > div, .diff-context > div { white-space: pre; }" +
"#wpTextbox1 { direction: ltr; }" );
/** Collapsible tables *********************************************************
*
* Description: Allows tables to be collapsed, showing only the header. See
* [[Wikipedia:NavFrame]].
* Maintainers: [[User:R. Koot]]
*/
var autoCollapse = 2;
var collapseCaption = "نهفتن";
var expandCaption = "نمایش";
function collapseTable( tableIndex )
{
var Button = document.getElementById( "collapseButton" + tableIndex );
var Table = document.getElementById( "collapsibleTable" + tableIndex );
if ( !Table || !Button ) {
return false;
}
var Rows = Table.rows;
if ( Button.firstChild.data == collapseCaption ) {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = "none";
}
Button.firstChild.data = expandCaption;
} else {
for ( var i = 1; i < Rows.length; i++ ) {
Rows[i].style.display = Rows[0].style.display;
}
Button.firstChild.data = collapseCaption;
}
}
function createClickHandler( tableIndex ) {
return function ( e ) {
e.preventDefault();
collapseTable( tableIndex );
};
}
function createCollapseButtons()
{
var tableIndex = 0;
var NavigationBoxes = {};
var Tables = document.getElementsByTagName( "table" );
for ( var 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 */
var HeaderRow = Tables[i].getElementsByTagName( "tr" )[0];
if (!HeaderRow) continue;
var Header = HeaderRow.getElementsByTagName( "th" )[0];
if (!Header) continue;
NavigationBoxes[ tableIndex ] = Tables[i];
Tables[i].setAttribute( "id", "collapsibleTable" + tableIndex );
var Button = document.createElement( "span" );
var ButtonLink = document.createElement( "a" );
var 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', createClickHandler( tableIndex ) );
ButtonLink.appendChild( ButtonText );
Button.appendChild( document.createTextNode( "[" ) );
Button.appendChild( ButtonLink );
Button.appendChild( document.createTextNode( "]" ) );
Header.insertBefore( Button, Header.firstChild );
tableIndex++;
}
}
for ( var i = 0; i < tableIndex; i++ ) {
if ( $( NavigationBoxes[i] ).hasClass( "collapsed" ) || ( tableIndex >= autoCollapse && $( NavigationBoxes[i] ).hasClass( "autocollapse" ) ) ) {
collapseTable( i );
}
else if ( $( NavigationBoxes[i] ).hasClass( "innercollapse" ) ) {
var element = NavigationBoxes[i];
while (element = element.parentNode) {
if ( $( element ).hasClass( "outercollapse" ) ) {
collapseTable ( i );
break;
}
}
}
}
}
mw.hook( 'wikipage.content' ).add( 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
function toggleNavigationBar(indexNavigationBar)
{
var NavToggle = document.getElementById("NavToggle" + indexNavigationBar);
var NavFrame = document.getElementById("NavFrame" + indexNavigationBar);
if (!NavFrame || !NavToggle) {
return false;
}
// if shown now
if (NavToggle.firstChild.data == NavigationBarHide) {
for (var 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 (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
if ($(NavChild).hasClass('NavContent') || $(NavChild).hasClass('NavPic')) {
NavChild.style.display = 'block';
}
}
NavToggle.firstChild.data = NavigationBarHide;
}
}
// adds show/hide-button to navigation bars
function createNavigationBarToggleButton()
{
var indexNavigationBar = 0;
// iterate over all < div >-elements
var divs = document.getElementsByTagName("div");
for (var i = 0; NavFrame = divs[i]; i++) {
// if found a navigation bar
if ($(NavFrame).hasClass("NavFrame")) {
indexNavigationBar++;
var NavToggle = document.createElement("a");
NavToggle.className = 'NavToggle';
NavToggle.setAttribute('id', 'NavToggle' + indexNavigationBar);
NavToggle.setAttribute('href', 'javascript:toggleNavigationBar(' + indexNavigationBar + ');');
var 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 (var 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 (var NavChild = NavFrame.firstChild; NavChild != null; NavChild = NavChild.nextSibling) {
if ( $( NavChild ).hasClass( 'NavPic' ) || $( NavChild ).hasClass( 'NavContent' ) ) {
NavChild.style.display = 'none';
}
}
}
var 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(var 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 );
/**
* Test if an element has a certain class.
*
* @deprecated Use jQuery instead.
*/
var hasClass = (function () {
var reCache = {};
return function (element, className) {
return (reCache[className] ? reCache[className] : (reCache[className] = new RegExp("(?:\\s|^)" + className + "(?:\\s|$)"))).test(element.className);
};
})();
/**
* Quality indicators on "article" tab
* by [[user:ThomasV]]
*/
// Return src for icon given percentage
function icon_src(t){
var src='//upload.wikimedia.org/wikipedia/commons/';
switch(t){
case '0%': src+='8/8f/00'; break;
case '25%': src+='5/5b/25'; break;
case '50%': src+='3/3a/50'; break;
case '75%': src+='c/cd/75'; break;
case '100%': src+='6/64/100'; break;
}
return src + '%25.png';
}
// add indicator
function pageQuality() {
var a = document.getElementById('ca-nstab-main');
if(!a) return;
var pr_index = document.getElementById('pr_index');
if(pr_index) return;
var q = document.getElementById('textquality');
var new_img;
if(q) {
new_img = document.createElement('img');
new_img.setAttribute('src', icon_src(q.className));
a.firstChild.appendChild(new_img);
}
for(var i=0; spanElem = document.getElementsByTagName('span')[i]; i++) {
if (spanElem.className == 'pagequality') {
new_img = document.createElement('img');
new_img.setAttribute('src', icon_src(spanElem.title));
if(mw.config.get('wgCanonicalNamespace') == 'Page') {
a.firstChild.appendChild(new_img);
}
else {
s1 = spanElem.parentNode.previousSibling;
opttext = s1.firstChild.firstChild;
img = opttext.firstChild.nextSibling.nextSibling.nextSibling;
next = img.nextSibling;
opttext.removeChild(img);
opttext.insertBefore(new_img,next);
}
}
}
}
$(pageQuality);
// Add link to the extension [[user:sanbeg]]
function pr_add_quality_buttons_link(){
if(typeof proofreadPageMessageStatus == 'undefined') return;
if( self.proofreadpage_no_quality_buttons ) return;
var ig = document.getElementById("wpWatchthis");
if( !ig ) return;
var f = document.createElement("span");
f.innerHTML = ' (<a href="/wiki/Help:Page Status">help</a>)';
ig.parentNode.insertBefore(f,ig.nextSibling.nextSibling.nextSibling.nextSibling);
}
$(pr_add_quality_buttons_link);
/**
* Allow descriptive labels next to sidebar language links using {{interwiki-info}}
* by [[user:ThomasV]]
*/
function interwikiExtra() {
// iterate over all <span>-elements
for(var i=0; a=document.getElementsByTagName('span')[i]; i++) {
// if found a linkInfo span
if(a.className == 'interwiki-info') {
// iterate over all <li>-elements
var count=0;
for(var j=0; b=document.getElementsByTagName('li')[j]; j++) {
if(b.className == 'interwiki-' + a.id) {
b.innerHTML = b.innerHTML + ' ' + a.title;
if(a.title == '(vo)') {
b.title = 'Original Version';
}
}
else if(b.className == 'interwiki-' + a.id.substr(0, a.id.length-1)) {
count++;
if(a.id.charAt(a.id.length-1) == count) {
b.innerHTML = b.innerHTML + ' ' + a.title;
}
}
}
}
}
}
$(interwikiExtra);
//adding combo box to edittools.js
var load_edittools = true;
// extra drop down menu on editing for adding special characters
importScript( 'MediaWiki:Edittools.js' );
// Editpage scripts
if( $.inArray(mw.config.get('wgAction'), ['edit' , 'submit' ]) !== -1) {
importScript( 'MediaWiki:Editpage.js' );
}