Author: husted Date: Mon Mar 27 18:49:39 2006 New Revision: 389370 URL: http://svn.apache.org/viewcvs?rev=389370&view=rev Log: Action2 Apps * Mailreader - Work in progress ** Add i18n support for coded fields ** Add Javascript to set form focus
Added: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave-validation.xml (with props) struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave.java (with props) struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription-validation.xml (with props) Modified: struts/sandbox/trunk/action2/README.txt struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration-validation.xml struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration.java struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Logon.jsp struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp Modified: struts/sandbox/trunk/action2/README.txt URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/README.txt?rev=389370&r1=389369&r2=389370&view=diff ============================================================================== --- struts/sandbox/trunk/action2/README.txt (original) +++ struts/sandbox/trunk/action2/README.txt Mon Mar 27 18:49:39 2006 @@ -77,16 +77,13 @@ Logon Nominal -- Cancel (*) ++ Cancel + Reset - Submit (invalid) (*) + Submit (incorrect) + Submit Issues -* Cancel -** Cancel logs exceptions since the target properties on not on cancel action - * Submit (invalid) ** The "errors.password.mismatch" is not being resolved as message @@ -104,7 +101,7 @@ Issues * Submit - no change ** Password is displayed in plain text -** Is there a WW way to set the focus? +** Is there a WW way to set the focus? (Asked in forum) * Edit - Submit (change) ** Password doesn't change when edited ** Password Confirmation message not displayed @@ -142,11 +139,8 @@ Logoff Nominal -* Logoff - Refresh -* Logoff - Skip to Registeration page (*) - -Issues -* Skip to Registration - Displays blank Main Menu; Edit defaults to Create ++ Logoff - Refresh ++ Logoff - Skip to Registeration page ---- @@ -155,20 +149,17 @@ Nominal + Cancel + Reset -- Submit (no data) (*) -+ Submit (invalid data) ++ Submit (no data) ++ Submit (invalid data) (*) + Submit (data) - Submit (duplicate data) (*) Double submit Issues (*) -* Submit -** Not parsing message variables: {0} in the range {1} -* Submit (duplidate data) -** Fails silently for duplicate user name -** Password Confirmation message not displayed * Submit (invalid data) ** When client-side validation is enabled, messages stack up on multiple invalid submits. Sever-side only OK. +* Submit (duplidate data) +** Fails silently for duplicate user name ---- Modified: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java?rev=389370&r1=389369&r2=389370&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java (original) +++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/MailreaderSupport.java Mon Mar 27 18:49:39 2006 @@ -318,7 +318,7 @@ user = null; } if (user == null) { - this.addFieldError("password", "error.password.mismatch"); + this.addFieldError("password", getText("error.password.mismatch")); } return user; } Modified: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration-validation.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration-validation.xml?rev=389370&r1=389369&r2=389370&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration-validation.xml (original) +++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration-validation.xml Mon Mar 27 18:49:39 2006 @@ -8,24 +8,6 @@ </field-validator> </field> - <field name="password"> - <field-validator type="requiredstring"> - <message key="error.password.required"/> - </field-validator> - <field-validator type="stringlength"> - <param name="trim">true</param> - <param name="minLength">4</param> - <param name="maxLength">10</param> - <message key="errors.range"/> - </field-validator> - </field> - - <field name="password2"> - <field-validator type="requiredstring"> - <message key="error.password2.required"/> - </field-validator> - </field> - <field name="user.fullName"> <field-validator type="requiredstring"> <message key="error.fullName.required"/> @@ -46,10 +28,5 @@ <message key="errors.email"/> </field-validator> </field> - - <validator type="expression"> - <param name="expression">password eq password2</param> - <message key="error.password.match"/> - </validator> </validators> Modified: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration.java URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration.java?rev=389370&r1=389369&r2=389370&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration.java (original) +++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Registration.java Mon Mar 27 18:49:39 2006 @@ -6,7 +6,7 @@ /** * <p>Insert or update a User object to the persistent store. </p> */ -public final class Registration extends MailreaderSupport { +public class Registration extends MailreaderSupport { /** * <p>Double check that there is not a valid User logon. </p> @@ -56,6 +56,21 @@ if (creating) { copyUser(getUsername(), getPassword()); + } + else { + // FIXME: Any way to call the RegisrationSave validators from here? + String pw = getPassword(); + if (pw!=null) { + String pw2 = getPassword2(); + boolean matches = ((null!=pw2) && (pw2.equals(pw))); + if (matches) { + getUser().setPassword(pw); + } + else { + addActionError(getText("error.password.match")); + return INPUT; + } + } } saveUser(); Added: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave-validation.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave-validation.xml?rev=389370&view=auto ============================================================================== --- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave-validation.xml (added) +++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave-validation.xml Mon Mar 27 18:49:39 2006 @@ -0,0 +1,28 @@ +<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> + +<validators> + + <field name="password"> + <field-validator type="requiredstring"> + <message key="error.password.required"/> + </field-validator> + <field-validator type="stringlength"> + <param name="trim">true</param> + <param name="minLength">4</param> + <param name="maxLength">10</param> + <message key="errors.range"/> + </field-validator> + </field> + + <field name="password2"> + <field-validator type="requiredstring"> + <message key="error.password2.required"/> + </field-validator> + </field> + + <validator type="expression"> + <param name="expression">password eq password2</param> + <message key="error.password.match"/> + </validator> + +</validators> Propchange: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave-validation.xml ------------------------------------------------------------------------------ svn:eol-style = native Added: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave.java URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave.java?rev=389370&view=auto ============================================================================== --- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave.java (added) +++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave.java Mon Mar 27 18:49:39 2006 @@ -0,0 +1,8 @@ +package mailreader2; + +/** + * <p>Stub class to allow extra validation on initial Save.</p> + */ +public final class RegistrationSave extends Registration { + +} Propchange: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/RegistrationSave.java ------------------------------------------------------------------------------ svn:eol-style = native Added: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription-validation.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription-validation.xml?rev=389370&view=auto ============================================================================== --- struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription-validation.xml (added) +++ struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription-validation.xml Mon Mar 27 18:49:39 2006 @@ -0,0 +1,11 @@ +<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd"> + +<validators> + + <field name="host"> + <field-validator type="requiredstring"> + <message key="error.host.required"/> + </field-validator> + </field> + +</validators> Propchange: struts/sandbox/trunk/action2/apps/mailreader/src/java/mailreader2/Subscription-validation.xml ------------------------------------------------------------------------------ svn:eol-style = native Modified: struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml?rev=389370&r1=389369&r2=389370&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml (original) +++ struts/sandbox/trunk/action2/apps/mailreader/src/java/xwork.xml Mon Mar 27 18:49:39 2006 @@ -19,7 +19,13 @@ </global-exception-mappings> - <action name="Welcome"> + <!-- + The reference to MailReaderSupport is only needed because + we use Welcome as a target for Cancel actions. + If the page doesn't have the appropriate input properties, + the framework logs an exception. + --> + <action name="Welcome" class="mailreader2.MailreaderSupport"> <result>/pages/Welcome.jsp</result> </action> @@ -37,12 +43,18 @@ <result>/pages/ChangePassword.jsp</result> </action> + <!-- See note for Welcome --> <action name="MainMenu" class="mailreader2.MailreaderSupport"> <result>/pages/MainMenu.jsp</result> <result name="input">/pages/MainMenu.jsp</result> </action> <action name="Registration" class="mailreader2.Registration"> + <result name="input">/pages/Registration.jsp</result> + <result type="redirect-action">MainMenu</result> + </action> + + <action name="RegistrationSave" class="mailreader2.RegistrationSave"> <result name="input">/pages/Registration.jsp</result> <result type="redirect-action">MainMenu</result> </action> Modified: struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Logon.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Logon.jsp?rev=389370&r1=389369&r2=389370&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Logon.jsp (original) +++ struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Logon.jsp Mon Mar 27 18:49:39 2006 @@ -9,13 +9,13 @@ type="text/css"/> </head> -<body> +<body onLoad="self.focus();document.Logon.username.focus()" > <saf:actionerror /> <saf:form method="POST" validate="true"> <saf:textfield label="%{getText('username')}" name="username"/> - <saf:textfield label="%{getText('password')}" name="password"/> + <saf:password label="%{getText('password')}" name="password"/> <saf:submit value="%{getText('button.save')}"/> Modified: struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp?rev=389370&r1=389369&r2=389370&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp (original) +++ struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Registration.jsp Mon Mar 27 18:49:39 2006 @@ -14,7 +14,7 @@ type="text/css"/> </head> -<body> +<body onLoad="self.focus();document.Registration.username.focus()" > <saf:actionerror /> <saf:form method="POST" validate="false"> @@ -27,9 +27,9 @@ <saf:hidden name="username"/> </saf:else> - <saf:textfield label="%{getText('password')}" name="password"/> + <saf:password label="%{getText('password')}" name="password"/> - <saf:textfield label="%{getText('password2')}" name="password2"/> + <saf:password label="%{getText('password2')}" name="password2"/> <saf:textfield label="%{getText('fullName')}" name="user.fullName"/> @@ -40,15 +40,19 @@ <saf:textfield label="%{getText('replyToAddress')}" name="user.replyToAddress"/> - <saf:submit value="%{getText('button.save')}"/> + <saf:if test="task == 'Create'"> + <saf:submit value="%{getText('button.save')}" action="RegistrationSave"/> - <saf:reset value="%{getText('button.reset')}"/> + <saf:reset value="%{getText('button.reset')}"/> - <saf:if test="task == 'Create'"> <saf:submit action="Welcome" value="%{getText('button.cancel')}" onclick="form.onsubmit=null"/> </saf:if> <saf:else> + <saf:submit value="%{getText('button.save')}" action="Registration"/> + + <saf:reset value="%{getText('button.reset')}"/> + <saf:submit action="MainMenu" value="%{getText('button.cancel')}" onclick="form.onsubmit=null"/> </saf:else> Modified: struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp?rev=389370&r1=389369&r2=389370&view=diff ============================================================================== --- struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp (original) +++ struts/sandbox/trunk/action2/apps/mailreader/src/webapp/pages/Subscription.jsp Mon Mar 27 18:49:39 2006 @@ -17,10 +17,10 @@ type="text/css"/> </head> -<body> +<body onLoad="self.focus();document.Subscription.username.focus()" > <saf:actionerror /> -<saf:form method="POST" action="SubscriptionSave" validate="true"> +<saf:form method="POST" action="SubscriptionSave" validate="false"> <saf:hidden name="task"/> <saf:label label="%{getText('username')}" name="user.username"/> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]