Author: buscob
Date: Sat Apr 17 16:10:24 2010 New Revision: 935197 URL: http://svn.apache.org/viewvc?rev=935197&view=rev Log: A slightly changed (tabs replaced with spaces) patch from Blas Rodriguez Somoza OFBIZ-3671 - XHTML validation errors (framework/widget) In xml (xhtml) ID must be unique https://issues.apache.org/jira/browse/OFBIZ-3671 In XML id is a special attribute which must be unique. * ModelFormField.java must have the method getCurrentContainerId which is already on ModelForm * MacroFormRendered and HtmlFormRenderer must be modified to use the getCurrentContainerID instead of getIdName * htmlFormMacroLibrary. span id must be different from the associated hidden field. Also: htmlFormMacroLibrary Line 73: readonly attribute without value. Lines 102.103: better formatted, more readable javascript call. Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=935197&r1=935196&r2=935197&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java Sat Apr 17 16:10:24 2010 @@ -371,7 +371,7 @@ public class MacroFormRenderer implement } String event = modelFormField.getEvent(); String action = modelFormField.getAction(context); - String id = modelFormField.getIdName(); + String id = modelFormField.getCurrentContainerId(context); String clientAutocomplete = "false"; List<ModelForm.UpdateArea> updateAreas = modelFormField.getOnChangeUpdateAreas(); @@ -432,7 +432,7 @@ public class MacroFormRenderer implement String name = modelFormField.getParameterName(context); String cols = Integer.toString(textareaField.getCols()); String rows = Integer.toString(textareaField.getRows()); - String id = modelFormField.getIdName(); + String id = modelFormField.getCurrentContainerId(context); String className = ""; String alert = "false"; if (UtilValidate.isNotEmpty(modelFormField.getWidgetStyle())) { @@ -537,7 +537,7 @@ public class MacroFormRenderer implement value = value.substring(0, maxlength); } } - String id = modelFormField.getIdName(); + String id = modelFormField.getCurrentContainerId(context); String formName = modelFormField.getModelForm().getCurrentFormName(context); String timeDropdown = dateTimeField.getInputMethod(); String timeDropdownParamName = ""; @@ -680,7 +680,7 @@ public class MacroFormRenderer implement String className = ""; String alert = "false"; String name = modelFormField.getParameterName(context); - String id = modelFormField.getIdName(); + String id = modelFormField.getCurrentContainerId(context); String multiple = dropDownField.isAllowMultiple()? "multiple": ""; String otherFieldName = ""; String formName = modelForm.getName(); @@ -1117,7 +1117,7 @@ public class MacroFormRenderer implement String name = modelFormField.getParameterName(context); String action = modelFormField.getAction(context); String event = modelFormField.getEvent(); - String id = modelFormField.getIdName(); + String id = modelFormField.getCurrentContainerId(context); StringWriter sr = new StringWriter(); sr.append("<@renderHiddenField "); @@ -1926,7 +1926,7 @@ public class MacroFormRenderer implement } String size = Integer.toString(lookupField.getSize()); Integer maxlength = lookupField.getMaxlength(); - String id = modelFormField.getIdName(); + String id = modelFormField.getCurrentContainerId(context); List<ModelForm.UpdateArea> updateAreas = modelFormField.getOnChangeUpdateAreas(); @@ -1938,7 +1938,7 @@ public class MacroFormRenderer implement } else { autoCompleterTarget = lookupFieldFormName + "&amp;"; } - autoCompleterTarget = autoCompleterTarget + "ajaxLookup=Y&searchValueField=" + lookupField.getModelFormField().getParameterName(context); + autoCompleterTarget = autoCompleterTarget + "ajaxLookup=Y&amp;searchValueField=" + lookupField.getModelFormField().getParameterName(context); updateAreas = FastList.newInstance(); updateAreas.add(new ModelForm.UpdateArea("change", id, autoCompleterTarget)); } @@ -2158,6 +2158,10 @@ public class MacroFormRenderer implement String prepLinkText = UtilHttp.getQueryStringFromTarget(targetService); String prepLinkSizeText; + if (UtilValidate.isNotEmpty(queryString)) { + queryString = UtilHttp.encodeAmpersands(queryString); + } + if (prepLinkText == null) { prepLinkText = ""; } @@ -2391,7 +2395,7 @@ public class MacroFormRenderer implement String name = modelFormField.getParameterName(context); String size = Integer.toString(passwordField.getSize()); String maxlength = ""; - String id = modelFormField.getIdName(); + String id = modelFormField.getCurrentContainerId(context); String autocomplete = ""; if (UtilValidate.isNotEmpty(modelFormField.getWidgetStyle())) { className = modelFormField.getWidgetStyle(); Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java?rev=935197&r1=935196&r2=935197&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java Sat Apr 17 16:10:24 2010 @@ -1103,6 +1103,19 @@ public class ModelFormField { } } + public String getCurrentContainerId(Map<String, Object> context) { + ModelForm modelForm = this.getModelForm(); + if (modelForm != null) { + Integer itemIndex = (Integer) context.get("itemIndex"); + if (modelForm != null && ("list".equals(modelForm.getType()) || "multi".equals(modelForm.getType() ))) { + if (itemIndex != null) { + return this.getIdName() + modelForm.getItemIndexSeparator() + itemIndex.intValue(); + } + } + } + return this.getIdName(); + } + public String getHeaderLink() { return headerLink; } Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java?rev=935197&r1=935196&r2=935197&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java Sat Apr 17 16:10:24 2010 @@ -161,14 +161,10 @@ public class HtmlFormRenderer extends Ht */ public void renderDisplayField(Appendable writer, Map<String, Object> context, DisplayField displayField) throws IOException { ModelFormField modelFormField = displayField.getModelFormField(); - ModelForm modelForm = modelFormField.getModelForm(); StringBuilder str = new StringBuilder(); - String idName = modelFormField.getIdName(); - if (UtilValidate.isNotEmpty(idName) && ("list".equals(modelForm.getType()) || "multi".equals(modelForm.getType()))) { - idName += "_" + modelForm.getRowCount(); - } + String idName = modelFormField.getCurrentContainerId(context); if (UtilValidate.isNotEmpty(modelFormField.getWidgetStyle()) || modelFormField.shouldBeRed(context)) { str.append("<span class=\""); @@ -180,7 +176,7 @@ public class HtmlFormRenderer extends Ht str.append('"'); if (UtilValidate.isNotEmpty(idName)) { str.append(" id=\""); - str.append(idName); + str.append(idName+"_sp"); str.append('"'); } str.append('>'); @@ -401,7 +397,7 @@ public class HtmlFormRenderer extends Ht writer.append('"'); } - String idName = modelFormField.getIdName(); + String idName = modelFormField.getCurrentContainerId(context); if (UtilValidate.isNotEmpty(idName)) { writer.append(" id=\""); writer.append(idName); @@ -465,7 +461,7 @@ public class HtmlFormRenderer extends Ht writer.append(Integer.toString(textareaField.getRows())); writer.append('"'); - String idName = modelFormField.getIdName(); + String idName = modelFormField.getCurrentContainerId(context); if (UtilValidate.isNotEmpty(idName)) { writer.append(" id=\""); writer.append(idName); @@ -584,7 +580,7 @@ public class HtmlFormRenderer extends Ht writer.append(Integer.toString(maxlength)); writer.append('"'); - String idName = modelFormField.getIdName(); + String idName = modelFormField.getCurrentContainerId(context); if (UtilValidate.isNotEmpty(idName)) { writer.append(" id=\""); writer.append(idName); @@ -742,7 +738,7 @@ public class HtmlFormRenderer extends Ht writer.append(" name=\""); writer.append(modelFormField.getParameterName(context)); - String idName = modelFormField.getIdName(); + String idName = modelFormField.getCurrentContainerId(context); if (ajaxEnabled) { writer.append("_description\""); @@ -1337,7 +1333,7 @@ public class HtmlFormRenderer extends Ht writer.append("\""); } - String containerId = modelForm.getContainerId(); + String containerId = modelForm.getCurrentContainerId(context); if (UtilValidate.isNotEmpty(containerId)) { writer.append(" id=\""); writer.append(containerId); @@ -2216,7 +2212,7 @@ public class HtmlFormRenderer extends Ht writer.append('"'); } - String idName = modelFormField.getIdName(); + String idName = modelFormField.getCurrentContainerId(context); if (UtilValidate.isNotEmpty(idName)) { writer.append(" id=\""); writer.append(idName); @@ -2665,7 +2661,7 @@ public class HtmlFormRenderer extends Ht writer.append('"'); } - String idName = modelFormField.getIdName(); + String idName = modelFormField.getCurrentContainerId(context); if (UtilValidate.isNotEmpty(idName)) { writer.append(" id=\""); writer.append(idName); Modified: ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=935197&r1=935196&r2=935197&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl (original) +++ ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl Sat Apr 17 16:10:24 2010 @@ -28,7 +28,7 @@ under the License. <img src="${imageLocation}"><#lt/> <#else> <#if inPlaceEditorUrl?has_content || class?has_content || alert=="true"> - <span <#if idName?has_content>id="${idName}"</#if> <@renderClass class alert />><#t/> + <span <#if idName?has_content>id="cc_${idName}"</#if> <@renderClass class alert />><#t/> </#if> <#if description?has_content> @@ -41,7 +41,7 @@ under the License. </#if> <#if inPlaceEditorUrl?has_content && idName?has_content> <script language="JavaScript" type="text/javascript"><#lt/> - ajaxInPlaceEditDisplayField('${idName}', '${inPlaceEditorUrl}', ${inPlaceEditorParams});<#lt/> + ajaxInPlaceEditDisplayField('cc_${idName}', '${inPlaceEditorUrl}', ${inPlaceEditorParams});<#lt/> </script><#lt/> </#if> </#if> @@ -70,7 +70,7 @@ under the License. <#if cols?has_content> cols="${cols}"</#if><#rt/> <#if rows?has_content> rows="${rows}"</#if><#rt/> <#if id?has_content> id="${id}"</#if><#rt/> - <#if readonly?has_content> ${readonly}</#if><#rt/> + <#if readonly?has_content && readonly=='readonly'> readonly="readonly"</#if><#rt/> <#if maxlength?has_content> maxlength="${maxlength}"</#if><#rt/> ><#t/> <#if value?has_content>${value}</#if><#t/> @@ -98,9 +98,9 @@ under the License. <#else> <a href="javascript:call_cal(document.<#rt/> </#if> - ${formName}. - <#if timeDropdownParamName?has_content>${timeDropdownParamName}</#if> - <#if defaultDateTimeString?has_content>,'${defaultDateTimeString}'</#if>);" + ${formName}.<#t/> + <#if timeDropdownParamName?has_content>${timeDropdownParamName}</#if><#t/> + <#if defaultDateTimeString?has_content>,'${defaultDateTimeString}'</#if>);"<#lt/> title="<#if localizedIconTitle?has_content>${localizedIconTitle}</#if>"><#rt/> </a><#rt/> </li> |
Free forum by Nabble | Edit this page |