MediaWiki:DonationForm mctest.js: Difference between revisions

Jump to navigation Jump to search
Content deleted Content added
Created page with "→‎jshint strict:false: →‎* MediaWiki:DonationForm.js - loaded on all donation forms * TODO: lots of cleanup: var donationForm = {}; donationForm.loadedTime = Date.now(); donationForm.extraData = { 'vw' : window.innerWidth, 'vh' : window.innerHeight }; if ( navigator.brave !== undefined ) { // T283367 donationForm.extraData.brave = '1'; } // Don't offer recurring at all in these countries donationForm.noRecurringCountries = [ 'AR', 'CL', 'CO', 'MX',..."
 
split finalStep from redirectPayments, so we can call it back from monthlyconvert if needed
Line 673: Line 673:
/* -- Moved from Template:2012FR/Form-section/Processing/Default -- */
/* -- Moved from Template:2012FR/Form-section/Processing/Default -- */
/**
/**
* Validate form, and if it looks good submit to payments
* Validate form, and prep most of the parameters
*
*
* @param {string} paymentMethod - method e.g. 'cc', 'paypal'
* @param {string} paymentMethod - method e.g. 'cc', 'paypal'
Line 683: Line 683:
if ( donationForm.validate( skipAmountValidation ) ) {
if ( donationForm.validate( skipAmountValidation ) ) {


var uri = new mw.Uri('https://payments.wikimedia.org/index.php/Special:GatewayFormChooser');
var params = {};
var params = {};


Line 751: Line 750:
}
}


donationForm.extraData.time = Math.round( (Date.now() - donationForm.loadedTime)/1000 );
donationForm.finalStep( params );

// Tracking data
params.utm_medium = mw.util.getParamValue( 'utm_medium' );
params.utm_campaign = mw.util.getParamValue( 'utm_campaign' );
params.utm_source = donationForm.buildUtmSource( params );
params.utm_key = donationForm.buildUtmKey( donationForm.extraData );
if ( document.referrer ) { // TODO: do we need this?
// Strip protocol to stop firewall complaining
params.referrer = document.referrer.replace(/https?:\/\//i, '');
}

uri.extend( params );
donationForm.goToPayments( uri );


} else {
} else {
Line 773: Line 759:
};
};


/**
* Build final tracking parameters, and submit to payments
* @param {Object} params
*/
donationForm.finalStep = function( params ) {

var uri = new mw.Uri('https://payments.wikimedia.org/index.php/Special:GatewayFormChooser');

donationForm.extraData.time = Math.round( (Date.now() - donationForm.loadedTime)/1000 );

// Tracking data
params.utm_medium = mw.util.getParamValue( 'utm_medium' );
params.utm_campaign = mw.util.getParamValue( 'utm_campaign' );
params.utm_source = donationForm.buildUtmSource( params );
params.utm_key = donationForm.buildUtmKey( donationForm.extraData );
if ( document.referrer ) { // TODO: do we need this?
// Strip protocol to stop firewall complaining
params.referrer = document.referrer.replace(/https?:\/\//i, '');
}

uri.extend( params );


donationForm.goToPayments = function( uri ) {
if ( window.top !== window.self ) {
if ( window.top !== window.self ) {
// In a frame, open payments in a new tab
// In a frame, open payments in a new tab
Line 781: Line 787:
window.location.href = uri.toString();
window.location.href = uri.toString();
}
}
};
}


/**
/**