ବ୍ୟବହାରକାରୀ:Odisha1/wikilove1.js

ଉଇକିପିଡ଼ିଆ‌ରୁ

ସୂଚନା: ବଦଳଗୁଡ଼ିକ ଦେଖିବା ପାଇଁ ଆପଣଙ୍କୁ ହୁଏତ ନିଜ ବ୍ରାଉଜର କ୍ୟାସ ବାଇପାସ କରିବାକୁ ପଡ଼ିପାରେ ।

  • Firefox / Safari: Reload ଉପରେ କ୍ଲିକ କରିବା ବେଳେ Shift ଧରି କିମ୍ବା Ctrl-F5 ବା Ctrl-R ଦବାନ୍ତୁ (Macରେ ⌘-R)
  • Google Chrome: Ctrl-Shift-R ଦବାନ୍ତୁ (Macରେ ⌘-Shift-R)
  • Internet Explorer / Edge: Refresh ଉପରେ କ୍ଲିକ କଲା ବେଳେ Ctrl ଧରି ବା Ctrl-F5 ଦବାଇ
  • Opera: Ctrl-F5 ଦବାନ୍ତୁ ।
//<nowiki>
if (( wgCanonicalNamespace == 'User_talk' && wgAction == 'view' && skin == 'vector' && !$.wikiLove )) {
  // 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 user is emailable, add email checkbox to forms that request it
        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);
          }
        }
        // Open the dialog box
        interface.dialog('open');
        // Retrieve the edit token so it will be available when the form is submitted
        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 Resilient Barnstar',
          'The Rosetta Barnstar',
          'The Graphic Designer\'s Barnstar',
          'The da Vinci Barnstar',
          'The Left Half of the Half Barnstar',
          'The Right Half of the Half Barnstar',
          'The Copyeditor\'s Barnstar',
          'The Special Barnstar',
          'What a Brilliant Idea Barnstar',
          'AFC Barnstar',
          'Diplomacy Barnstar',
          'Invisible Barnstar',
          'CivilityAward',
          'MotivationAward',
          'The Socratic barnstar',
          'The Rescue Barnstar 3',
          'The Real Life Barnstar',
          'The Barnstar of Recovery',
          'CCBarnstar',
          'The Citation Barnstar',
          'The Redirect Barnstar',
          'The Anti-Flame Barnstar',
          'Anti-Spam Barnstar',
          'The Writer\'s Barnstar',
          'Guidance Barnstar',
          'Your Opinion is More Important than You Think Barnstar',
          'Audio Barnstar',
          'Amazingaward',
          'The Modest Barnstar',
          'Home-made Barnstar',
          'Red Link Removal Barnstar',
          'The Cleanup Barnstar',
          'The Wikilink Barnstar',
          'The Admin\'s Barnstar',
          'The Teamwork Barnstar',
          'The Barnstar of Integrity',
          'The Press Barnstar',
          'The Copyright Cleanup Barnstar',
          'The BLP Barnstar',
          'The Curator Barnstar',
          'RCBarn',
          'Disambiguator\'s Barnstar',
          'The Barnstar of Diplomacy',
          'The Running Man Barnstar',
          'The Barnstar of National Merit',
          'The Technology Barnstar',
          'The Oddball Barnstar',
          'The Society Barnstar',
          'The Barnstar of High Culture',
          'The Epic Barnstar',
          'The EMC Barnstar',
          'The Current Events Barnstar',
          'Barnstar VG',
          'Bio-star',
          'The Geography Barnstar',
          'The Business and Economics Barnstar',
          'The Barnstar of Liberty',
          'WikiProject Film Award',
          'The LGBT Barnstar',
          'The Flora Barnstar',
          'WPMIXBarnstar',
          'The Biography Barnstar',
          'The Literary Barnstar',
          'The Royalty\'s Barnstar',
          'The Fraternity and Sorority Barnstar',
          'The Tao Barnstar',
          'The Barnstar of Fine Arts',
          'Music Barnstar',
          'The Nessie Barnstar',
          'The Shinto Barnstar',
          'The Christianity Barnstar',
          'The Human Rights Barnstar',
          'The Buddhism Barnstar',
          'The Islamic Barnstar',
          'The Charity Barnstar',
          'HumanSexualityBarnstar',
          'The Peace Barnstar',
          'The New Jewish Barnstar',
          'Hinduism Award',
          'Worker\'s Barnstar',
          'Emo Barnstar',
          'The SVG Barnstar',
          'Jainism Award',
          'The Wine Barnstar',
          'The Food and Drink Barnstar',
          'SciFi Barnstar',
          'WikiProject Albums Barnstar',
          'The Space Barnstar',
          'The Toy Barnstar',
          'World War Barnstar',
          'Zoroastrianism Barnstar',
          'BarnSakura Award',
          'PRC Barnstar',
          'iPhone OS Barnstar',
          'Automotive Barnstar',
          'Metal Music Barnstar',
          'Schools Barnstar',
          'Telecommunications Barnstar',
          'Comics Barnstar',
          'The Industrial Barnstar',
          'Oklahoma Barnstar',
          'The Geology Barnstar',
          'Psychology Barnstar',
          'Barnstar Barnstar',
          'The Template Barnstar',
          'Userpagebarn',
          'MOTD Barnstar',
          'The Commons Ambassador Barnstar',
          'Tip of the Day Barnstar',
          'The Translation Barnstar',
          'Adopt-a-User Barnstar',
          'The Reference Desk Barnstar',
          'The Red Barnstar',
          'The WikiProject Barnstar',
          'The Barnstar Creator\'s Barnstar',
          'The Categorisation Barnstar',
          'Adopteebarnstar',
          'Main Page Barnstar',
          'ACCBarnstar',
          'The Newyorkbrad Dispute Resolution Barnstar',
          'Admin coaching barnstar',
          'Userpage shield barnstar',
          'The Helping Hand Barnstar',
          'The Signpost Barnstar',
          'The New Page Patroller\'s Barnstar',
          'The Reviewer\'s Barnstar'
        ];
        
        // Define barnstar interface
        $wlBarnstars = $('<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) ); });

        // List of all available foods
        var $foodList = [
          'WikiLove-brownie',
          'WikiLove-cookie',
          'WikiLove-cupcake',
          'WikiLove-pie',
          'WikiLove-whisky',
          'WikiLove-pint',
          'WikiCoffee',
          'WikiToast',
          'Milk',
          'Glass of Milk',
          'Bubble tea',
          'Free beer',
          'Drunk',
          'Beeronme',
          'Cheeseburger',
          'Cheezburgr',
          'Pork Pie',
          'Wikipie',
          'Munch',
          'Munch chicken',
          'Munch plate',
          'Give cake',
          'Give chicken',
          'Give pie',
          'Give salad',
          'Lollipop',
          'Nice Koekjes',
          'Popcorn',
          'Halloween apples',
          'Hershey Bar',
          'Wikijoint'
        ];

        // Define food interface
        $wlFood = $('<div id="foodForm" style="position:relative;"></div>')
          .append( $('<div style="margin-top:0.4em;"></div>').html( 'Select food: ' ).append( $('<select id="foodSelect" style="padding:1px;vertical-align:baseline;"></select>') ) )
          .append( $('<div style="margin-top:0.4em;"></div>').html( 'Enter a personalized message (optional):<br/>' ).append( $('<textarea name="message" id="foodMessage" style="width:99%" rows="4" cols="60"></textarea>') ) )
          .dialog({
            width: 500,
            autoOpen: false,
            title: 'Give some food',
            modal: true,
            buttons: { "Give food": function() { 
              $(this).dialog({buttons:{}});
              if ( typeof wikiLove.editToken !== 'undefined' ) {
                $selectedFood = $('#foodSelect').val();
                // Perform edit to page
                wikiLove.displayProgress( 'foodForm', 'Adding '+$selectedFood+' to page...' );
                if ( $('#foodMessage').val() != '' ) {
                  var template = '{{subst:'+$selectedFood+'|'+$('#foodMessage').val()+'}}';
                } else {
                  var template = '{{subst:WikiLove-'+$selectedFood+'}}';
                }
                wikiLove.editPage( 'foodForm', 'A '+$selectedFood+' for you!', template );
              } else {
                wikiLove.displayError( 'foodForm', 'Could not retrieve edit token.' );
              }
            }}
          });

        // Populate food select list
        $.each( $foodList, function(index, value) { $('#foodSelect').append( $('<option></option>').val(value).html(value) ); });

        // Define kitten interface
        $wlKittens = $('<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', 'A kitten for you!', 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( $wlBarnstars, true ); return false;" href="#">Barnstar</a></span></li>';
        var menuFood = '<li id="wl-food"><span><a onclick="wikiLove.launchDialog( $wlFood, false ); return false;" href="#">Food</a></span></li>';
        var menuKitten = '<li id="wl-kitten"><span><a onclick="wikiLove.launchDialog( $wlKittens, 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+menuFood+menuKitten+'</ul></div></div>';
        $('#p-cactions').after(wikiLoveMenu);

      } // close initialize function

    } // close wikiLove object
    wikiLove.initialize();
    wikiLove.getEmailable();
  }) // close mw.loader
} // close if
//</nowiki>