User:Sross (Public Policy)/ambassadorwikilove.js

// // code prevented from executing due to T72470 if (false) { // 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 ( $(' ').html( message+' ' ) ); },     displayError: function( form, error ) { $('#'+form+' div').hide; // remove everything else from the dialog box $('#'+form).append ( $(' ').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( $(' ').html(' 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 awards var $awardList = [ 'The Original Barnstar', 'Wikipedia Ambassador Barnstar', 'The WikiPen' ];       // Define award interface $wlAwards = $(' ') .append( $(' ').html( 'Select award: ' ).append( $(' ') ) ) .append( $(' ').html( 'Enter a message (without a signature): ' ).append( $(' ') ) ) .dialog({           width: 500,            autoOpen: false,            title: 'Give an award',            modal: true,            buttons: { "Give award": function {               $(this).dialog({buttons:{}});              if ( typeof wikiLove.editToken !== 'undefined' ) {                if ( $('#awardForm input[name="notify"]').attr('checked') ) {                  // Send email                  wikiLove.sendEmail( 'awardForm', 'You\'ve been given an award on Wikipedia!', 'Hello '+wgTitle+'!\n\nI just gave you an award on your English Wikipedia talk page.' );                }                // Perform edit to page                wikiLove.displayProgress( 'awardForm', 'Adding award to page...' );                var template = ''+$('#awardMessage').val +' ~';                wikiLove.editPage( 'awardForm', 'Award', template );              } else {                wikiLove.displayError( 'awardForm', 'Could not retrieve edit token.' ); }           }}          });        // Populate award selection list        $.each( $awardList, function(index, value) { $('#awardSelect').append( $('  ').val(value).html(value) ); });

// List of message types var $messageList = [ 'Just a message', 'Ambassador welcome', ];

// Define message interface $wlMessage = $(' ') .append( $(' ').html( 'Select message or template: ' ).append( $(' ') ) ) .append( $(' ').html( 'Enter a message (without a signature), or leave blank for welcome template: ' ).append( $(' ') ) ) .dialog({           width: 500,            autoOpen: false,            title: 'Leave a message',            modal: true,            buttons: { "Leave message": function {               $(this).dialog({buttons:{}});              if ( typeof wikiLove.editToken !== 'undefined' ) {                if ( $('#messageForm input[name="notify"]').attr('checked') ) {                  // Send email                  wikiLove.sendEmail( 'messageForm', 'You\'ve got a message from your Wikipedia mentor!', 'Hello '+wgTitle+'!\n\nI just left you a message on your English Wikipedia talk page.' );                }                // Perform edit to page                wikiLove.displayProgress( 'messageForm', 'Leaving your message...' );                var template = ''+$('#messageMessage').val +' ~';                wikiLove.editPage( 'messageForm', 'Message', template );              } else {                wikiLove.displayError( 'messageForm', 'Could not retrieve edit token.' ); }           }}          });        // Populate award selection list        $.each( $messageList, function(index, value) { $('#messageSelect').append( $('  ').val(value).html(value) ); });        // Insert new tab into page        var menuMessage = ' Message ';        var menuAward = ' Award ';        var wikiLoveMenu = ' WikiLove  </a> <ul>'+menuMessage+menuAward+'</ul>  '; $('#p-cactions').after(wikiLoveMenu);

} // close initialize function

} // close wikiLove object wikiLove.initialize; wikiLove.getEmailable; }) // close mw.loader } // close if //