http://www.mediawiki.org/wiki/Special:Code/MediaWiki/76847

Revision: 76847
Author:   kaldari
Date:     2010-11-16 23:20:41 +0000 (Tue, 16 Nov 2010)
Log Message:
-----------
fix for placeholder bug

Modified Paths:
--------------
    
trunk/extensions/DonationInterface/payflowpro_gateway/forms/OneStepTwoColumn.php
    
trunk/extensions/DonationInterface/payflowpro_gateway/forms/TwoStepTwoColumn.php
    
trunk/extensions/DonationInterface/payflowpro_gateway/payflowpro_gateway.i18n.php

Modified: 
trunk/extensions/DonationInterface/payflowpro_gateway/forms/OneStepTwoColumn.php
===================================================================
--- 
trunk/extensions/DonationInterface/payflowpro_gateway/forms/OneStepTwoColumn.php
    2010-11-16 23:13:29 UTC (rev 76846)
+++ 
trunk/extensions/DonationInterface/payflowpro_gateway/forms/OneStepTwoColumn.php
    2010-11-16 23:20:41 UTC (rev 76847)
@@ -16,6 +16,11 @@
 
                $this->loadApiJs(); // API/Ajax JS
 
+               $this->loadPlaceholders();
+       }
+       
+       public function loadPlaceholders() {
+               global $wgOut;
                // form placeholder values
                $first = wfMsg( 'payflowpro_gateway-first' );
                $last = wfMsg( 'payflowpro_gateway-last' );
@@ -41,6 +46,43 @@
        }
 }
 addEvent( window, 'load', loadPlaceholders );
+
+function formCheck( ccform ) {
+       var msg = [ 'EmailAdd', 'Fname', 'Lname', 'Street', 'City', 'State', 
'Zip', 'CardNum', 'Cvv' ];
+
+       var fields = 
["emailAdd","fname","lname","street","city","state","zip","card_num","cvv" ],
+               numFields = fields.length,
+               i,
+               output = '',
+               currField = '';
+
+       for( i = 0; i < numFields; i++ ) {
+               if( document.getElementById( fields[i] ).value == '' ) {
+                       currField = window['payflowproGatewayErrorMsg'+ msg[i]];
+                       output += payflowproGatewayErrorMsgJs + ' ' + currField 
+ '.\\r\\n';
+               }
+       }
+       
+       if (document.getElementById('fname').value == '$first') {
+               output += payflowproGatewayErrorMsgJs + ' first name.\\r\\n';
+       }
+       if (document.getElementById('lname').value == '$last') {
+               output += payflowproGatewayErrorMsgJs + ' last name.\\r\\n';
+       }
+
+       // validate email address
+       var apos = document.payment.emailAdd.value.indexOf("@");
+       var dotpos = document.payment.emailAdd.value.lastIndexOf(".");
+
+       if( apos < 1 || dotpos-apos < 2 ) {
+               output += payflowproGatewayErrorMsgEmail;
+       }
+       
+       if( output ) {
+               alert( output );
+               return false;
+       }
+}
 </script>
 EOT;
                $wgOut->addHeadItem( 'placeholders', $js );
@@ -90,7 +132,7 @@
 
                // Xml::element seems to convert html to htmlentities
                $form .= "<p class='creditcard-error-msg'>" . 
$this->form_errors['retryMsg'] . "</p>";
-               $form .= Xml::openElement( 'form', array( 'name' => 'payment', 
'method' => 'post', 'action' => $this->getNoCacheAction(), 'onsubmit' => 
'return validate_form(this)', 'autocomplete' => 'off' ) );
+               $form .= Xml::openElement( 'form', array( 'name' => 'payment', 
'method' => 'post', 'action' => $this->getNoCacheAction(), 'onsubmit' => 
'return formCheck(this)', 'autocomplete' => 'off' ) );
 
                $form .= Xml::openElement( 'div', array( 'id' => 'left-column', 
'class' => 'payflow-cc-form-section' ) );
                $form .= $this->generatePersonalContainer();
@@ -112,7 +154,7 @@
                        $form .= Html::hidden( 'PaypalRedirect', false );
                        $form .= Xml::element( 'input', array( 'class' => 
'button-plain', 'value' => wfMsg( 'payflowpro_gateway-paypal-button' ), 
'onclick' => 
'document.payment.PaypalRedirect.value=\'true\';document.payment.submit();', 
'type' => 'submit' ) );
                } else {
-                       $form .= Xml::element( 'input', array( 'class' => 
'button-plain', 'value' => wfMsg( 'payflowpro_gateway-cc-button' ), 'onclick' 
=> 'submit_form( this )', 'type' => 'submit' ) );
+                       $form .= Xml::element( 'input', array( 'class' => 
'button-plain', 'value' => wfMsg( 'payflowpro_gateway-cc-button' ), 'type' => 
'submit' ) );
                        $form .= Xml::closeElement( 'div' ); // close 
div#mw-donate-submit-button
                        $form .= Xml::openElement( 'div', array( 'class' => 
'mw-donate-submessage', 'id' => 'payflowpro_gateway-donate-submessage' ) ) .
                        wfMsg( 'payflowpro_gateway-donate-click' );

Modified: 
trunk/extensions/DonationInterface/payflowpro_gateway/forms/TwoStepTwoColumn.php
===================================================================
--- 
trunk/extensions/DonationInterface/payflowpro_gateway/forms/TwoStepTwoColumn.php
    2010-11-16 23:13:29 UTC (rev 76846)
+++ 
trunk/extensions/DonationInterface/payflowpro_gateway/forms/TwoStepTwoColumn.php
    2010-11-16 23:20:41 UTC (rev 76847)
@@ -34,6 +34,43 @@
        }
 }
 addEvent( window, 'load', loadPlaceholders );
+
+function formCheck( ccform ) {
+       var msg = [ 'EmailAdd', 'Fname', 'Lname', 'Street', 'City', 'State', 
'Zip', 'CardNum', 'Cvv' ];
+
+       var fields = 
["emailAdd","fname","lname","street","city","state","zip","card_num","cvv" ],
+               numFields = fields.length,
+               i,
+               output = '',
+               currField = '';
+
+       for( i = 0; i < numFields; i++ ) {
+               if( document.getElementById( fields[i] ).value == '' ) {
+                       currField = window['payflowproGatewayErrorMsg'+ msg[i]];
+                       output += payflowproGatewayErrorMsgJs + ' ' + currField 
+ '.\\r\\n';
+               }
+       }
+       
+       if (document.getElementById('fname').value == '$first') {
+               output += payflowproGatewayErrorMsgJs + ' first name.\\r\\n';
+       }
+       if (document.getElementById('lname').value == '$last') {
+               output += payflowproGatewayErrorMsgJs + ' last name.\\r\\n';
+       }
+
+       // validate email address
+       var apos = document.payment.emailAdd.value.indexOf("@");
+       var dotpos = document.payment.emailAdd.value.lastIndexOf(".");
+
+       if( apos < 1 || dotpos-apos < 2 ) {
+               output += payflowproGatewayErrorMsgEmail;
+       }
+       
+       if( output ) {
+               alert( output );
+               return false;
+       }
+}
 </script>
 EOT;
                $wgOut->addHeadItem( 'placeholders', $js );
@@ -79,7 +116,7 @@
 
                // Xml::element seems to convert html to htmlentities
                $form .= "<p class='creditcard-error-msg'>" . 
$this->form_errors['retryMsg'] . "</p>";
-               $form .= Xml::openElement( 'form', array( 'name' => 'payment', 
'method' => 'post', 'action' => $this->getNoCacheAction(), 'onsubmit' => 
'return validate_form(this)', 'autocomplete' => 'off' ) );
+               $form .= Xml::openElement( 'form', array( 'name' => 'payment', 
'method' => 'post', 'action' => $this->getNoCacheAction(), 'onsubmit' => 
'return formCheck(this)', 'autocomplete' => 'off' ) );
 
                $form .= Xml::openElement( 'div', array( 'id' => 'left-column', 
'class' => 'payflow-cc-form-section' ) );
                $form .= $this->generatePersonalContainer();

Modified: 
trunk/extensions/DonationInterface/payflowpro_gateway/payflowpro_gateway.i18n.php
===================================================================
--- 
trunk/extensions/DonationInterface/payflowpro_gateway/payflowpro_gateway.i18n.php
   2010-11-16 23:13:29 UTC (rev 76846)
+++ 
trunk/extensions/DonationInterface/payflowpro_gateway/payflowpro_gateway.i18n.php
   2010-11-16 23:20:41 UTC (rev 76847)
@@ -98,7 +98,7 @@
        'payflowpro_gateway-question-comment' => 'Questions or comments? 
Contact: <a href="mailto:don...@wikimedia.org";>don...@wikimedia.org</a>',
        'payflowpro_gateway-donate-click' => 'Your credit card will be securely 
processed.',
        'payflowpro_gateway-otherways' => 'There are <a 
href="http://wikimediafoundation.org/wiki/Ways_to_Give/en";>other ways to give, 
including PayPal, check, or mail</a>.',
-       'payflowpro_gateway-otherways-alt' => 'There are <a 
href="http://wikimediafoundation.org/wiki/Ways_to_Give/en";>other ways to 
give</a>, including check.',
+       'payflowpro_gateway-otherways-alt' => 'There are <a 
href="http://wikimediafoundation.org/wiki/Ways_to_Give/en";>other ways to 
give</a>, including by check.',
        'payflowpro_gateway-otherways-short' => '<a 
href="http://wikimediafoundation.org/wiki/Ways_to_Give/en";>Other ways to 
give</a>',
        'payflowpro_gateway-paypal' => 'Have a PayPal account? <a 
href="$1/index.php/Special:PayflowProGateway?_cache_=true&paypal=true&masthead=none&form_name=$2&text_template=2010/JimmyAppealLong&language=en&utm_source=$3&utm_medium=$4&utm_campaign=$5">Donate
 with PayPal</a>.',
        'payflowpro_gateway-credit-storage-processing' => 'We do not store your 
credit card information, and your personal data is subject to our <a 
href="http://wikimediafoundation.org/wiki/Donor_Privacy_Policy";>privacy 
policy</a>.',


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

Reply via email to