| At line 1 changed 1 line. | 
| __Take part in a Struts Resume__ [Architecture Discussion|StrutsResumeArchitecture]. | 
| __What is Struts Resume?__\\ | 
| Struts Resume is being developed for two purposes: (1) so I can edit and publish my resume online and (2) to demonstrate developing a real-world app with [AppFuse]. Feel free to checkout the [online demo|http://demo.raibledesigns.com/struts-resume] | 
| At line 3 changed 1 line. | 
| !!__2003.10.30__ - Thank you for struts-resume | 
| <span style="color: green">__For common questions and howto's, see the [Struts Resume Support|StrutsResumeSupport] page.__</span> | 
| At line 5 changed 1 line. | 
| Hi Matt, | 
| !!__2004.04.05__ - Struts Resume 0.9 Released! | 
| At line 7 changed 1 line. | 
| Kudos on your excellent work on appfuse and struts-resume. Since, I've been using appfuse and struts-resume to gather a basic understanding of struts and "helper" technologies, its time to give back a little. | 
| This release is a major improvement over the last one.  Not only did I upgrade all the code to use AppFuse 1.4 ([release notes|http://tinyurl.com/27z2k]), but I also removed Struts from the services layer.  Moreover, you can actually enter almost all of the pieces of a resume and render it in HTML and Word format.  The resume-entry piece (and sections you can enter) is largely based on what Monster.com uses.  I may add other sections in the future (i.e. awards and publications). | 
| At line 9 changed 1 line. | 
| I ran into the same problem as yourself, as per [your email|http://www.mail-archive.com/[email protected]/msg60169.html]. So, I followed the email thread and wasn't quite happy with the JavaScript solution. So, I conjured a non-JavaScript solution which is posted below. Be aware that my struts understanding is fairly rudimentary and this might be a classic example of too much blending of V into the C from the MVC model. | 
| The main reason this is not a 1.0 release is because an administrator is the only one who can edit the HTML template - and the Word/RTF template is not editable online.  Allowing a user to override the default template(s) will be the primary goal in 1.0. | 
| At line 11 changed 8 lines. | 
| ---- | 
| This is part of action.BaseForm | 
| ---- | 
| {{{ | 
| public ActionErrors validate(ActionMapping mapping, | 
| HttpServletRequest request) { | 
| // Identify the request parameter containing the method name | 
| String parameter = mapping.getParameter(); | 
| Here's a specific rundown of all the changes from the changelog: | 
| At line 20 changed 21 lines. | 
| if( parameter != null ) { | 
| // Identify the method name to be dispatched to. | 
| String name = request.getParameter(parameter); | 
| MessageResources resources = | 
| (MessageResources) request.getAttribute(Globals.MESSAGES_KEY); | 
| // Identify the localized message for the cancel button | 
| String message = resources.getMessage("button.cancel"); | 
| // if message resource matches the cancel button then no | 
| // need to validate | 
| if( name != null && name.equals(message) ) { | 
| if( log.isDebugEnabled() ) { | 
| log.debug(mapping.getAttribute() + " '" + name + | 
| "' method, so no need to validate"); | 
| return null; | 
| } | 
| } | 
| } | 
| // perform regular validation | 
| return super.validate(mapping, request); | 
| } | 
| }}} | 
| * Upgraded to AppFuse 1.4 - Includes Spring and all kinds of other goodies. | 
| ** [AppFuse 1.4 Release Notes|http://tinyurl.com/27z2k] | 
| * Added Resume Creation/Editing Wizard. | 
| * Added ability to edit HTML Template online (Admins only). | 
| * UI Updates: | 
| ** Background borrowed from [alistapart.com|http://www.alistapart.com]. (Thanks!) | 
| ** Changed from ListMenu to TabbedMenu. | 
| ** Changed to fixed-width layout (700px). | 
| ** Added CSS drop shadows to headers. | 
| *** Idea from [http://phoenity.com/newtedge/drop_shadow/] | 
| *** Hack to fix Safari in web/layouts/baseLayout.jsp | 
| * The Tomcat User's resume can be on the demo server at [http://demo.raibledesigns.com/struts-resume/tomcat.html]. | 
| At line 42 changed 1 line. | 
| What do you think of this approach? | 
| ---- | 
| * [Online Demo|http://demo.raibledesigns.com/struts-resume] | 
| * [Download|http://sourceforge.net/project/showfiles.php?group_id=49385&package_id=75509&release_id=228759] (~10.5 MB for src, ~5.4 MB for bin) | 
| * [API Documentation and Source|http://static.raibledesigns.com/downloads/struts-resume/api/] | 
| * [Mailing List|https://appfuse.dev.java.net/servlets/SummarizeList?listName=users] | 
| At line 44 removed 28 lines. | 
| Regards,\\ | 
| --\\ | 
| Haroon Rafique [email protected] (reverse the domain to send email) | 
|  | 
|  | 
| !!__2003.10.10__ - Problem compiling in 0.8 | 
|  | 
| I'm trying to compile struts-resume, which I just downloaded to have a sample app dealing with Velocity, but i'm obviously missing org.appfuse.webapp.form.UserForm and UserRoleForm. I manage to find UserForm in security-example1.1.zip but not UserRoleForm. | 
| Is it a mistake or not in your app dist?\\ | 
| Jean | 
|  | 
| *''You have to use Ant to compile struts-resume.  The *Form classes are generated by [XDoclet|http://www.xdoclet.com].  [MattRaible]'' | 
|  | 
| !!__2003.09.15__ - Small bug discovered in 0.8 | 
|  | 
| The global.js javascript file is missing the following method.  I've updated the files in 0.8 to fix this bug.  Without this method, when a user changes their password, it's not encrypted, and they can't login again. | 
|  | 
| {{{ | 
| function createFormElement(element, type, name, id, value, parent) { | 
| var e = document.createElement(element); | 
| e.setAttribute("name", name); | 
| e.setAttribute("type", type); | 
| e.setAttribute("id", id); | 
| e.setAttribute("value", value); | 
| parent.appendChild(e); | 
| } | 
| }}} | 
|  |