https://www.mediawiki.org/wiki/Special:Code/MediaWiki/106323

Revision: 106323
Author:   catrope
Date:     2011-12-15 14:17:58 +0000 (Thu, 15 Dec 2011)
Log Message:
-----------
1.18wmf1: Update ArticleFeedbackv5 to trunk state

Modified Paths:
--------------
    
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/ArticleFeedbackv5.i18n.php
    branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/ArticleFeedbackv5.php
    
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.css
    
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.ie.css
    
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.js
    
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.startup.js
    
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.js

Added Paths:
-----------
    
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/images/

Property Changed:
----------------
    branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/
    
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/api/ApiArticleFeedbackv5.php


Property changes on: branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/REL1_18/extensions/ArticleFeedback:97350
   + /branches/REL1_18/extensions/ArticleFeedback:97350
/trunk/extensions/ArticleFeedbackv5:106201-106322

Modified: 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/ArticleFeedbackv5.i18n.php
===================================================================
--- 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/ArticleFeedbackv5.i18n.php   
    2011-12-15 14:16:04 UTC (rev 106322)
+++ 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/ArticleFeedbackv5.i18n.php   
    2011-12-15 14:17:58 UTC (rev 106323)
@@ -14,7 +14,7 @@
        'articlefeedbackv5-cta1-confirmation-title' => 'Did you know that you 
can edit this page?',
        'articlefeedbackv5-cta1-confirmation-call' => 'Wikipedia works because 
anyone can edit its articles. Go ahead, give it a try. Be bold!',
        'articlefeedbackv5-cta1-learn-how' => 'Learn how to edit',
-       'articlefeedbackv5-cta1-learn-how-url' => 
'http://en.wikipedia.org/wiki/Wikipedia:Tutorial',
+       'articlefeedbackv5-cta1-learn-how-url' => 
'http://en.wikipedia.org/wiki/Wikipedia:Article_Feedback_Tool/Tutorial',
        'articlefeedbackv5-cta1-edit-linktext' => 'Edit this page',
        'articlefeedbackv5-cta2-confirmation-title' => 'Help improve Wikipedia',
        'articlefeedbackv5-cta2-confirmation-call' => 'This encyclopedia is 
created by people like you. Can you give us a hand?',
@@ -169,7 +169,7 @@
        'articlefeedbackv5-help-tooltip-title' => 'What\'s this?',
        'articlefeedbackv5-help-tooltip-info' => 'Wikipedia would like to hear 
what you think of this article. Share your feedback with the editors -- and 
help improve this page.',
        'articlefeedbackv5-help-tooltip-linktext' => 'Learn more',
-       'articlefeedbackv5-help-tooltip-linkurl' => 
'http://en.wikipedia.org/wiki/Wikipedia:Article_Feedback_Tool/Tutorial',
+       'articlefeedbackv5-help-tooltip-linkurl' => 
'http://en.wikipedia.org/wiki/Wikipedia:Article_Feedback_Tool/Version_5/Help',
        'articlefeedbackv5-transparency-terms' => 'By posting, you agree to 
transparency under these $1.',
        'articlefeedbackv5-transparency-terms-linktext' => 'terms',
        'articlefeedbackv5-transparency-terms-url' => 
'http://wikimediafoundation.org/wiki/Feedback_privacy_statement',

Modified: 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/ArticleFeedbackv5.php
===================================================================
--- branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/ArticleFeedbackv5.php    
2011-12-15 14:16:04 UTC (rev 106322)
+++ branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/ArticleFeedbackv5.php    
2011-12-15 14:17:58 UTC (rev 106323)
@@ -82,7 +82,7 @@
        'tracked' => false,
 );
 
-// Bucket settings for click tracking on feedback links
+// Bucket settings for click tracking across the plugin
 $wgArticleFeedbackv5Tracking = array(
        // Not all users need to be tracked, but we do want to track some users 
over time - these
        // buckets are used when deciding to track someone or not, placing them 
in one of two buckets:
@@ -91,8 +91,8 @@
        // this number to ensure the new odds are applied to everyone, not just 
people who have yet to
        // be placed in a bucket.
        'buckets' => array(
-               'ignore' => 100,
-               'track'  => 0,
+               'ignore' => 0,
+               'track'  => 100,
        ),
        // This version number is added to all tracking event names, so that 
changes in the software
        // don't corrupt the data being collected. Bump this when you want to 
start a new "experiment".
@@ -242,11 +242,11 @@
 $wgHooks['ArticleSaveComplete'][] = 'ArticleFeedbackv5Hooks::trackEdit';
 
 // API Registration
-$wgAPIListModules['articlefeedbackv5-view-ratings']  = 
'ApiViewRatingsArticleFeedbackv5';
+//$wgAPIListModules['articlefeedbackv5-view-ratings']  = 
'ApiViewRatingsArticleFeedbackv5';
 //$wgAPIListModules['articlefeedbackv5-view-feedback'] = 
'ApiViewFeedbackArticleFeedbackv5';
-$wgAPIModules['articlefeedbackv5-flag-feedback']     = 
'ApiFlagFeedbackArticleFeedbackv5';
+//$wgAPIModules['articlefeedbackv5-flag-feedback']     = 
'ApiFlagFeedbackArticleFeedbackv5';
 $wgAPIModules['articlefeedbackv5']                   = 'ApiArticleFeedbackv5';
 
 // Special Page
 //$wgSpecialPages['ArticleFeedbackv5'] = 'SpecialArticleFeedbackv5';
-$wgSpecialPageGroups['ArticleFeedbackv5'] = 'other';
+//$wgSpecialPageGroups['ArticleFeedbackv5'] = 'other';


Property changes on: 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/api/ApiArticleFeedbackv5.php
___________________________________________________________________
Modified: svn:mergeinfo
   - 
/branches/REL1_18/extensions/ArticleFeedback/api/ApiArticleFeedback.php:97350
/trunk/extensions/ArticleFeedback/api/ApiArticleFeedback.php:76964,77627
   + 
/branches/REL1_18/extensions/ArticleFeedback/api/ApiArticleFeedback.php:97350
/trunk/extensions/ArticleFeedback/api/ApiArticleFeedback.php:76964,77627
/trunk/extensions/ArticleFeedbackv5/api/ApiArticleFeedbackv5.php:106201-106322

Modified: 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.css
===================================================================
--- 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.css
  2011-12-15 14:16:04 UTC (rev 106322)
+++ 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.css
  2011-12-15 14:17:58 UTC (rev 106323)
@@ -23,31 +23,39 @@
        top: 200px;
 }
 .articleFeedbackv5-fixedtabbox {
-       position: relative;     
-}
-.articleFeedbackv5-fixedtablink {
-       position: absolute;
-       border: 1px solid #555599;
-       background-color: #eeeef9;
-       min-width: 105px;
-       width: auto;
-       height: auto;
-       left: 0;
-       display: block;
-       margin: 0;
-       padding: 5px 10px;
-       color: .333;
-       text-align: center;
-       writing-mode: tb-rl;
-       -moz-transform:rotate(90deg); 
+       position: relative;
+       /*-moz-transform:rotate(90deg); 
        -moz-transform-origin: top left;
        -webkit-transform: rotate(90deg);
        -webkit-transform-origin: top left;
        -o-transform: rotate(90deg);
        -o-transform-origin: top left;
-       /*transform: rotate(90deg);
-       transform-origin: top left;*/   
+       -ms-transform: rotate(90deg);
+       -ms-transform-origin: top left;
+       transform: rotate(90deg);
+       transform-origin: top left;*/
 }
+.articleFeedbackv5-fixedtablink {
+       /*border: none;
+       background-color: #5373a6;
+       -moz-border-radius: 0 0 10px 10px;
+       -webkit-border-radius: 0 0 10px 10px;
+       -ms-border-radius: 0 0 10px 10px;
+       border-radius: 0 0 10px 10px;
+       min-width: 105px;*/
+       width: 27px;
+       height: 114px;
+       right: 0;
+       display: block;
+       margin: 0;
+       background: url(images/img_aftv5_tablink.png) no-repeat;
+       /*padding: 5px 10px;
+       color: #fff;
+       text-align: center;
+       writing-mode: tb-rl;*/  
+       position: absolute;
+       z-index: 100000;
+}
 .articleFeedbackv5-fixedtablink:hover {
        text-decoration: none;
 }

Modified: 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.ie.css
===================================================================
--- 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.ie.css
       2011-12-15 14:16:04 UTC (rev 106322)
+++ 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.ie.css
       2011-12-15 14:17:58 UTC (rev 106323)
@@ -23,16 +23,16 @@
        text-align: center;
        line-height: 18px !important;
 }
-
-.articleFeedbackv5-fixedtabbox {
+.articleFeedbackv5-fixedtab {
+       margin: 0 40px 0 0 !important;
+       *margin: 0 !important;
        /*filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);*/
 }
+.articleFeedbackv5-fixedtabbox {
+       
+}
 .articleFeedbackv5-fixedtablink {
        /*position: absolute;*/
-       min-width: 0 !important;
-       display: block !important;
-       border: #000 1px solid !important;
-}
-.articleFeedbackv5-fixedtablink span {
-       border: #00F 1px solid;
+       *min-width: 0 !important;
+       *display: block !important;
 }
\ No newline at end of file

Modified: 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.js
===================================================================
--- 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.js
   2011-12-15 14:16:04 UTC (rev 106322)
+++ 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.js
   2011-12-15 14:17:58 UTC (rev 106323)
@@ -18,39 +18,19 @@
 
 /* Setup for feedback links */
 
-// Only track users who have been assigned to the tracking group; don't bucket
-// at all if we're set to always ignore or always track.
-var useClickTracking = function () {
-       var b = mw.config.get( 'wgArticleFeedbackv5Tracking' );
-       if ( b.buckets.ignore == 100 && b.buckets.track == 0 ) {
-               return false;
-       }
-       if ( b.buckets.ignore == 0 && b.buckets.track == 100 ) {
-               return true;
-       }
-       return ( 'track' === mw.user.bucket( 'ext.articleFeedbackv5-tracking', 
b ) );
-}();
-
 // Info about each of the links
 var linkInfo = {
-       '1': {
-               clickTracking: $aftDiv.articleFeedbackv5( 'prefix', 
'section-link' )
-       },
-       '2': {
-               clickTracking: $aftDiv.articleFeedbackv5( 'prefix', 
'titlebar-link' )
-       },
-       '4': {
-               clickTracking: $aftDiv.articleFeedbackv5( 'prefix', 
'toolbox-link' )
-       }
+       '1': { trackId: 'section-link' },
+       '2': { trackId: 'titlebar-link' },
+       '3': { trackId: 'vertical-link' },
+       '4': { trackId: 'toolbox-link' }
 };
 
 // Click event
 var clickFeedbackLink = function ( $link ) {
-       // Click tracking
-       if ( useClickTracking && $.isFunction( $.trackActionWithInfo ) ) {
-               $.trackActionWithInfo( linkInfo[ $link.data( 'linkId' ) 
].clickTracking, mw.config.get( 'wgTitle' ) );
-       }
-       // Open as modal
+       var tracking_id = $aftDiv.articleFeedbackv5( 'bucketName' ) +
+               linkInfo[ $link.data( 'linkId' ) ].trackId;
+       $aftDiv.articleFeedbackv5( 'trackClick', tracking_id );
        $aftDiv.articleFeedbackv5( 'openAsModal', $link );
 };
 
@@ -119,7 +99,7 @@
                </div>' );
        $fixedTab.find( '#articleFeedbackv5-fixedtablink' )
                .data( 'linkId', 3 )
-               .text( mw.msg( 'articlefeedbackv5-fixedtab-linktext' ) )
+               .attr( 'title', mw.msg( 'articlefeedbackv5-fixedtab-linktext' ) 
)
                .click( function( e ) {
                        e.preventDefault();
                        clickFeedbackLink( $( e.target ) );
@@ -128,7 +108,6 @@
        $fixedTab.addClass( 'articleFeedbackv5-fixedtab' );
        $fixedTab.find( '#articleFeedbackv5-fixedtabbox' ).addClass( 
'articleFeedbackv5-fixedtabbox' );
        $fixedTab.find( '#articleFeedbackv5-fixedtablink' ).addClass( 
'articleFeedbackv5-fixedtablink' );
-       $fixedTab.find( '#articleFeedbackv5-fixedtablink' ).css( 'border', 
'#00F 1px solid' );
        $aftDiv.articleFeedbackv5( 'addToRemovalQueue', $fixedTab );
 }
 

Modified: 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.startup.js
===================================================================
--- 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.startup.js
   2011-12-15 14:16:04 UTC (rev 106322)
+++ 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/ext.articleFeedbackv5/ext.articleFeedbackv5.startup.js
   2011-12-15 14:17:58 UTC (rev 106323)
@@ -16,6 +16,21 @@
 /*** Main entry point ***/
 jQuery( function( $ ) {
        
+       var ua = navigator.appVersion.toLowerCase();
+       // Rule out MSIE 6, iPhone, iPod, iPad, Android
+       if(
+               (ua.indexOf( 'msie 6' ) != -1) ||
+               (ua.indexOf( 'msie 7' ) != -1) ||
+               (ua.indexOf( 'firefox/2') != -1) ||
+               (ua.indexOf( 'firefox 2') != -1) ||
+               (ua.indexOf( 'android' ) != -1) ||
+               (ua.indexOf( 'iphone' ) != -1) ||
+               (ua.indexOf( 'ipod' ) != -1 ) ||
+               (ua.indexOf( 'ipad' ) != -1)
+       ) {
+               return;
+       }       
+       
        // Load check, is this page ArticleFeedbackv5-enabled ?
        // Keep in sync with ApiArticleFeedbackv5.php
        if (
@@ -67,7 +82,7 @@
                if ( enable ) {
                        mw.loader.load( 'ext.articleFeedbackv5' );
                        // Load the IE-specific module
-                       if( navigator.appVersion.indexOf( 'MSIE' ) != -1 ) {
+                       if( navigator.appVersion.indexOf( 'MSIE 7' ) != -1 ) {
                                mw.loader.load( 'ext.articleFeedbackv5.ie' );
                        }
                }

Modified: 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.js
===================================================================
--- 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.js
     2011-12-15 14:16:04 UTC (rev 106322)
+++ 
branches/wmf/1.18wmf1/extensions/ArticleFeedbackv5/modules/jquery.articleFeedbackv5/jquery.articleFeedbackv5.js
     2011-12-15 14:17:58 UTC (rev 106323)
@@ -62,6 +62,11 @@
        $.articleFeedbackv5.debug = mw.config.get( 'wgArticleFeedbackv5Debug' ) 
? true : false;
 
        /**
+        * Are we tracking clicks?
+        */
+       $.articleFeedbackv5.clickTracking = false;
+
+       /**
         * Have the containers been added?
         */
        $.articleFeedbackv5.hasContainers = false;
@@ -398,6 +403,8 @@
                                $block.find( '.articleFeedbackv5-submit' )
                                        .click( function ( e ) {
                                                e.preventDefault();
+                                               $.articleFeedbackv5.trackClick( 
'option1-submit-' +
+                                                       ( 
$.articleFeedbackv5.inDialog ? 'overlay' : 'bottom' ) );
                                                
$.articleFeedbackv5.submitForm();
                                        } );
                        },
@@ -652,8 +659,9 @@
                                // Attach the submit
                                $block.find( '.articleFeedbackv5-submit' )
                                        .click( function ( e ) {
-                                               //alert( 'got to click event' );
                                                e.preventDefault();
+                                               $.articleFeedbackv5.trackClick( 
'option2-submit-' +
+                                                       ( 
$.articleFeedbackv5.inDialog ? 'overlay' : 'bottom' ) );
                                                
$.articleFeedbackv5.submitForm();
                                        } );
 
@@ -980,6 +988,8 @@
                                $block.find( '.articleFeedbackv5-submit' )
                                        .click( function ( e ) {
                                                e.preventDefault();
+                                               $.articleFeedbackv5.trackClick( 
'option3-submit-' +
+                                                       ( 
$.articleFeedbackv5.inDialog ? 'overlay' : 'bottom' ) );
                                                
$.articleFeedbackv5.submitForm();
                                        } );
 
@@ -1118,16 +1128,10 @@
                                        .attr( 'href', mw.config.get( 
'wgArticleFeedbackv5LearnToEdit' ) );
 
                                // Fill in the edit link
-                               $block.find( '.articleFeedbackv5-submit' )
-                                       .attr( 'href',
-                                               mw.config.get( 'wgScript' ) + 
'?' + $.param( {
-                                                       'title': mw.config.get( 
'wgPageName' ),
-                                                       'action': 'edit',
-                                                       
'articleFeedbackv5_feedback_id': $.articleFeedbackv5.feedbackId,
-                                                       
'articleFeedbackv5_cta_id': $.articleFeedbackv5.ctaId,
-                                                       
'articleFeedbackv5_bucket_id': $.articleFeedbackv5.bucketId
-                                               } )
-                                       );
+                               var edit_track_id = 
$.articleFeedbackv5.buttonName() + '-button-click-' +
+                                       ( $.articleFeedbackv5.inDialog ? 
'overlay' : 'bottom' );
+                               $block.find( '.articleFeedbackv5-cta-button' )
+                                       .attr( 'href', 
$.articleFeedbackv5.editUrl( edit_track_id ) );
 
                                // Turn the submit into a slick button
                                $block.find( '.articleFeedbackv5-submit' )
@@ -1898,17 +1902,11 @@
                                        .attr( 'href', mw.msg( 
'articlefeedbackv5-cta1-learn-how-url' ) );
 
                                // Fill in the link
+                               var edit_track_id = 
$.articleFeedbackv5.bucketName() + '-' +
+                                       $.articleFeedbackv5.ctaName() + 
'-button-click-' +
+                                       ( $.articleFeedbackv5.inDialog ? 
'overlay': 'bottom' );
                                $block.find( '.articleFeedbackv5-cta-button' )
-                                       .attr(
-                                               'href',
-                                               mw.config.get( 'wgScript' ) + 
'?' + $.param( {
-                                                       'title': mw.config.get( 
'wgPageName' ),
-                                                       'action': 'edit',
-                                                       
'articleFeedbackv5_feedback_id': $.articleFeedbackv5.feedbackId,
-                                                       
'articleFeedbackv5_cta_id': $.articleFeedbackv5.ctaId,
-                                                       
'articleFeedbackv5_bucket_id': $.articleFeedbackv5.bucketId
-                                               } )
-                                       );
+                                       .attr( 'href', 
$.articleFeedbackv5.editUrl( edit_track_id ) );
 
                                return $block;
                        },
@@ -1970,8 +1968,12 @@
                                var $block = $( 
$.articleFeedbackv5.currentCTA().templates.block );
 
                                // Fill in the button link
+                               var learn_url = mw.msg( 
'articlefeedbackv5-cta1-learn-how-url' );
+                               var learn_track_id = 
$.articleFeedbackv5.bucketName() + '-' +
+                                       $.articleFeedbackv5.ctaName() + 
'-button-click-' +
+                                       ( $.articleFeedbackv5.inDialog ? 
'overlay': 'bottom' );
                                $block.find( '.articleFeedbackv5-cta-button' )
-                                       .attr( 'href', mw.msg( 
'articlefeedbackv5-cta1-learn-how-url' ) );
+                                       .attr( 'href', 
$.articleFeedbackv5.trackingUrl( learn_url, learn_track_id ) );
 
                                return $block;
                        },
@@ -2013,6 +2015,8 @@
        $.articleFeedbackv5.init = function ( $el, config ) {
                $.articleFeedbackv5.$holder = $el;
                $.articleFeedbackv5.config = config;
+               // Are we tracking clicks?
+               $.articleFeedbackv5.clickTracking = 
$.articleFeedbackv5.checkClickTracking();
                // Has the user already submitted ratings for this page at this 
revision?
                $.articleFeedbackv5.alreadySubmitted = $.cookie( 
$.articleFeedbackv5.prefix( 'submitted' ) ) === 'true';
                // Are we in debug mode?
@@ -2077,8 +2081,28 @@
        };
 
        // }}}
+       // {{{ checkClickTracking
 
+       /**
+        * Checks whether click tracking is turned on
+        *
+        * Only track users who have been assigned to the tracking group; don't 
bucket
+        * at all if we're set to always ignore or always track.
+        */
+       $.articleFeedbackv5.checkClickTracking = function () {
+               var b = mw.config.get( 'wgArticleFeedbackv5Tracking' );
+               if ( b.buckets.ignore == 100 && b.buckets.track == 0 ) {
+                       return false;
+               }
+               if ( b.buckets.ignore == 0 && b.buckets.track == 100 ) {
+                       return true;
+               }
+               return ( 'track' === mw.user.bucket( 
'ext.articleFeedbackv5-tracking', b ) );
+       };
+
        // }}}
+
+       // }}}
        // {{{ Utility methods
 
        // {{{ prefix
@@ -2206,8 +2230,87 @@
        };
 
        // }}}
+       // {{{ bucketName
 
+       /**
+        * Utility method: Gets the name of the current bucket
+        *
+        * @return string the bucket name
+        */
+       $.articleFeedbackv5.bucketName = function () {
+               return 'option' + $.articleFeedbackv5.bucketId;
+       };
+
        // }}}
+       // {{{ ctaName
+
+       /**
+        * Utility method: Gets the name of the current CTA
+        *
+        * @return string the CTA name
+        */
+       $.articleFeedbackv5.ctaName = function () {
+               if ( '0' == $.articleFeedbackv5.ctaId ) {
+                       return 'cta-none';
+               } else if ( '1' == $.articleFeedbackv5.ctaId ) {
+                       return 'cta-edit';
+               } else if ( '2' == $.articleFeedbackv5.ctaId ) {
+                       return 'cta-learnmore';
+               } else {
+                       return 'cta-unknown';
+               }
+       };
+
+       // }}}
+       // {{{ trackingUrl
+
+       /**
+        * Creates a URL that tracks a particular click
+        *
+        * @param url        string the url so far
+        * @param trackingId string the tracking ID
+        */
+       $.articleFeedbackv5.trackingUrl = function ( url, trackingId ) {
+               if ( $.articleFeedbackv5.clickTracking && $.isFunction( 
$.trackActionURL ) ) {
+                       return $.trackActionURL( url, 
$.articleFeedbackv5.prefix( trackingId ) );
+               } else {
+                       return url;
+               }
+       };
+
+       // }}}
+       // {{{ editUrl
+
+       /**
+        * Builds the edit URL, with tracking if appropriate
+        *
+        * @param trackingId string the tracking ID
+        */
+       $.articleFeedbackv5.editUrl = function ( url, trackingId ) {
+               var params = {
+                       'title': mw.config.get( 'wgPageName' ),
+                       'action': 'edit',
+               };
+               if ( $.articleFeedbackv5.bucketId ) {
+                       params.articleFeedbackv5_bucket_id = 
$.articleFeedbackv5.bucketId;
+               }
+               if ( $.articleFeedbackv5.ctaId ) {
+                       params.articleFeedbackv5_cta_id = 
$.articleFeedbackv5.ctaId;
+               }
+               if ( $.articleFeedbackv5.feedbackId ) {
+                       params.articleFeedbackv5_feedback_id = 
$.articleFeedbackv5.feedbackId;
+               }
+               var url = mw.config.get( 'wgScript' ) + '?' + $.param( params );
+               if ( trackingId ) {
+                       return $.articleFeedbackv5.trackingUrl( url, trackingId 
);
+               } else {
+                       return url;
+               }
+       };
+
+       // }}}
+
+       // }}}
        // {{{ Process methods
 
        // {{{ load
@@ -2358,6 +2461,14 @@
                        bucket.afterBuild();
                }
 
+               // Track the event
+               if ( $.articleFeedbackv5.inDialog ) {
+                       $.articleFeedbackv5.trackClick( 
$.articleFeedbackv5.bucketName() + '-overlay-impression' );
+               } else {
+                       // Don't track bottom-of-the-page loads, at least for 
now
+                       // $.articleFeedbackv5.trackClick( 
$.articleFeedbackv5.bucketName() + '-bottom-impression' );
+               }
+
                $.articleFeedbackv5.nowShowing = 'form';
        };
 
@@ -2546,6 +2657,11 @@
                // Reset the panel dimensions
                $.articleFeedbackv5.setDialogDimensions();
 
+               // Track the event
+                       $.articleFeedbackv5.trackClick( 
$.articleFeedbackv5.bucketName() + '-' +
+                               $.articleFeedbackv5.ctaName() + '-impression-' +
+                               ( $.articleFeedbackv5.inDialog ? 'overlay' : 
'bottom' ) );
+
                $.articleFeedbackv5.nowShowing = 'cta';
        };
 
@@ -2795,6 +2911,12 @@
         */
        $.articleFeedbackv5.closeAsModal = function () {
                if ( $.articleFeedbackv5.inDialog ) {
+                       if ( 'form' == $.articleFeedbackv5.nowShowing ) {
+                               $.articleFeedbackv5.trackClick( 
$.articleFeedbackv5.bucketName() + '-overlay-close' );
+                       } else if ('cta' == $.articleFeedbackv5.nowShowing ) {
+                               $.articleFeedbackv5.trackClick( 
$.articleFeedbackv5.bucketName() + '-' +
+                                       $.articleFeedbackv5.ctaName() + 
'-overlay-close' );
+                       }
                        $.articleFeedbackv5.setLinkId( '0' );
                        $.articleFeedbackv5.$dialog.find( 
'.articleFeedbackv5-tooltip' ).hide();
                        $inner = $.articleFeedbackv5.$dialog.find( 
'.articleFeedbackv5-ui' ).detach();
@@ -2821,9 +2943,26 @@
        };
 
        // }}}
+       // {{{ trackClick
 
+       /**
+        * Tracks a click
+        *
+        * @param trackingId string the tracking ID
+        */
+       $.articleFeedbackv5.trackClick = function ( trackingId ) {
+               if ( $.articleFeedbackv5.clickTracking && $.isFunction( 
$.trackActionWithInfo ) ) {
+                       $.trackActionWithInfo(
+                               $.articleFeedbackv5.prefix( trackingId ),
+                               mw.config.get( 'wgTitle' )
+                       );
+               }
+       };
+
        // }}}
 
+       // }}}
+
 // }}}
 // {{{ articleFeedbackv5 plugin
 
@@ -2844,9 +2983,11 @@
                inDebug: { args: 0, ret: true },
                nowShowing: { args: 0, ret: true },
                prefix: { args: 1, ret: true },
+               bucketName: { args: 0, ret: true },
                addToRemovalQueue: { args: 1, ret: false },
                openAsModal: { args: 1, ret: false },
-               closeAsModal: { args: 0, ret: true }
+               closeAsModal: { args: 0, ret: true },
+               trackClick: { args: 1, ret: false }
        };
        if ( opts in public ) {
                var r;


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to