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