Changelog
Sourceforge RSS Feed
This is the ztemplates changelog. Here I will keep you informed about the changes I am currently working on. It also contains the changelog for unreleased versions, so you can see what's coming next.
ztemplates-1.0.0 (not yet released)
- feature: added callback to operation instead of exec method. Avoids if else ladder in after() and conveniently keeps logic in the action and makes the form (ZOperation) dumb. Makes form object part of the view layer. Separates form logic from form data, so passive/active separation is finally clean. Means ZOperation has no longer exec method, as this would lead to active code in the form. See blueprints for the recommended application architecture.
- feature: Added support for standalone calls from outside http requests (like scheduler job)
- feature: Action parameters can be enums now
- feature: added ZSessionProperty: a property that stores its value in the session, so one can easily pass values from one Action to another in redirects.
- api: renamed ZIForm (formerly ZIFormElement) to ZIFormModel
- api: removed prefix from @ZCss and @ZJavaScript annotations to make it simpler
- performance: adding caching to the renderer
- to simplify form development removed the need to specify @ZExposeJson in forms (implementing ZIForm)
- renamed ZIFormElement to ZIFormModel
- added ZIServletService method
public void render(Object obj, String mimeType, String encoding) throws Exception
- published the form dependendency management framework into separate project: http://zdependency.wiki.sourceforge.net/
- api: separated form dependency management into its own project, so can be used on business-layer and form layer. Now supports multiple changes at once, like when a form is submitted and more than one value has changed. Also supports one change at a time, like in AJAX-call-on-input-field-change.
- feature: added dependency graph export to graphml, so one can see the dependency graph and the processing steps in tools like yEd
.
- api: simplified and completely separated form processing from the action framework
- api: added ZIFormService for form related methods
- api: finalizing the form processing api
- api: rewritten AJAX-Form package with jQuery which leads to less generated markup and better performance
- api: added ZIFormElement update() to allow validation and setReadable() etc. that spans multiple properties to be placed in the containing ZIFormElement.
- removed gzipping from ztemplates, do this in your webserver
- upgraded to velocity 1.6.2
- optimized script tag creation
- added 'merge' property to ZJavaScript annotation for scripts that should not be merged with others
- added 'standalone' property to ZJavaScript annotation for scripts that have no dependencies, so fewer merged js tags are created
- added ZObjectProperty for keeping form state in hidden field
- api: added ZIAjaxChangeListener to properties and removed the dependency declarations. This leads to code that is easier to understand because developers are used to listeners, and it fits most cases. Also it may lead to ajaxchangelisteners that can be executed on the client in javascript (like the stringValidators).
- api: removed support for parameter names with .(dot) as it's best to use forms for this. So either process the parameters in the action or in a form object.
- api: moved ZYuiLoaderAction to ztemplates-yui.jar so it's in the same place as the loaded resources
- api: moved ZFormScript to ztemplates-ui-form.jar in package org.ztemplates.web.ui.form.script
- api: added ZIFormElement interface to mark a form element (part of a form)
- made parametrizable and added getValue/setValue so it behaves much like a ZProperty that consists of other ZProperties
- merged with ZIFormElementWithState and ZIFormElementWithValue, so only one interface left, makes it simpler
- api: added ZFormUtil.setReadonly(form) that sets forms to readonly
- api: added ZOperation.getAllowedValue for setting the value of the Operation that is submitted to the client
- api: added ZIntRegexValidator
- added @ZHttpHeaders and @ZHttpHeader annotation on renderpojos to automatically set response headers when rendering response to http
- removed onRender callback for render-pojos, as render-pojos should be instantiated after all display data has been computed, so programmer should pass all needed data in constructor.
- feature: added client side javascript validation
- api: added client-side ZOperationValidator that checks operation can be executed (submit) only if theres no property error.
- api: added ZRegexValidator for regex client and server side validations
- api: added validators for ZProperty and ZOperation
- feature: ported build process to maven
- rewrite using jQuery, as its more inobtrusive, more freedom, faster
- added ZInputHidden
- feature: added client side javascript validation
- api: added @ZScript.property to specify runtime javascript dependencies. Used in ZFormScript implementation to include validator javascript.
- api: added parameter value to ZTEMPLATES.reloadState and ZTEMPLATES.forms.${formId}.reloadState
- api: added javascript function ZTEMPLATES.updateStyle to ZFormScript
- api: moved ZFormScript from ztemplates to ztemplates-ui-form in package org.ztemplates.web.ui.form.script
- api: added ZFormScript.setBeforeunloadMessage to alert for modified, unsubmitted forms
- optimized size of generated javascript
- because IE6 does not support chained css classes
had to change the css handling for error/required. Mainly had to change like this: .${cssId}-input.error to .${cssId}-input_error
- added ZFormTextArea with autoresize functionality
- extended ZFormInputState to display errors from multiple properties
- fixed incompatibility with new YUI 2.6.0 autocomplete datasources
- added call to ZTEMPLATES.updateStyle to tag input elements with corrresponding classes
- renamed ZInputState to ZFormInputState
- renamed ZTextInput to ZFormText
- renamed ZAutocomplete to ZFormAutocomplete
- renamed ZDivHiderScript to ZFormDivHiderScript
- bugfix: added dependency to animation.js to ZInputText
- added setCssId to all form ui components