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

Reply via email to