MediaWiki:Resources/2015/landingpage.js: Difference between revisions
Jump to navigation
Jump to search
Content deleted Content added
only block Enter on actual form (not editing form) |
allow monthly to be set with url param |
||
Line 208: | Line 208: | ||
var code = ( e.keyCode ? e.keyCode : e.which ); |
var code = ( e.keyCode ? e.keyCode : e.which ); |
||
if ( code == 13 ) return false; |
if ( code == 13 ) return false; |
||
} |
}); |
||
// Disable logo link |
// Disable logo link |
||
$("#p-logo a").attr("href", "#"); |
$("#p-logo a").attr("href", "#"); |
||
$("#p-logo a").attr("title", ""); |
$("#p-logo a").attr("title", ""); |
||
// Monthly |
|||
if( mw.util.getParamValue('monthly') ) { |
|||
$('#frequency_monthly').click(); |
|||
} |
|||
adjustHPC(); |
adjustHPC(); |
Revision as of 18:38, 26 January 2015
function getQuerystring( key ) {
key = key.replace( /[\[]/, '\\\[' ).replace( /[\]]/, '\\\]' );
var regex = new RegExp( '[\\?&]' + key + '=([a-zA-Z0-9\.\_\-]*)' );
var qs = regex.exec( window.location.search );
return qs == null ? '' : qs[1];
}
function checkPaymentOutages() {
/* Check against the scheduled payment method outages
* in global variable "outages" (loaded cross-wiki from meta)
* and hide the relevant button for any which are ongoing.
*/
// var outages = outages || []; // don't die if it hasn't loaded...
var now = new Date();
for (var i = outages.length - 1; i >= 0; i--) {
if ( now > outages[i]['start'] ) {
if ( now < outages[i]['end'] ) {
if ( (typeof outages[i]['country'] === 'undefined') || (outages[i]['country'] == country) ) {
$('.paymentmethod-' + outages[i]['method']).hide();
}
}
}
}
}
function adjustHPC() {
// Highest previous contribution adjustments (for emails)
var hpc = mw.util.getParamValue( 'hpc' );
if( isNaN( parseFloat( hpc ) ) ){
// go ahead and try mrc as well
hpc = getQuerystring( 'mrc' );
if( isNaN( parseFloat( hpc ) ) ){
return;
}
}
hpc = parseFloat( hpc );
var asks = {
'USD' : {
0 : [5, 10, 20, 25, 35, 50, 100],
10 : [10, 20, 25, 35, 50, 100, 150],
20 : [20, 25, 35, 50, 75, 100, 250],
35 : [20, 35, 50, 100, 150, 200, 250],
50 : [20, 35, 50, 100, 150, 200, 250],
75 : [25, 50, 75, 100, 200, 300, 500],
100 : [25, 50, 100, 150, 250, 500, 1000],
150 : [50, 100, 150, 200, 350, 500, 1000],
200 : [50, 100, 200, 300, 400, 500, 1000]
},
'EUR' : {
0 : [3, 5, 10, 20, 30, 50, 100],
4 : [5, 10, 15, 20, 30, 50, 100],
27 : [5, 10, 20, 30, 50, 100, 150],
136 : [5, 10, 20, 50, 100, 150, 200]
},
'JPY' : {
0 : [300, 500, 1000, 2000, 3000, 5000, 10000],
3 : [500, 1000, 1500, 2000, 3000, 5000, 10000],
5 : [1000, 1500, 2000, 3000, 5000, 10000, 15000]
},
'SEK' : {
0 : [20, 50, 100, 200, 300, 500, 1000],
3 : [30, 50, 100, 200, 300, 500, 1000],
5 : [50, 100, 150, 200, 300, 500, 1000],
23 : [50, 100, 200, 300, 500, 750, 1000]
}
};
asks.AUD = asks.USD;
asks.CAD = asks.USD;
asks.GBP = asks.USD;
asks.NZD = asks.USD;
var appealasks = {
'USD' : {
0 : [5, 10, 20],
10 : [10, 20, 50],
20 : [20, 30, 50],
35 : [20, 30, 50],
50 : [20, 50, 100],
75 : [50, 75, 100],
100 : [75, 100, 150],
150 : [75, 100, 200],
200 : [100, 200, 300]
},
'EUR' : {
0: [3, 5, 10],
4: [5, 10, 20],
7: [10, 20, 50],
14: [15, 20, 50],
20: [20, 50, 100],
40: [30, 50, 100],
68: [50, 100, 150]
},
'JPY' : {
0: [300, 500, 1000],
3: [500, 1000, 1500],
5: [1000, 1500, 2000],
10: [1500, 2000, 5000],
20: [2000, 3000, 5000],
50: [2000, 5000, 10000],
100: [5000, 10000, 15000]
},
'SEK' : {
0: [20, 50, 100],
3: [30, 50, 100],
5: [50, 100, 150],
15: [100, 150, 200],
23: [100, 200, 300],
38: [100, 200, 500],
75: [100, 500, 750],
112: [100, 500, 1000]
}
};
appealasks.AUD = appealasks.USD;
appealasks.CAD = appealasks.USD;
appealasks.GBP = appealasks.USD;
appealasks.NZD = appealasks.USD;
var symbols = {
'USD' : '$\t',
'AUD' : '$\t',
'CAD' : '$\t',
'EUR' : '€\t',
'GBP' : '£\t',
'NZD' : '$\t',
'JPY' : '¥\t',
'SEK' : '\t kr'
};
var ask = null;
var symbol = '';
var currency = $("input[name='currency_code']").val();
if( currency in symbols ){
symbol = symbols[currency];
}
if( currency in asks ){
if( asks[currency].length < 1 ){
return;
}
for( var prev in asks[currency] ){
// this assumes that JS returns keys in sorted order, most do
if( prev > hpc ){
break;
}
ask = asks[currency][prev];
}
if( ask != null ){
for( var j = 0; j < ask.length; j++ ){
var radio = $("#input_amount_" + j);
var label = $("label[for='input_amount_" + j + "']");
if( radio != null ){
if( label != null ){
// I know an && could be used here, but they are getting escaped
radio.val( ask[j] );
label.text( symbol.replace('\t', ask[j]) );
}
}
}
}
}
if( currency in appealasks ){
if( appealasks[currency].length < 1 ){
return;
}
for( var prev in appealasks[currency] ){
// this assumes that JS returns keys in sorted order, most do
if( prev > hpc ){
break;
}
appealask = appealasks[currency][prev];
}
var considerAmountString = "";
for( var k = 0; k < appealask.length; k++ ) {
considerAmountString += symbol.replace('\t', appealask[k]) + ', ';
}
considerAmountString = considerAmountString.trim();
$('.consider-amounts').html(considerAmountString);
}
}
function adjustOtherVal() {
// prefill other amount box if param provided
var otherVal = mw.util.getParamValue( 'otherVal' );
if( isNaN( parseFloat( otherVal ) ) ) {
return;
}
otherVal = parseFloat( otherVal );
$("#input_amount_other").attr( 'checked', true );
$("#input_amount_other_box").val( otherVal );
}
$(document).ready(function() {
// Load list of payment outages from meta, and hide any which are current
$.getScript('//meta.wikimedia.org/w/index.php?' + $.param( { title:'MediaWiki:FR2013/Resources/PaymentOutages.js', action:'raw', ctype:'text/javascript' } ),
function() {
setTimeout(checkPaymentOutages(), 250); // allow time for script to have _executed_ (not just loaded)
});
// Disable submitting form with return key
$( 'form[name="paypalcontribution"]' ).bind( 'keypress', function(e) {
var code = ( e.keyCode ? e.keyCode : e.which );
if ( code == 13 ) return false;
});
// Disable logo link
$("#p-logo a").attr("href", "#");
$("#p-logo a").attr("title", "");
// Monthly
if( mw.util.getParamValue('monthly') ) {
$('#frequency_monthly').click();
}
adjustHPC();
adjustOtherVal();
});