MediaWiki:Gadget-friendlyshared1.js
Görünüm
Not: Sayfayı kaydettikten sonra değişiklikleri görebilmek için tarayıcınızın önbelleğinizi temizlemeniz gerekir. Google Chrome, Firefox, Microsoft Edge ve Safari: ⇧ Shift tuşuna basılı tutun ve Yeniden Yükle araç çubuğu düğmesine tıklayın. Ayrıntılar ve diğer tarayıcılara yönelik yönergeler için Vikipedi:Önbelleğinizi atlayın sayfasını inceleyin.
//<nowiki>
(function($){
/*
****************************************
*** friendlyshared.js: Shared IP tagging module / Paylaşılan IP etiketleme modülü
****************************************
* Mode of invocation: Tab ("Shared")
* Active on: Existing IP user talk pages
* Config directives in: FriendlyConfig
*/
Twinkle.shared = function friendlyshared() {
if( mw.config.get('wgNamespaceNumber') === 3 && Morebits.isIPAddress(mw.config.get('wgTitle')) ) {
var username = mw.config.get('wgTitle').split( '/' )[0].replace( /\"/, "\\\""); // only first part before any slashes
Twinkle.addPortletLink( function(){ Twinkle.shared.callback(username); }, "Paylaşılan IP", "friendly-shared", "Paylaşılan IP etiketlemesi" );
}
};
Twinkle.shared.callback = function friendlysharedCallback( uid ) {
var Window = new Morebits.simpleWindow( 600, 420 );
Window.setTitle( "Paylaşılan IP adresi etiketleme" );
Window.setScriptName( "Twinkle" );
Window.addFooterLink( "Twinkle yardım", "Vikipedi tartışma:Twinkle" );
var form = new Morebits.quickForm( Twinkle.shared.callback.evaluate );
var div = form.append( {
type: 'div',
id: 'sharedip-templatelist',
className: 'morebits-scrollbox'
}
);
div.append( { type: 'header', label: 'Paylaşılan IP adresi şablonları' } );
div.append( { type: 'radio', name: 'shared', list: Twinkle.shared.standardList,
event: function( e ) {
Twinkle.shared.callback.change_shared( e );
e.stopPropagation();
}
} );
var org = form.append( { type:'field', label:'Diğer ayrıntıları doldurun (isteğe bağlı) ve \"İsteği gönder\" tuşuna basın.' } );
org.append( {
type: 'input',
name: 'organization',
label: 'IP adresi sahibi/yöneticisi',
disabled: true,
tooltip: 'İsteğe bağlı olarak IP adresinin sahibinin/yöneticisinin kullanıcı adını girebilirsiniz. Gerekirse wikimarkup kullanabilirsiniz.'
}
);
org.append( {
type: 'input',
name: 'host',
label: 'Ana bilgisayar adı (isteğe bağlı)',
disabled: true,
tooltip: 'Ana bilgisayar adı (örneğin, proxy.example.com) isteğe bağlı olarak buraya girilebilir. Bu, şablon tarafından bağlanır.'
}
);
org.append( {
type: 'input',
name: 'contact',
label: 'İletişim bilgileri (sadece talep edildiğinde)',
disabled: true,
tooltip: 'İsteğe bağlı olarak bazı iletişim bilgileri girebilirsiniz. Bu parametreyi yalnızca özel olarak eklenmesini istenirse kullanın. Gerekirse wikimarkup kullanabilirsiniz.'
}
);
form.append( { type:'submit' } );
var result = form.render();
Window.setContent( result );
Window.display();
};
Twinkle.shared.standardList = [
{
label: '{{Anonim IP}}: standart paylaşılan IP adresi şablonu',
value: 'Anonim IP',
tooltip: 'IP user talk page template that shows helpful information to IP users and those wishing to warn, block or ban them'
},
{
label: '{{Shared IP edu}}: shared IP address template modified for educational institutions',
value: 'Shared IP edu'
},
{
label: '{{Shared IP corp}}: shared IP address template modified for businesses',
value: 'Shared IP corp'
},
{
label: '{{Shared IP public}}: shared IP address template modified for public terminals',
value: 'Shared IP public'
},
{
label: '{{Shared IP gov}}: shared IP address template modified for government agencies or facilities',
value: 'Shared IP gov'
},
{
label: '{{Dynamic IP}}: shared IP address template modified for organizations with dynamic addressing',
value: 'Dynamic IP'
},
{
label: '{{Static IP}}: shared IP address template modified for static IP addresses',
value: 'Static IP'
},
{
label: '{{ISP}}: shared IP address template modified for ISP organizations (specifically proxies)',
value: 'ISP'
},
{
label: '{{Mobile IP}}: shared IP address template modified for mobile phone companies and their customers',
value: 'Mobile IP'
},
{
label: '{{Whois}}: template for IP addresses in need of monitoring, but unknown whether static, dynamic or shared',
value: 'Whois'
}
];
Twinkle.shared.callback.change_shared = function friendlysharedCallbackChangeShared(e) {
e.target.form.contact.disabled = (e.target.value !== 'Paylaşılan IP edu'); // only supported by {{Shared IP edu}}
e.target.form.organization.disabled = false;
e.target.form.host.disabled = (e.target.value === 'Whois'); // host= not supported by {{Whois}}
};
Twinkle.shared.callbacks = {
main: function( pageobj ) {
var params = pageobj.getCallbackParameters();
var pageText = pageobj.getPageText();
var found = false;
var text = '{{';
for( var i=0; i < Twinkle.shared.standardList.length; i++ ) {
var tagRe = new RegExp( '(\\{\\{' + Twinkle.shared.standardList[i].value + '(\\||\\}\\}))', 'im' );
if( tagRe.exec( pageText ) ) {
Morebits.status.warn( 'Bilgilendirme', 'Kullanıcı sayfasında {{' + Twinkle.shared.standardList[i].value + '}} bulundu...durduruluyor' );
found = true;
}
}
if( found ) {
return;
}
Morebits.status.info( 'Bilgilendirme', 'Paylaşılan IP adresi şablonu kullanıcı konuşma sayfasının üstüne eklenecek.' );
text += params.value + '|' + params.organization;
if( params.value === 'Paylaşılan IP edu' && params.contact !== '') {
text += '|' + params.contact;
}
if( params.value !== 'Whois' && params.host !== '' ) {
text += '|host=' + params.host;
}
text += '}}\n\n';
var summaryText = '{{[[Şablon:' + params.value + '|' + params.value + ']]}} şablonu eklendi.';
pageobj.setPageText(text + pageText);
pageobj.setEditSummary(summaryText + Twinkle.getPref('summaryAd'));
pageobj.setMinorEdit(Twinkle.getFriendlyPref('markSharedIPAsMinor'));
pageobj.setCreateOption('recreate');
pageobj.save();
}
};
Twinkle.shared.callback.evaluate = function friendlysharedCallbackEvaluate(e) {
var shared = e.target.getChecked( 'shared' );
if( !shared || shared.length <= 0 ) {
alert( 'Kullanmak için bir şablon seçmelisiniz!' );
return;
}
var value = shared[0];
if( e.target.organization.value === '') {
alert( '{{' + value + '}} şablonu için bir kuruluş girmelisiniz!' );
return;
}
var params = {
value: value,
organization: e.target.organization.value,
host: e.target.host.value,
contact: e.target.contact.value
};
Morebits.simpleWindow.setButtonsEnabled( false );
Morebits.status.init( e.target );
Morebits.wiki.actionCompleted.redirect = mw.config.get('wgPageName');
Morebits.wiki.actionCompleted.notice = "Etiketleme tamamlandı, mesaj sayfası birkaç saniye içinde yeniden yüklenecek";
var wikipedia_page = new Morebits.wiki.page(mw.config.get('wgPageName'), "Kullanıcı mesaj sayfası değişikliği");
wikipedia_page.setFollowRedirect(true);
wikipedia_page.setCallbackParameters(params);
wikipedia_page.load(Twinkle.shared.callbacks.main);
};
})(jQuery);
//</nowiki>