ഉപയോക്താവ്:Anoopan/wikilove.js

വിക്കിപീഡിയ, ഒരു സ്വതന്ത്ര വിജ്ഞാനകോശം.

ശ്രദ്ധിക്കുക: സേവ് ചെയ്തശേഷം മാറ്റങ്ങൾ കാണാനായി താങ്കൾക്ക് ബ്രൗസറിന്റെ കാഷെ ഒഴിവാക്കേണ്ടി വന്നേക്കാം.

  • ഫയർഫോക്സ് / സഫാരി: Reload ബട്ടൺ അമർത്തുമ്പോൾ Shift കീ അമർത്തി പിടിക്കുകയോ, Ctrl-F5 അല്ലെങ്കിൽ Ctrl-R (മാക്കിന്റോഷിൽ ⌘-R ) എന്ന് ഒരുമിച്ച് അമർത്തുകയോ ചെയ്യുക
  • ഗൂഗിൾ ക്രോം: Ctrl-Shift-R (മാക്കിന്റോഷിൽ ⌘-Shift-R ) അമർത്തുക
  • ഇന്റർനെറ്റ് എക്സ്പ്ലോറർ: Refresh ബട്ടൺ അമർത്തുമ്പോൾ Ctrl കീ അമർത്തിപിടിക്കുക. അല്ലെങ്കിൽ Ctrl-F5 അമർത്തുക
  • ഓപ്പറ: Menu → Settings എടുക്കുക (മാക്കിൽ Opera → Preferences) എന്നിട്ട് Privacy & security → Clear browsing data → Cached images and files ചെയ്യുക.
//<nowiki>
if (( wgCanonicalNamespace == 'User_talk' && wgAction == 'view' && skin == 'vector' )) {
  // Script depends on jQuery dialog widget
  mw.loader.using( 'jquery.ui', function() {
    // Construct object (to prevent namespace conflicts)
    wikiLove = {

      displayProgress: function( form, message ) {
        $('#'+form+' div').hide(); // remove everything else from the dialog box
        $('#'+form).append ( $('<div style="text-align:center;margin:3em 0;"></div>').html( message+'<br/><img src="http://upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif" />' ) );
      },
      
      displayError: function( form, error ) {
        $('#'+form+' div').hide(); // remove everything else from the dialog box
        $('#'+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];
              wikiLove.editToken = data.query.pages[pageid].edittoken;
            }
          }
        });
      },
      
      getEmailable: function() {
        // Test to see if the 'E-mail this user' link exists
        wikiLove.emailable = $('#t-emailuser').length ? true : false;
      },
      
      editPage: function( form, summary, template ) {
        $.ajax({
          url: wgScriptPath + '/api.php?',
          data: 'action=edit&title='+encodeURIComponent(mw.config.get('wgPageName'))+'&section=new&summary='+encodeURIComponent(summary)+'&text='+encodeURIComponent(template)+'&format=json&token='+encodeURIComponent(wikiLove.editToken),
          dataType: 'json',
          type: 'POST',
          success: function( data ) {
            if ( data.edit.result == "Success" ) {
              window.location.reload();
            } else {
              wikiLove.displayError( form, 'Unknown result from API.' );
            }
          },
          error: function( xhr ) {
            wikiLove.displayError( form, 'Edit failed.' );
            //console.debug( xhr.responseText );
          }
        });
      },
      
      sendEmail: function( form, subject, text ) {
        $.ajax({
          url: wgScriptPath + '/api.php?',
          data: 'action=emailuser&target='+encodeURIComponent(wgTitle)+'&subject='+encodeURIComponent(subject)+'&text='+encodeURIComponent(text)+'&format=json&token='+encodeURIComponent(wikiLove.editToken),
          dataType: 'json',
          type: 'POST'
        });
      },

      launchDialog: function( interface, emailOption ) {
        if ( emailOption && typeof wikiLove.emailable !== 'undefined' && wikiLove.emailable ) {
          if ( typeof interface.data('emailCheckboxAppended') == 'undefined' ) {
            interface.append( $('<div style="margin-top:0.4em;"></div>').html('<input type="checkbox" name="notify"/> Notify user by email') );
            interface.data('emailCheckboxAppended', true);
          }
        }
        interface.dialog('open');
        wikiLove.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');
              })
            });
          });
        };
      
        // List of all available barnstars
        var $barnstarList = [
          'The Original Barnstar',
          'The Editor\'s Barnstar',
          'The Working Man\'s Barnstar',
          'The Minor Barnstar',
          'The Random Acts of Kindness Barnstar',
          'The Barnstar of Diligence',
          'The Surreal Barnstar',
          'The Tireless Contributor Barnstar',
          'The Photographer\'s Barnstar',
          'The Defender of the Wiki Barnstar',
          'The Anti-Vandalism Barnstar',
          'The Barnstar of Good Humor',
          'The Graphic Designer\'s Barnstar',
          'The Copyeditor\'s Barnstar',
          'The Special Barnstar',
          'The Citation Barnstar',
          'The Teamwork Barnstar'
        ];
        
        // Define barnstar interface
        $barnstars = $('<div id="barnstarForm" style="position:relative;"></div>')
          .append( $('<div style="margin-top:0.4em;"></div>').html( 'Select barnstar: ' ).append( $('<select id="barnstarSelect" style="padding:1px;vertical-align:baseline;"></select>') ) )
          .append( $('<div style="margin-top:0.4em;"></div>').html( 'Enter a message (without a signature):<br/>' ).append( $('<textarea name="message" id="barnstarMessage" style="width:99%" rows="4" cols="60"></textarea>') ) )
          .dialog({
            width: 500,
            autoOpen: false,
            title: 'Award a barnstar',
            modal: true,
            buttons: { "Award barnstar": function() { 
              $(this).dialog({buttons:{}});
              if ( typeof wikiLove.editToken !== 'undefined' ) {
                if ( $('#barnstarForm input[name="notify"]').attr('checked') ) {
                  // Send email
                  wikiLove.sendEmail( 'barnstarForm', 'You\'ve been awarded a barnstar!', 'Hello '+wgTitle+'!\n\nI just awarded you '+$('#barnstarSelect').val()+' on your English Wikipedia talk page.' );
                }
                // Perform edit to page
                wikiLove.displayProgress( 'barnstarForm', 'Adding barnstar to page...' );
                var template = '{{subst:'+$('#barnstarSelect').val()+'|'+$('#barnstarMessage').val() +' ~~~~}}';
                wikiLove.editPage( 'barnstarForm', 'Barnstar', template );
              } else {
                wikiLove.displayError( 'barnstarForm', 'Could not retrieve edit token.' );
              }
            }}
          });
    
        // Populate barnstar select list
        $.each( $barnstarList, function(index, value) { $('#barnstarSelect').append( $('<option></option>').val(value).html(value) ); });

        // Define kitten interface
        $kittens = $('<div id="kittenForm" style="position:relative;"></div>')
          .html( '<input type="hidden" id="kittenSelected" name="kittenSelected" value="Kitten-stare.jpg"/>' )
          .append( $('<div style="margin-top:0.4em;"></div>').html( 'Select which kitten you want to give:' ) )
          .append( $('<div style="margin-top:1em;text-align:center;" id="kitten"></div>')
            .html( '<img width="80" height="60" src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/cc/Kitten-stare.jpg/80px-Kitten-stare.jpg" title="Kitten-stare.jpg" alt="Staring kitten"/><img width="80" height="60" src="http://upload.wikimedia.org/wikipedia/commons/thumb/9/9f/Cucciolo_gatto_Bibo.jpg/80px-Cucciolo_gatto_Bibo.jpg" title="Cucciolo_gatto_Bibo.jpg" alt="Kitten sticking tongue out"/><img width="80" height="60" src="http://upload.wikimedia.org/wikipedia/commons/thumb/8/87/Kitten_%2806%29_by_Ron.jpg/80px-Kitten_%2806%29_by_Ron.jpg" title="Kitten_(06)_by_Ron.jpg" alt="Attack kitten"/>' )
          )
          .dialog({
            width: 400,
            autoOpen: false,
            title: 'Give a kitten',
            modal: true,
            buttons: { "Give kitten": function() {
              $(this).dialog({buttons:{}});
              if ( typeof wikiLove.editToken !== 'undefined' ) {
                if ( $('#kittenForm input[name="notify"]').attr('checked') ) {
                  // Send email
                  wikiLove.sendEmail( 'kittenForm', 'You\'ve been given a kitten!', 'Hello '+wgTitle+'!\n\nI just left a kitten for you on your English Wikipedia talk page.' );
                }
                // Perform edit to page
                wikiLove.displayProgress( 'kittenForm', 'Adding kitten to page...' );
                var template = '{{subst:Kitten|image='+$('#kittenSelected').val()+'}}';
                wikiLove.editPage( 'kittenForm', 'Kitten', template );
              } else {
                wikiLove.displayError( 'kittenForm', 'Could not retrieve edit token.' );
              }
            }}
          });
    
        // Apply special image selection interface for choosing kittens
        $('#kitten').selectItem();
    
        // Insert new tab into page
        var menuBarnstar = '<li id="wl-barnstar"><span><a onclick="wikiLove.launchDialog( $barnstars, true ); return false;" href="#">Barnstar</a></span></li>';
        var menuKitten = '<li id="wl-cookie"><span><a onclick="wikiLove.launchDialog( $kittens, false ); return false;" href="#">Kitten</a></span></li>';
        var wikiLoveMenu = '<div class="vectorMenu" id="p-wikilove"><h5><span>WikiLove</span><a href="#" style="padding:0 0.4em;width:auto;"><span style="display:inline-block;height:2.5em;width:16px;margin-right:14px;background-position:0 60%;background-image:url(http://upload.wikimedia.org/wikipedia/commons/b/bd/Silk_heart_icon.png);background-repeat:no-repeat;">&nbsp;</span></a></h5><div class="menu"><ul>'+menuBarnstar+menuKitten+'</ul></div></div>';
        $('#p-cactions').after(wikiLoveMenu);

      } // close initialize function

    } // close wikiLove object
    wikiLove.initialize();
    wikiLove.getEmailable();
  }) // close mw.loader
} // close if
//</nowiki>
"https://ml.wikipedia.org/w/index.php?title=ഉപയോക്താവ്:Anoopan/wikilove.js&oldid=3533627" എന്ന താളിൽനിന്ന് ശേഖരിച്ചത്