[ https://issues.apache.org/jira/browse/OFBIZ-1235?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12683791#action_12683791 ]
Jacopo Cappellato commented on OFBIZ-1235: ------------------------------------------ Ok, I have committed the work with rev. 756369 This is exactly the patch attached to this task, except for the changes to the common-controller.xml that I have not committed to leave everything disabled for now. Guo, please feel free to send me often you patches, I will be more than happy to review and commit them... don't wait to complete all the work before sending it... it will be easier for everyone to work in little steps. As regards your question about keeping ajax macros separated from html ones... I don't know... I think that we should have one macro library for html (where Ajax calls are disabled if the browser doesn't support Javascript) but maybe, at least initially, keeping them separate will be easier... what other think about this? Jacopo > Create the theme for the form widget > ------------------------------------ > > Key: OFBIZ-1235 > URL: https://issues.apache.org/jira/browse/OFBIZ-1235 > Project: OFBiz > Issue Type: New Feature > Components: framework > Affects Versions: SVN trunk > Environment: all the platform > Reporter: WeizhanGuo > Fix For: SVN trunk > > Attachments: ftlMacroRenderer.patch > > > We are creating the "theme" for the ofbiz widget form, why we create this? We > found it's very difficultty to extend the current form widget, all the widget > generation code is hard code in HtmlFormRenderer or others, we need to change > those file if we want to add some function to the form, like ajax. > > And yes, we have some ajax function in ofbiz now, but the code of > HtmlFormRenderer with ajax is much harder for understanding. like the code: > "if(ajaxEnabled)". In fact , we want to implement the dojo function in ofbiz > without mess. > > So we decide to extract the hard code is responsible for the html form > generation to the ftl files, like the struts2 does. If you know well about > struts2, then you will also know the form theme we are creating. > > Those ftl files is responsible for the html code generation, like text.ftl: > <input type="text"<#rt/> > name="${rp.name?default("")?html}"<#rt/> > <#include "class.ftl" /> > <#if rp.value?exists> > <#escape x as x?html> value="${rp.value}" </#escape> <#rt/> > </#if> > <#if rp.textSize?exists> > size="${rp.textSize?html}"<#rt/> > </#if> > <#if rp.maxlength?exists> > maxlength="${rp.maxlength?html}"<#rt/> > </#if> > <#if rp.textId?exists> > id="${rp.textId?html}"<#rt/> > </#if> > <#if rp.event?exists && rp.action?exists> > ${rp.event?html}="${rp.action?html}"<#rt/> > </#if> > <#if rp.clientAutocomplete?exists && !rp.clientAutocomplete> > autocomplete="off"<#rt/> > </#if> > /> > Then, in the renderTextField method, we use the ftl file to generate the html > text instand of the hard code. > > Finally,we can have different themes like simple/text.ftl ajax/text.ftl and > dojo/text.ftl. By setting the theme with code "theme=simple/ajax/dojo " , the > corresponding theme file like text.ftl will be loaded. The attachment is the > dojo theme capture. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.