مدیاویکی:Gadget-asbox.js
نکته: پس از انتشار ممکن است برای دیدن تغییرات نیاز باشد که حافظهٔ نهانی مرورگر خود را پاک کنید.
- فایرفاکس / سافاری: کلید Shift را نگه دارید و روی دکمهٔ Reload کلیک کنید، یا کلیدهای Ctrl-F5 یا Ctrl-R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-R)
- گوگل کروم: کلیدهای Ctrl+Shift+R را با هم فشار دهید (در رایانههای اپل مکینتاش کلیدهای ⌘-Shift-R)
- اینترنت اکسپلورر/ Edge: کلید Ctrl را نگهدارید و روی دکمهٔ Refresh کلیک کنید، یا کلیدهای Ctrl-F5 را با هم فشار دهید
- اپرا: Ctrl-F5 را بفشارید.
if (( mw.config.get('wgNamespaceNumber') === 0 && skin == 'vector' )) {
mw.loader.using( 'jquery.ui', function() {
stubAdd = {
displayProgress: function( form, message ) {
$('#'+form+' div').hide();
$('#'+form).append ( $('<div style="text-align:center;margin:3em 0;"></div>').html( message+'<br/><img src="//upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif" />' ) );
},
displayError: function( form, error ) {
$('#'+form+' div').hide();
$('#'+form).append ( $('<div style="color:#990000;margin-top:0.4em;"></div>').html( 'Error: '+error ) );
},
getEditToken: function() {
$.ajax({
url: wgScriptPath + '/api.php?',
data: 'action=query&prop=info&intoken=edit&titles=Main%20Page&indexpageids&format=json',
dataType: 'json',
success: function( data ) {
if ( data.query.pages && data.query.pageids ) {
var pageid = data.query.pageids[0];
stubAdd.editToken = data.query.pages[pageid].edittoken;
}
}
});
},
preparetext: function(form, summary, text){
$.ajax({
url: wgScriptPath + '/index.php?',
data: 'title='+encodeURIComponent(mw.config.get('wgPageName'))+'&action=raw&ctype=text/plain',
type: 'GET',
success: function( data ) {
data.replace(/\{\{\s*(پیچک|ناقص)\s*\}\}\n?/,""); // خالی پیچک شابلون ره گینه.
var splitedInterwiki = data.split(/^(?=\[\[[\w-]{2,}:)/m); // میونویکی ره پیدا و سوا کنه
if( !/\n\n/.test(splitedInterwiki[0]) )
plitedInterwiki[0] = plitedInterwiki[0] + "\n"; // اگر انتهای قسمت قبل دو خط بعد نبود، بگذارد
splitedInterwiki[0] = splitedInterwiki[0] + text + "\n"; // جای شابلون پیچک آخرین مکان قبل از اینترویکیها است
stubAdd.editPage( form, summary, splitedInterwiki.join("") ); // ادامهٔ کار
}
})
},
editPage: function( form, summary, text ) {
$.ajax({
url: wgScriptPath + '/api.php?',
data: 'action=edit&title='+encodeURIComponent(mw.config.get('wgPageName'))+'&summary='+encodeURIComponent(summary)+'&text='+encodeURIComponent(text)+'&format=json&token='+encodeURIComponent(stubAdd.editToken),
dataType: 'json',
type: 'POST',
success: function( data ) {
if ( data.edit.result == "Success" ) {
window.location.reload();
} else {
stubAdd.displayError( form, 'Unknown result from API.' );
}
},
error: function( xhr ) {
stubAdd.displayError( form, 'Edit failed.' );
//console.debug( xhr.responseText );
}
});
},
launchDialog: function( interface ) {
interface.dialog('open');
stubAdd.getEditToken();
},
initialize: function() {
// Function to make a list of images selectable
$.fn.selectItem = function() {
return this.each(function() {
var containerId = this.id;
var customId = 0;
$('#'+containerId+' img').css('border', '8px solid transparent');
$('#'+containerId+' img').each(function() {
if (this.id == '') {
this.id = 'select_img_' + customId;
customId++;
}
$('#'+this.id).click(function() {
$('#'+containerId+'Selected').val(this.title);
$('#'+containerId+' img').css('border', '8px solid transparent');
$('#'+this.id).css('border', '8px solid #AED0EA');
})
});
});
};
var $stublist = [];
$.ajax({
type: "GET",
async: false,
url: "/w/api.php?action=query&list=embeddedin&eititle=Template:Asbox&eilimit=500&einamespace=10&format=json",
success: function(data){
for ( i in data.query.embeddedin ) {
$stublist.push(data.query.embeddedin[i].title);
}
function sortPreparation(instr){ // solve persian problem on sorting by replace characters in strings
return instr.replace(/ی/g,"ي")
.replace(/ک/g,"ك")
.replace(/گ/g,"كی")
.replace(/ژ/g,"زی")
.replace(/چ/g,"جی")
.replace(/پ/g,"بی");
}
$stublist.sort(function(a,b){
var keyA = sortPreparation(a);
var keyB = sortPreparation(b);
if (keyA < keyB) return -1;
if (keyA > keyB) return 1;
return 0;
});
}
});
// Define stub interface
$stubs = $('<div id="stubForm" style="position:relative;"></div>')
.append( $('<div style="margin-top:0.4em;"></div>').html( 'انتخاب شابلونی پیچک: ' ).append( $('<select id="stubselect" style="padding:1px;vertical-align:baseline;"></select>') ) )
.dialog({
width: 500,
autoOpen: false,
title: 'پیچک شابلون ره بییشتن',
modal: true,
buttons: { "بلا": function() {
$(this).dialog({buttons:{}});
if ( typeof stubAdd.editToken !== 'undefined' ) {
// Perform edit to page
stubAdd.displayProgress( 'stubForm', 'پیچک شابلون ره بییشتن...' );
var template = '{{'+$('#stubselect').val()+'}}';
stubAdd.preparetext( 'stubForm', 'پیچک شابلون ره ابزار جا بییشتن', template );
} else {
stubAdd.displayError( 'stubForm', 'Could not retrieve edit token.' );
}
}}
});
$.each( $stublist, function(index, value) { $('#stubselect').append( $('<option></option>').val(value.replace(/^[^:]*:/,"")).html(value.replace(/^[^:]*:/,"")) ); });
// Insert new tab into page
var menustub = '<li id="wl-stub"><span><a onclick="stubAdd.launchDialog( $stubs, true ); return false;" href="#">پیچک</a></span></li>';
$('#p-cactions ul').append(menustub);
} // close initialize function
} // close stubAdd object
stubAdd.initialize();
}) // close mw.loader
} // close if
//</nowiki>