மீடியாவிக்கி:Friendlyshared.js
குறிப்பு - சேமித்த பின்னர், நீங்கள் செய்த மாற்றங்களைக் காண்பதற்கு உங்கள் உலவியின் இடைமாற்று அகற்றப்பட வேண்டும்.
- மொஸில்லா பயர்பாக்ஸ் / சபாரி: Shift+Reload, அல்லது Ctrl-F5 அல்லது Ctrl-R (⌘-R Mac ல்)
- கூகிள் குரோம் Ctrl-Shift-R அழுத்தவும். (⌘-Shift-R Mac ல்) ;
- இண்டர்நெட் எக்ஸ்ப்ளோரர்: Ctrl-Refresh அல்லது Ctrl-F5 ஐ அழுத்தவும்.
- ஒபேரா: Tools → Preferences இல் இடைமாற்றை அகற்றவும்;
// <nowiki>
// If FriendlyConfig aint exist.
if( typeof( FriendlyConfig ) == 'undefined' ) {
FriendlyConfig = {};
}
/**
FriendlyConfig.summaryAd ( string )
If ad should be added or not to summary, default [[WP:FRIENDLY|Friendly]]
*/
if( typeof( FriendlyConfig.summaryAd ) == 'undefined' ) {
FriendlyConfig.summaryAd = " using [[WP:FRIENDLY|Friendly]]";
}
/**
FriendlyConfig.markSharedIPAsMinor ( boolean )
*/
if( typeof( FriendlyConfig.markSharedIPAsMinor ) == 'undefined' ) {
FriendlyConfig.markSharedIPAsMinor = true;
}
$.when( $.ready, mw.loader.using( 'mediawiki.util' ) ).then( friendlyshared );
function friendlyshared() {
if( mw.config.get('wgNamespaceNumber') == 3 && isIPAddress( mw.config.get('wgTitle') ) ) {
var username = mw.config.get('wgTitle').split( '/' )[0].replace( /\"/, "\\\""); // only first part before any slashes
mw.util.addPortletLink( 'p-cactions', "javascript:friendlyshared.callback(\"" + username + "\")", "shared ip", "friendly-shared", "Shared IP tagging", "");
}
}
friendlyshared.callback = function friendlysharedCallback( uid ) {
var Window = new SimpleWindow( 600, 400 );
Window.setTitle( "Choose a shared IP address template" );
var form = new QuickForm( friendlyshared.callback.evaluate );
form.append( { type:'header', label:'Shared IP address templates' } );
form.append( { type: 'radio', name: 'shared', list: friendlyshared.standardList,
event: function( e ) {
friendlyshared.callback.change_shared( e );
e.stopPropagation();
} } );
var org = form.append( { type:'field', label:'Fill in IP address owner/operator (if applicable) and hit \"Submit\"' } );
org.append( {
type: 'input',
name: 'organization',
label: 'Organization name',
disabled: true,
tooltip: 'Some of these templates support an optional parameter for the organization name that owns/operates the IP address. The organization name can be entered here for those templates, including wikimarkup (if applicable).'
}
);
form.append( { type:'submit' } );
var result = form.render();
Window.setContent( result );
Window.display();
}
friendlyshared.standardList = [
{
label: '{{sharedip}}: standard shared IP address template',
value: 'sharedip',
tooltip: 'IP user talk page template that shows helpful information to IP users and those wishing to warn or ban them' },
{
label: '{{sharedipedu}}: shared IP address template modified for educational institutions',
value: 'sharedipedu' },
{
label: '{{sharedippublic}}: shared IP address template modified for public terminals',
value: 'sharedippublic' },
{
label: '{{dynamicip}}: shared IP address template modified for organizations with dynamic addressing',
value: 'dynamicip' },
{
label: '{{isp}}: shared IP address template modified for ISP organizations',
value: 'isp' },
{
label: '{{singnet}}: shared IP address template for SingNet addresses',
value: 'singnet' },
{
label: '{{aberwebcacheipaddress}}: shared IP address template for Aberystwyth University addresses',
value: 'aberwebcacheipaddress' }
]
friendlyshared.callback.change_shared = function friendlytagCallbackChangeShared(e) {
if( e.target.value != 'singnet' && e.target.value != 'aberwebcacheipaddress' ) {
e.target.form.organization.disabled = false;
} else {
e.target.form.organization.disabled = true;
}
}
friendlyshared.callbacks = {
main: function( self ) {
var form = self.responseXML.getElementById( 'editform' );
var found = false;
var text = '{{';
for( var i=0; i < friendlyshared.standardList.length; i++ ) {
tagRe = new RegExp( '(\{\{' + friendlyshared.standardList[i].value + '(\||\}\}))', 'im' );
if( tagRe.exec( form.wpTextbox1.value ) ) {
Status.info( 'Info', 'Found {{' + friendlyshared.standardList[i].value + '}} on the user\'s talk page already...aborting' );
found = true;
text = form.wpTextbox1.value;
}
}
if( !found ) {
Status.info( 'Info', 'Will add the shared IP address template to the top of the user\'s talk page.' );
text += self.params.value;
if( self.params.value != 'singnet' && self.params.value != 'aberwebcacheipaddress' ) {
text += '|' + self.params.organization;
}
text += '}}\n\n' + form.wpTextbox1.value;
}
var postData = {
'wpMinoredit': FriendlyConfig.markSharedIPAsMinor ? 1 : undefined,
'wpWatchthis': form.wpWatchthis.checked ? 1 : undefined,
'wpStarttime': form.wpStarttime.value,
'wpEdittime': form.wpEdittime.value,
'wpAutoSummary': form.wpAutoSummary.value,
'wpEditToken': form.wpEditToken.value,
'wpSummary': 'Added \{\{[[Template:' + self.params.value + '|' + self.params.value + ']]\}\} template to user talk page.' + FriendlyConfig.summaryAd,
'wpTextbox1': text
};
self.post( postData );
}
}
friendlyshared.callback.evaluate = function friendlysharedCallbackEvaluate(e) {
if( getChecked( e.target.shared ).length != 1 ) {
alert( 'You must select a shared IP address template to use!' );
return;
}
var value = getChecked( e.target.shared )[0];
if( value != 'singnet' && value != 'aberwebcacheipaddress' && e.target.organization.value == '') {
alert( 'You must input an organization for the {{' + value + '}} template!' );
return;
}
var params = {
value: value,
organization: e.target.organization.value
};
Status.init( e.target );
var query = {
'title': mw.config.get('wgPageName'),
'action': 'submit'
};
Wikipedia.actionCompleted.redirect = mw.config.get('wgPageName');
Wikipedia.actionCompleted.notice = "Shared IP tagging complete, reloading talk page in some seconds";
var wikipedia_wiki = new Wikipedia.wiki( 'User talk page modification', query, friendlyshared.callbacks.main );
wikipedia_wiki.params = params;
wikipedia_wiki.get();
}
// </nowiki>