மீடியாவிக்கி: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>
"https://ta.wikipedia.org/w/index.php?title=மீடியாவிக்கி:Friendlyshared.js&oldid=3105133" இலிருந்து மீள்விக்கப்பட்டது