Adamw has uploaded a new change for review. https://gerrit.wikimedia.org/r/51584
Change subject: Forms support for Boletos ...................................................................... Forms support for Boletos Change-Id: I1dcaac35bfc4d0bc42fa3b5f6ab44b6b699c1a62 --- M donationinterface.php M gateway_common/DonationData.php M gateway_common/interface.i18n.php M gateway_forms/RapidHtml.php M gateway_forms/rapidhtml/RapidHtmlResources.php M globalcollect_gateway/forms/html/_personal-information/default.html A globalcollect_gateway/forms/html/cash/boletos.html A globalcollect_gateway/forms/js/gc.boletos.js M globalcollect_gateway/globalcollect.adapter.php M modules/validate_input.js 10 files changed, 172 insertions(+), 4 deletions(-) git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DonationInterface refs/changes/84/51584/1 diff --git a/donationinterface.php b/donationinterface.php index 5aa90d4..16bbe05 100644 --- a/donationinterface.php +++ b/donationinterface.php @@ -901,6 +901,7 @@ 'donate_interface-error-msg-card_num', 'donate_interface-error-msg-expiration', 'donate_interface-error-msg-cvv', + 'donate_interface-error-msg-fiscal_number', 'donate_interface-error-msg-captcha', 'donate_interface-error-msg-captcha-please', 'donate_interface-error-msg-cookies', diff --git a/gateway_common/DonationData.php b/gateway_common/DonationData.php index e10f652..a3b10ef 100644 --- a/gateway_common/DonationData.php +++ b/gateway_common/DonationData.php @@ -132,6 +132,7 @@ 'date_collect' => $wgRequest->getText( 'date_collect', null ), 'direct_debit_text' => $wgRequest->getText( 'direct_debit_text', null ), 'iban' => $wgRequest->getText( 'iban', null ), + 'fiscal_number' => $wgRequest->getText( 'fiscal_number', null ), 'transaction_type' => $wgRequest->getText( 'transaction_type', null ), 'form_name' => $wgRequest->getText( 'form_name', null ), 'ffname' => $wgRequest->getText( 'ffname', null ), diff --git a/gateway_common/interface.i18n.php b/gateway_common/interface.i18n.php index e6c6006..aeb5e31 100644 --- a/gateway_common/interface.i18n.php +++ b/gateway_common/interface.i18n.php @@ -166,6 +166,7 @@ 'donate_interface-donor-security' => 'Security code', 'donate_interface-donor-submit' => 'Donate', 'donate_interface-donor-currency-msg' => 'This donation is being made in $1', + 'donate_interface-donor-fiscal_number' => 'Fiscal number', 'donate_interface-card-name-amex' => 'American Express', 'donate_interface-card-name-visa' => 'Visa', 'donate_interface-card-name-mc' => 'MasterCard', @@ -202,6 +203,7 @@ 'donate_interface-error-msg-cookies' => 'Please enable cookies in your browser.', 'donate_interface-error-msg-genaricrequired' => 'This field is required', 'donate_interface-error-msg-country-calc' => 'Error - We are unable to accept your donation at this time.', + 'donate_interface-error-msg-fiscal_number' => 'fiscal number', 'donate_interface-donate-error-try-a-different-card' => 'Please [$1 try a different card] or one of our [$2 other ways to give] or contact us at $3', 'donate_interface-donate-error-thank-you-for-your-support' => 'Thank you for your support!', 'php-response-declined' => 'Your transaction could not be accepted.', diff --git a/gateway_forms/RapidHtml.php b/gateway_forms/RapidHtml.php index c9b9aea..0b6a93a 100644 --- a/gateway_forms/RapidHtml.php +++ b/gateway_forms/RapidHtml.php @@ -69,6 +69,8 @@ '@bank_name', '@bank_check_digit', '@branch_code', + // Boletos + '@fiscal_number', // Not actually data tokens, but available to you in html form: // @captcha -> the captcha form // @script_path -> maps to $wgScriptPath @@ -99,6 +101,7 @@ '#state', '#zip', '#emailAdd', + '#fiscal_number', ); public function __construct( &$gateway ) { diff --git a/gateway_forms/rapidhtml/RapidHtmlResources.php b/gateway_forms/rapidhtml/RapidHtmlResources.php index edc90cf..7f2388a 100644 --- a/gateway_forms/rapidhtml/RapidHtmlResources.php +++ b/gateway_forms/rapidhtml/RapidHtmlResources.php @@ -145,7 +145,6 @@ $wgResourceModules[ 'gc.form.rapidhtml.dd' ] = array( 'styles' => 'css/gc.css', 'scripts' => array( -// 'js/gc.js', 'js/gc.dd.js' ), // 'dependencies' => array( 'di.form.core.validate' ), @@ -155,13 +154,21 @@ $wgResourceModules[ 'gc.form.rapidhtml.ew' ] = array( 'styles' => 'css/gc.css', 'scripts' => array( - 'js/gc.js', 'js/gc.ew.js' ), 'dependencies' => array( 'di.form.core.validate' ), 'localBasePath' => dirname( __FILE__ ).'/../../globalcollect_gateway/forms', 'remoteExtPath' => $wgGlobalCollectRapidHtmlRemoteExtPath, ); +$wgResourceModules[ 'gc.form.rapidhtml.boletos' ] = array( + 'styles' => 'css/gc.css', + 'scripts' => array( + 'js/gc.boletos.js' + ), + 'dependencies' => array( 'di.form.core.validate' ), + 'localBasePath' => dirname( __FILE__ ).'/../../globalcollect_gateway/forms', + 'remoteExtPath' => $wgGlobalCollectRapidHtmlRemoteExtPath, +); /************************************************************* ************************************************************* diff --git a/globalcollect_gateway/forms/html/_personal-information/default.html b/globalcollect_gateway/forms/html/_personal-information/default.html index 5cc8b32..1552eed 100644 --- a/globalcollect_gateway/forms/html/_personal-information/default.html +++ b/globalcollect_gateway/forms/html/_personal-information/default.html @@ -18,6 +18,11 @@ <input class="fullwidth" name="emailAdd" value="@emailAdd" type="text" title="%donate_interface-donor-email%" placeholder="%donate_interface-donor-email%" id="emailAdd"> </td> </tr> +<tr id="collapsingCity"> + <td colspan="2"> + <input class="fullwidth" name="city" value="@city" type="text" title="%donate_interface-city-town%" placeholder="%donate_interface-city-town%" id="city"> + </td> +</tr> <tr> <td colspan="2"> <select class="txt" id="country" name="country" value="@country" placeholder="%donate_interface-country%"> diff --git a/globalcollect_gateway/forms/html/cash/boletos.html b/globalcollect_gateway/forms/html/cash/boletos.html new file mode 100644 index 0000000..f2befe8 --- /dev/null +++ b/globalcollect_gateway/forms/html/cash/boletos.html @@ -0,0 +1,97 @@ +<script type="text/javascript"> + mw.loader.load('gc.form.rapidhtml.boletos'); + // these must go through RapidHTML and thus are inline + var amountErrors = ['#general|escape','#retryMsg|escape','#amount|escape']; + var billingErrors = ['#fname|escape','#lname|escape','#country|escape','#emailAdd|escape']; + var paymentErrors = ['#fiscal_number|escape']; + var actionURL = "@action"; + var scriptPath = "@script_path"; +</script> +<style type="text/css"> + tr#collapsingCity { + display: table-row; + } +</style> + + +<table width="100%" cellspacing="0" cellpadding="0" border="0"> + <tbody> + <tr> + <td id="appeal" valign="top"> + {{LanguageSwitch|2011FR/@appeal/text|@language}} + </td> + <td id="donate" valign="top"> + <div id="greenBackground" class="donor"> + <noscript> + <div id="noscript"> + <p id="noscript-msg">%donate_interface-noscript-msg%</p> + <p id="noscript-redirect-msg">%donate_interface-noscript-redirect-msg%</p> + <p id="noscript-redirect-link"> + <a href="https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=DonateNonJS&language=@language&uselang=@language&country=@country">https://wikimediafoundation.org/wiki/Special:LandingCheck?basic=true&landing_page=DonateNonJS&language=@language&uselang=@language&country=@country</a> + </p> + </div> + </noscript> + <p id="topError" class="creditcard-error-msg"></p> + + <form name="payment" method="post" action="@action"> + <table id="payflow-table-donor"> + <tbody> + <tr> + <td colspan="2"> + <div id="step1header"> + <h3 class="amount_header">%donate_interface-amount-legend%: <span id="selected-amount">{% block donation-amount currency_code %}</span></h3> + </div> + </td> + </tr> + {% block personal-information country %} + <tr> + <td colspan="2"> + <input class="fullwidth" name="fiscal_number" value="@fiscal_number" type="text" placeholder="%donate_interface-donor-fiscal_number%" id="fiscal_number"> + </td> + </tr> + <tr> + <td colspan="2"> + <div id="bt-continue" style="margin-top: 10px;"> <input class="btn" id="continueBtn" type="button" value="%donate_interface-continue%" /></div> + </td> + </tr> + </tbody> + </table> + <input type="hidden" name="returnto" value="Thank_You/en" /> + <input type="hidden" value="0" name="PaypalRedirect" id="PaypalRedirect"> + <input type="hidden" value="@amount" name="amount"> + <input type="hidden" value="@currency_code" name="currency_code" /> + <input type="hidden" value="@utm_source" name="utm_source"/> + <input type="hidden" value="@utm_medium" name="utm_medium"/> + <input type="hidden" value="@utm_campaign" name="utm_campaign"/> + <input type="hidden" value="@language" name="language"/> + <input type="hidden" value="@referrer" name="referrer"/> + <input type="hidden" value="@comment" name="comment"/> + <input type="hidden" value="@comment-option" name="comment-option"/> + <input type="hidden" value="@token" name="token"/> + <input type="hidden" value="@order_id" name="order_id"/> + <input type="hidden" value="@numAttempt" name="numAttempt"/> + <input type="hidden" value="@contribution_tracking_id" name="contribution_tracking_id"/> + <input type="hidden" value="@data_hash" name="data_hash"/> + <input type="hidden" value="@owa_session" name="owa_session"/> + <input type="hidden" value="@owa_ref" name="owa_ref"/> + <input type="hidden" value="@gateway" name="gateway"/> + <input type="hidden" class="optional" value="" name="street" id="street" /> + <input type="hidden" class="optional" value="" name="state" id="state" /> + <input type="hidden" class="optional" value="" name="zip" id="zip" /> + <input type="hidden" value="cash" name="payment_method"/> + <input type="hidden" value="cash_boleto" name="payment_submethod"/> + </form> + </div> + <p id="informationsharing">%donate_interface-informationsharing|url%</p> + <table> + <tr> + <td> + {% block moreinfolinks %} + </td> + <td>@verisign_logo</td> + </tr> + </table> + </td> + </tr> + </tbody> +</table> diff --git a/globalcollect_gateway/forms/js/gc.boletos.js b/globalcollect_gateway/forms/js/gc.boletos.js new file mode 100644 index 0000000..6e7301c --- /dev/null +++ b/globalcollect_gateway/forms/js/gc.boletos.js @@ -0,0 +1,13 @@ + +$( document ).ready( function () { + displayErrors(); + + $( "#continueBtn" ).live( "click", function() { + if ( validateAmount() && validate_form( document.payment ) ) { + document.payment.action = actionURL; + document.payment.submit(); + } + } ); + +} ); + diff --git a/globalcollect_gateway/globalcollect.adapter.php b/globalcollect_gateway/globalcollect.adapter.php index f20d7fc..c3d12a7 100644 --- a/globalcollect_gateway/globalcollect.adapter.php +++ b/globalcollect_gateway/globalcollect.adapter.php @@ -313,6 +313,7 @@ 'SWIFTCODE' => 'swift_code', 'TRANSACTIONTYPE' => 'transaction_type', // dd:GB,NL 'ZIP' => 'zip', + 'FISCALNUMBER' => 'fiscal_number', //Boletos ); } @@ -1024,7 +1025,6 @@ 'paymentproductid' => 1503, 'label' => 'Boleto Bancario Brazil', 'group' => 'cash', - 'validation' => array(), 'keys' => array(), ); } @@ -1085,6 +1085,7 @@ } } + //XXX kill all this validation. /** * Get payment submethod form validation options * @@ -2155,6 +2156,8 @@ case 'cash_boleto': $this->staged_data['payment_product'] = $this->payment_submethods[ $payment_submethod ]['paymentproductid']; $this->var_map['PAYMENTPRODUCTID'] = 'payment_product'; + + $this->addKeyToTransaction('FISCALNUMBER'); break; /* Online bank transfer */ diff --git a/modules/validate_input.js b/modules/validate_input.js index c3865f6..02d9526 100644 --- a/modules/validate_input.js +++ b/modules/validate_input.js @@ -177,7 +177,7 @@ var output = ''; var currField = ''; var i = 0; - var fields = ['fname','lname','street','city','zip', 'emailAdd', 'card_num','cvv'], + var fields = ['fname','lname','street','city','zip', 'emailAdd', 'card_num','cvv','fiscal_number'], numFields = fields.length; for( i = 0; i < numFields; i++ ) { if ( document.getElementById( fields[i] ) ) { // Make sure field exists @@ -235,6 +235,42 @@ return true; }; +window.displayErrors = function () { + // check for RapidHtml errors and display, if any + var amountErrorString = ""; + var billingErrorString = ""; + var paymentErrorString = ""; + + // generate formatted errors to display + var temp = []; + for ( var e in amountErrors ) + if ( amountErrors[e] != "" ) + temp[temp.length] = amountErrors[e]; + amountErrorString = temp.join( "<br />" ); + + temp = []; + for ( var f in billingErrors ) + if ( billingErrors[f] != "" ) + temp[temp.length] = billingErrors[f]; + billingErrorString = temp.join( "<br />" ); + + temp = []; + for ( var g in paymentErrors ) + if ( paymentErrors[g] != "" ) + temp[temp.length] = paymentErrors[g]; + paymentErrorString = temp.join( "<br />" ); + + // show the errors + if ( amountErrorString != "" ) { + $( "#topError" ).html( amountErrorString ); + } else if ( billingErrorString != "" ) { + $( "#topError" ).html( billingErrorString ); + } else if ( paymentErrorString != "" ) { + $( "#topError" ).html( paymentErrorString ); + } +} + + window.submit_form = function( ccform ) { if ( validate_form( ccform )) { // weird hack!!!!!! for some reason doing just ccform.submit() throws an error.... -- To view, visit https://gerrit.wikimedia.org/r/51584 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I1dcaac35bfc4d0bc42fa3b5f6ab44b6b699c1a62 Gerrit-PatchSet: 1 Gerrit-Project: mediawiki/extensions/DonationInterface Gerrit-Branch: master Gerrit-Owner: Adamw <awi...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits