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