Cdentinger has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/252959

Change subject: WIP move adyen to mustache templates
......................................................................

WIP move adyen to mustache templates

Change-Id: I7fe609e06139d6d137aee42f8c8a62200ea42ff2
---
M DonationInterface.php
M DonationInterfaceFormSettings.php
M adyen_gateway/adyen.adapter.php
M adyen_gateway/adyen_gateway.body.php
D adyen_gateway/forms/html/_donation-amount/USD.html
D adyen_gateway/forms/html/_donation-amount/default.html
D adyen_gateway/forms/html/_name-email/default.html
D adyen_gateway/forms/html/_personal-information/US.html
D adyen_gateway/forms/html/_personal-information/default.html
D adyen_gateway/forms/html/adyen.html
M adyen_gateway/forms/js/adyen.js
11 files changed, 69 insertions(+), 315 deletions(-)


  git pull 
ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/DonationInterface 
refs/changes/59/252959/1

diff --git a/DonationInterface.php b/DonationInterface.php
index 7577ac1..3944423 100644
--- a/DonationInterface.php
+++ b/DonationInterface.php
@@ -876,6 +876,13 @@
        'position' => 'top',
 );
 
+$wgResourceModules['ext.donationinterface.adyen.scripts'] = array (
+       'scripts' => 'adyen.js',
+       'dependencies' => 'di.form.core.validate',
+       'localBasePath' => __DIR__ . '/astropay_gateway/forms/js',
+       'remoteExtPath' => 'DonationInterface/adyen_gateway/forms/js'
+);
+
 $wgResourceModules['ext.donationinterface.astropay.scripts'] = array (
        'scripts' => 'astropay.js',
        'dependencies' => 'di.form.core.validate',
diff --git a/DonationInterfaceFormSettings.php 
b/DonationInterfaceFormSettings.php
index 9197ed4..720b5fb 100644
--- a/DonationInterfaceFormSettings.php
+++ b/DonationInterfaceFormSettings.php
@@ -496,15 +496,7 @@
  **********/
 // This is at the bottom so that we prefer GC over adyen
 $forms_whitelist['adyen'] = array(
-       'file' => $form_dirs['adyen'] . '/adyen.html',
-       'gateway' => 'adyen',
-       'countries' => array( '+' => 'US',),
-       'currencies' => array( '+' => 'USD',),
-       'payment_methods' => array('cc' => array( 'visa', 'mc', 'amex', 
'discover' )),
-       'selection_weight' => 0
-);
-$forms_whitelist['adyen-cs'] = array(
-       'file' => $form_dirs['adyen'] . '/adyen-cs.html',
+       'file' => __DIR__ . '/gateway_forms/mustache/index.html.mustache',
        'gateway' => 'adyen',
        'countries' => array( '+' => 'US',),
        'currencies' => array( '+' => 'USD',),
diff --git a/adyen_gateway/adyen.adapter.php b/adyen_gateway/adyen.adapter.php
index 8d96274..e9a8d90 100644
--- a/adyen_gateway/adyen.adapter.php
+++ b/adyen_gateway/adyen.adapter.php
@@ -30,6 +30,10 @@
                return 'namevalue';
        }
 
+       public function getFormClass() {
+               return 'Gateway_Form_Mustache';
+       }
+
        function defineAccountInfo() {
                $this->accountInfo = array(
                        'merchantAccount' => $this->account_config[ 
'AccountName' ],
@@ -170,7 +174,12 @@
 
        public function definePaymentMethods() {
                $this->payment_methods = array(
-                       'cc' => array(),
+                       'cc' => array(
+                               'validation' => array(
+                                       'name' => true,
+                                       'email' => true,
+                               ),
+                       ),
                );
        }
 
diff --git a/adyen_gateway/adyen_gateway.body.php 
b/adyen_gateway/adyen_gateway.body.php
index df64ea5..20c721d 100644
--- a/adyen_gateway/adyen_gateway.body.php
+++ b/adyen_gateway/adyen_gateway.body.php
@@ -34,7 +34,7 @@
         * TODO: Finish Adyen error handling
         */
        protected function handleRequest() {
-               $this->getOutput()->addModules( 'adyen.js' );
+               $this->getOutput()->addModules( 
'ext.donationinterface.adyen.scripts' );
 
                $this->handleDonationRequest();
        }
diff --git a/adyen_gateway/forms/html/_donation-amount/USD.html 
b/adyen_gateway/forms/html/_donation-amount/USD.html
deleted file mode 100644
index f7130d5..0000000
--- a/adyen_gateway/forms/html/_donation-amount/USD.html
+++ /dev/null
@@ -1 +0,0 @@
-$@amount
\ No newline at end of file
diff --git a/adyen_gateway/forms/html/_donation-amount/default.html 
b/adyen_gateway/forms/html/_donation-amount/default.html
deleted file mode 100644
index 25770c5..0000000
--- a/adyen_gateway/forms/html/_donation-amount/default.html
+++ /dev/null
@@ -1 +0,0 @@
-@amount @currency_code
\ No newline at end of file
diff --git a/adyen_gateway/forms/html/_name-email/default.html 
b/adyen_gateway/forms/html/_name-email/default.html
deleted file mode 100644
index e8aa07d..0000000
--- a/adyen_gateway/forms/html/_name-email/default.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<tr>
-       <td>
-               <h3 
class="cc_header">%donate_interface-cc-form-header-personal%<img 
src="@script_path/extensions/DonationInterface/gateway_forms/includes/padlock.gif"
 style="vertical-align:baseline;margin-left:8px;"></h3>
-       </td>
-</tr>
-<tr>
-       <td>
-               <input class="halfwidth" name="fname" value="@fname" 
type="text" placeholder="%donate_interface-donor-fname%" id="fname"><input 
class="halfwidth" name="lname" value="@lname" type="text" 
placeholder="%donate_interface-donor-lname%" id="lname">
-       </td>
-</tr>
-<tr>
-       <td><span class="creditcard-error-msg"></span></td>
-</tr>
-<tr style="display: none;">
-       <td>
-               <input type="hidden" value="@country" name="country" 
id="country" />
-               <input type="hidden" value="XX" name="state" id="state"/>
-               <input type="hidden" value="Springfield" name="city" id="city" 
/>
-               <input type="hidden" value="00000" name="postalcode" 
id="postalcode" />
-       </td>
-</tr>
-<tr>
-       <td>
-               <input class="fullwidth" name="emailAdd" value="@emailAdd" 
type="text" title="%donate_interface-donor-email%" 
placeholder="%donate_interface-donor-email%" id="emailAdd">
-       </td>
-</tr>
diff --git a/adyen_gateway/forms/html/_personal-information/US.html 
b/adyen_gateway/forms/html/_personal-information/US.html
deleted file mode 100644
index dc72b73..0000000
--- a/adyen_gateway/forms/html/_personal-information/US.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<tr>
-       <td>
-               <h3 
class="cc_header">%donate_interface-cc-form-header-personal%<img 
src="@script_path/extensions/DonationInterface/gateway_forms/includes/padlock.gif"
 style="vertical-align:baseline;margin-left:8px;"></h3>
-       </td>
-</tr>
-<tr>
-       <td>
-               <input class="halfwidth" name="fname" value="@fname" 
type="text" placeholder="%donate_interface-donor-fname%" id="fname"><input 
class="halfwidth" name="lname" value="@lname" type="text" 
placeholder="%donate_interface-donor-lname%" id="lname">
-       </td>
-</tr>
-<tr>
-       <td><span class="creditcard-error-msg"></span></td>
-</tr>
-<tr>
-       <td>
-               <input class="fullwidth" name="street" value="@street" 
type="text" title="%donate_interface-donor-street%" 
placeholder="%donate_interface-donor-street%" id="street">
-       </td>
-</tr>
-<tr>
-       <td><span class="creditcard-error-msg"></span></td>
-</tr>
-<tr>
-       <td>
-               <input class="thirdwidth state" name="city" value="@city" 
type="text" title="%donate_interface-donor-city%" 
placeholder="%donate_interface-donor-city%" id="city"><select id="state" 
name="state" class="us thirdwidth" value="@state" >
-                       <option value=""></option>
-                       <option value="AK">AK</option>
-                       <option value="AL">AL</option>
-                       <option value="AR">AR</option>
-                       <option value="AZ">AZ</option>
-                       <option value="CA">CA</option>
-                       <option value="CO">CO</option>
-                       <option value="CT">CT</option>
-                       <option value="DC">DC</option>
-                       <option value="DE">DE</option>
-                       <option value="FL">FL</option>
-                       <option value="GA">GA</option>
-                       <option value="HI">HI</option>
-                       <option value="IA">IA</option>
-                       <option value="ID">ID</option>
-                       <option value="IL">IL</option>
-                       <option value="IN">IN</option>
-                       <option value="KS">KS</option>
-                       <option value="KY">KY</option>
-                       <option value="LA">LA</option>
-                       <option value="MA">MA</option>
-                       <option value="MD">MD</option>
-                       <option value="ME">ME</option>
-                       <option value="MI">MI</option>
-                       <option value="MN">MN</option>
-                       <option value="MO">MO</option>
-                       <option value="MS">MS</option>
-                       <option value="MT">MT</option>
-                       <option value="NC">NC</option>
-                       <option value="ND">ND</option>
-                       <option value="NE">NE</option>
-                       <option value="NH">NH</option>
-                       <option value="NJ">NJ</option>
-                       <option value="NM">NM</option>
-                       <option value="NV">NV</option>
-                       <option value="NY">NY</option>
-                       <option value="OH">OH</option>
-                       <option value="OK">OK</option>
-                       <option value="OR">OR</option>
-                       <option value="PA">PA</option>
-                       <option value="PR">PR</option>
-                       <option value="RI">RI</option>
-                       <option value="SC">SC</option>
-                       <option value="SD">SD</option>
-                       <option value="TN">TN</option>
-                       <option value="TX">TX</option>
-                       <option value="UT">UT</option>
-                       <option value="VA">VA</option>
-                       <option value="VT">VT</option>
-                       <option value="WA">WA</option>
-                       <option value="WI">WI</option>
-                       <option value="WV">WV</option>
-                       <option value="WY">WY</option>
-                       <option value="AA">AA</option>
-                       <option value="AE">AE</option>
-                       <option value="AP">AP</option>
-               </select><input name="zip" class="thirdwidth state" 
value="@zip" type="text" title="%donate_interface-donor-postal%" 
placeholder="%donate_interface-donor-postal%" id="zip">
-       </td>
-</tr>
-<tr style="display: none;">
-       <td>
-               <input type="hidden" value="US" name="country" id="country" />
-       </td>
-</tr>
-<tr>
-       <td>
-               <input class="fullwidth" name="emailAdd" value="@emailAdd" 
type="text" title="%donate_interface-donor-email%" 
placeholder="%donate_interface-donor-email%" id="emailAdd">
-       </td>
-</tr>
diff --git a/adyen_gateway/forms/html/_personal-information/default.html 
b/adyen_gateway/forms/html/_personal-information/default.html
deleted file mode 100644
index f2ce166..0000000
--- a/adyen_gateway/forms/html/_personal-information/default.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<tr>
-       <td>
-               <h3 
class="cc_header">%donate_interface-cc-form-header-personal%<img 
src="@script_path/extensions/DonationInterface/gateway_forms/includes/padlock.gif"
 style="vertical-align:baseline;margin-left:8px;"></h3>
-       </td>
-</tr>
-<tr>
-       <td>
-               <input class="halfwidth" name="fname" value="@fname" 
type="text" placeholder="%donate_interface-donor-fname%" id="fname"><input 
class="halfwidth" name="lname" value="@lname" type="text" 
placeholder="%donate_interface-donor-lname%" id="lname">
-       </td>
-</tr>
-<tr>
-       <td><span class="creditcard-error-msg"></span></td>
-</tr>
-<tr>
-       <td>
-               <input class="fullwidth" name="street" value="@street" 
type="text" title="%donate_interface-donor-street%" 
placeholder="%donate_interface-donor-street%" id="street">
-       </td>
-</tr>
-<tr>
-       <td><span class="creditcard-error-msg"></span></td>
-</tr>
-<tr>
-       <td>
-               <input name="zip" class="halfwidth" value="@zip" type="text" 
title="%donate_interface-donor-postal%" 
placeholder="%donate_interface-donor-postal%" id="zip"><input class="halfwidth" 
name="city" value="@city" type="text" title="%donate_interface-donor-city%" 
placeholder="%donate_interface-donor-city%" id="city">
-       </td>
-</tr>
-<tr style="display: none;">
-       <td>
-               <input type="hidden" value="XX" name="state" id="state" />
-       </td>
-</tr>
-<tr>
-    <td>
-        <select class="txt" id="country" name="country" value="@country" 
placeholder="%donate_interface-country%">
-            <option value="">%donate_interface-select-country%</option>
-                       @select_country
-        </select>
-    </td>
-</tr>
-<tr>
-       <td>
-               <input class="fullwidth" name="emailAdd" value="@emailAdd" 
type="text" title="%donate_interface-donor-email%" 
placeholder="%donate_interface-donor-email%" id="emailAdd">
-       </td>
-</tr>
diff --git a/adyen_gateway/forms/html/adyen.html 
b/adyen_gateway/forms/html/adyen.html
deleted file mode 100644
index e83d213..0000000
--- a/adyen_gateway/forms/html/adyen.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<script type="text/javascript">
-       mw.loader.load('adyen.js');
-       // these must go through RapidHTML and thus are inline
-       var amountErrors = 
['#general|escape','#retryMsg|escape','#amount|escape'];
-       var billingErrors = 
['#fname|escape','#lname|escape','#city|escape','#country|escape','#street|escape','#state|escape','#zip|escape','#emailAdd|escape'];
-       var paymentErrors = 
['#card_num|escape','#card_type|escape','#cvv|escape'];
-       var actionURL = "@action";
-       var scriptPath = "@script_path";
-</script>
-
-<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="">
-                               @noscript
-                               <p id="topError" 
class="creditcard-error-msg"></p>
-
-                       <form name="payment" method="post" action="@action">
-                               <div id="payment_gateway-personal-info">
-                                       <table id="payment-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>
-                                <dl class="">
-                                    <dd class="field" style="margin-bottom: 0; 
margin-left: 0;">
-                                        <div id="paymentContinue" 
style="margin-top: 10px;"> <input class="btn" id="paymentContinueBtn" 
type="button" value="%donate_interface-continue%" /></div>
-                                    </dd>
-                                </dl>
-                            </td>
-                        </tr>
-                        <tr>
-                            <td>
-                                <div id="payment" class="gainlayout" 
style="height: 0;text-align: center;"></div>
-                            </td>
-                        </tr>
-                                               <tr>
-                            <td>
-                                <div class="mw-donate-submessage" 
id="payment_gateway-donate-submessage">
-                                    <img 
src="@script_path/extensions/DonationInterface/gateway_forms/includes/padlock.gif"
 style="vertical-align:baseline;margin-right:4px;"> 
%donate_interface-donate-click%
-                                </div>
-                            </td>
-                        </tr>
-                                               </tbody>
-                                       </table>
-                               </div>
-                               <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">
-                               <!-- This should be included in the 
personal_information templates -->
-                               <!--<input type="hidden" value="@country" 
name="country" id="country" />-->
-                               <input type="hidden" value="@expiration" 
name="expiration" id="expiration"/>
-                               <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="1" 
name="email-opt"/>
-                               <input type="hidden" value="@token" 
name="token"/>
-                               <input type="hidden" value="@order_id"  
name="order_id"/>
-                               <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" value="cc" 
name="payment_method"/>
-                       </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/adyen_gateway/forms/js/adyen.js b/adyen_gateway/forms/js/adyen.js
index 8e1afca..562f568 100644
--- a/adyen_gateway/forms/js/adyen.js
+++ b/adyen_gateway/forms/js/adyen.js
@@ -1,10 +1,8 @@
 /*global amountErrors:true, billingErrors:true, paymentErrors:true, 
validate_personal:true, validateAmount:true, displayCreditCardForm:true*/
 
 window.displayCreditCardForm = function () {
-       $( '#payment' ).empty();
-       // Load wait spinner
-       $( '#payment' ).append( '<br/><br/><img alt="loading" src="' + 
mw.config.get( 'wgScriptPath' ) +
-               
'/extensions/DonationInterface/gateway_forms/includes/loading-white.gif" />' );
+       $( '#overlay' ).show();
+       $( '#paymentContinueBtn' ).removeClass( 'enabled' );
 
        var currencyField, currency_code, stateField, state, countryField, 
country, sendData,
                $payment, $pForm,
@@ -85,7 +83,7 @@
                                        } );
                                } else {
                                        if ( data.result.formaction && 
data.result.gateway_params ) {
-                                               $payment = $( '#payment' );
+                                               $payment = $( '#payment-form' );
 
                                                // Empty the div; add the 
target iframe; then submit the request for the iframe contents
                                                $payment.empty();
@@ -114,6 +112,9 @@
                },
                error: function ( xhr ) {
                        alert( mw.msg( 'donate_interface-error-msg-general' ) );
+               },
+               complete: function () {
+                       $('#overlay').hide();
                }
        } );
 };
@@ -124,52 +125,55 @@
  */
 $( document ).ready( function () {
 
-       // check for RapidHtml errors and display, if any
-       var temp, e, f, g,
-               amountErrorString = '',
-               billingErrorString = '',
-               paymentErrorString = '';
-
-       // generate formatted errors to display
-       temp = [];
-       for ( e in amountErrors ) {
-               if ( amountErrors[e] !== '' ) {
-                       temp[temp.length] = amountErrors[e];
-               }
-       }
-       amountErrorString = temp.join( '<br />' );
-
-       temp = [];
-       for ( f in billingErrors ) {
-               if ( billingErrors[f] !== '' ) {
-                       temp[temp.length] = billingErrors[f];
-               }
-       }
-       billingErrorString = temp.join( '<br />' );
-
-       temp = [];
-       for ( 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 );
-       }
+// TODO: mustache errors
+//     // check for RapidHtml errors and display, if any
+//     var temp, e, f, g,
+//             amountErrorString = '',
+//             billingErrorString = '',
+//             paymentErrorString = '';
+//
+//     // generate formatted errors to display
+//     temp = [];
+//     for ( e in amountErrors ) {
+//             if ( amountErrors[e] !== '' ) {
+//                     temp[temp.length] = amountErrors[e];
+//             }
+//     }
+//     amountErrorString = temp.join( '<br />' );
+//
+//     temp = [];
+//     for ( f in billingErrors ) {
+//             if ( billingErrors[f] !== '' ) {
+//                     temp[temp.length] = billingErrors[f];
+//             }
+//     }
+//     billingErrorString = temp.join( '<br />' );
+//
+//     temp = [];
+//     for ( 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 );
+//     }
 
        $( '#paymentContinueBtn' ).on( 'click', function () {
-               if ( validate_personal( document.payment ) && validateAmount() 
) {
-                       $( '#payment' ).animate( { height: '250px' }, 1000 );
+               if ( window.validate_form( document.payment ) ) {
+                       $( '#payment-form' ).animate( { height: '250px' }, 1000 
);
                        displayCreditCardForm();
                        // hide the continue button so that people don't get 
confused with two of them
                        $( '#paymentContinue' ).hide();
                }
        } );
+
+       $( '#paymentContinue' ).show(); // Show continue button in 2nd section
 } );

-- 
To view, visit https://gerrit.wikimedia.org/r/252959
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I7fe609e06139d6d137aee42f8c8a62200ea42ff2
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/DonationInterface
Gerrit-Branch: master
Gerrit-Owner: Cdentinger <cdentin...@wikimedia.org>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to