I merged the code at the moment I was compiling, I think this is why this bug occured to me. It seems to be working perfectly well now. Sorry, false alarm.
On Mon, Feb 26, 2018 at 5:06 PM, gil portenseigne <gil.portensei...@nereide.fr> wrote: > Ah, are you sure to have recompiled Java ? I cannot reproduce locally.. > > Gil > > > > On 26/02/2018 15:00, gil portenseigne wrote: >> >> Hello Taher, >> >> Oww, i might have missed something :( , i'll look at it very soon ! >> >> Gil >> >> >> On 26/02/2018 14:52, Taher Alkhateeb wrote: >>> >>> Hi Gil, >>> >>> Great work so far. However, I seem to be facing a bug. I list the >>> error below that shows in almost every form: >>> >>> When calling macro "renderHiddenField", required parameter >>> "conditionGroup" (parameter #2) was not specified. ---- Tip: If the >>> omission was deliberate, you may consider making the parameter >>> optional in the macro by specifying a default value for it, like >>> <#macro macroName paramName=defaultExpr>) ---- ---- FTL stack trace >>> ("~" means nesting-related): - Failed at: #macro renderHiddenField >>> name conditi... [in template >>> "component://common-theme/template/macro/HtmlFormMacroLibrary.ftl" in >>> macro "renderHiddenField" at line 305, column 1] - Reached through: >>> @renderHiddenField name="realestateCi... [in template >>> "-222c6da2:161d256a91a:-7356" at line 1, column 1] >>> >>> On Mon, Feb 26, 2018 at 12:57 PM, <p...@apache.org> wrote: >>>> >>>> Author: pgil >>>> Date: Mon Feb 26 09:57:36 2018 >>>> New Revision: 1825350 >>>> >>>> URL: http://svn.apache.org/viewvc?rev=1825350&view=rev >>>> Log: >>>> Implemented: Add the ability in performFind service to set OR search >>>> criteria (OFBIZ-10195) >>>> >>>> This improvement add a way to specify a condition-group attribute on >>>> search fields, for performFind service usage. >>>> The same group conditions are gathered with AND operator, and each group >>>> is added with a OR >>>> The resulting condition is added to the other with AND operator. >>>> Thanks Taher for your reviews and ideas >>>> >>>> Modified: >>>> >>>> ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/FindServices.java >>>> ofbiz/ofbiz-framework/trunk/framework/widget/dtd/widget-form.xsd >>>> >>>> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormField.java >>>> >>>> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java >>>> >>>> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java >>>> >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/CsvFormMacroLibrary.ftl >>>> >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/FoFormMacroLibrary.ftl >>>> >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl >>>> >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/TextFormMacroLibrary.ftl >>>> >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/XlsFormMacroLibrary.ftl >>>> >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/XmlFormMacroLibrary.ftl >>>> >>>> Modified: >>>> ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/FindServices.java >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/FindServices.java?rev=1825350&r1=1825349&r2=1825350&view=diff >>>> >>>> ============================================================================== >>>> --- >>>> ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/FindServices.java >>>> (original) >>>> +++ >>>> ofbiz/ofbiz-framework/trunk/framework/common/src/main/java/org/apache/ofbiz/common/FindServices.java >>>> Mon Feb 26 09:57:36 2018 >>>> @@ -218,11 +218,19 @@ public class FindServices { >>>> Set<String> processed = new LinkedHashSet<>(); >>>> Set<String> keys = new LinkedHashSet<>(); >>>> Map<String, ModelField> fieldMap = new LinkedHashMap<>(); >>>> + /** >>>> + * When inputFields contains several xxxx_grp, yyyy_grp ... >>>> values, >>>> + * Corresponding conditions will grouped by an {@link >>>> EntityOperator.AND} then all added to final >>>> + * condition grouped by an {@link EntityOperator.OR} >>>> + * That will allow union of search criteria, instead of default >>>> intersection. >>>> + */ >>>> + Map<String, List<EntityCondition>> savedGroups = new >>>> LinkedHashMap(); >>>> for (ModelField modelField : fieldList) { >>>> fieldMap.put(modelField.getName(), modelField); >>>> } >>>> List<EntityCondition> result = new LinkedList<>(); >>>> for (Map.Entry<String, ? extends Object> entry : >>>> parameters.entrySet()) { >>>> + String currentGroup = null; >>>> String parameterName = entry.getKey(); >>>> if (processed.contains(parameterName)) { >>>> continue; >>>> @@ -237,7 +245,15 @@ public class FindServices { >>>> } else if (parameterName.endsWith("_value")) { >>>> fieldName = parameterName.substring(0, >>>> parameterName.length() - 6); >>>> } >>>> - String key = fieldName.concat("_ic"); >>>> + >>>> + String key = fieldName.concat("_grp"); >>>> + if (parameters.containsKey(key)) { >>>> + if (parameters.containsKey(key)) { >>>> + keys.add(key); >>>> + } >>>> + currentGroup = (String) parameters.get(key); >>>> + } >>>> + key = fieldName.concat("_ic"); >>>> if (parameters.containsKey(key)) { >>>> keys.add(key); >>>> ignoreCase = "Y".equals(parameters.get(key)); >>>> @@ -272,11 +288,28 @@ public class FindServices { >>>> if (ObjectType.isEmpty(fieldValue) && >>>> !"empty".equals(operation)) { >>>> continue; >>>> } >>>> - result.add(createSingleCondition(modelField, operation, >>>> fieldValue, ignoreCase, delegator, context)); >>>> + if (UtilValidate.isNotEmpty(currentGroup)){ >>>> + List<EntityCondition> groupedConditions = new >>>> LinkedList<>(); >>>> + if(savedGroups.get(currentGroup) != null) { >>>> + groupedConditions.addAll(savedGroups.get(currentGroup)); >>>> + } >>>> + groupedConditions.add(createSingleCondition(modelField, operation, >>>> fieldValue, ignoreCase, delegator, context)); >>>> + savedGroups.put(currentGroup, groupedConditions); >>>> + } else { >>>> + result.add(createSingleCondition(modelField, operation, >>>> fieldValue, ignoreCase, delegator, context)); >>>> + } >>>> + >>>> for (String mapKey : keys) { >>>> queryStringMap.put(mapKey, parameters.get(mapKey)); >>>> } >>>> } >>>> + //Add OR-grouped conditions >>>> + List<EntityCondition> orConditions = new LinkedList<>(); >>>> + for (String groupedConditions : savedGroups.keySet()) { >>>> + >>>> orConditions.add(EntityCondition.makeCondition(savedGroups.get(groupedConditions))); >>>> + } >>>> + if (orConditions.size() > 0) >>>> result.add(EntityCondition.makeCondition(orConditions, EntityOperator.OR)); >>>> + >>>> return result; >>>> } >>>> >>>> >>>> Modified: >>>> ofbiz/ofbiz-framework/trunk/framework/widget/dtd/widget-form.xsd >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/widget/dtd/widget-form.xsd?rev=1825350&r1=1825349&r2=1825350&view=diff >>>> >>>> ============================================================================== >>>> --- ofbiz/ofbiz-framework/trunk/framework/widget/dtd/widget-form.xsd >>>> (original) >>>> +++ ofbiz/ofbiz-framework/trunk/framework/widget/dtd/widget-form.xsd Mon >>>> Feb 26 09:57:36 2018 >>>> @@ -925,6 +925,16 @@ under the License. >>>> </xs:documentation> >>>> </xs:annotation> >>>> </xs:attribute> >>>> + <xs:attribute type="xs:string" name="condition-group"> >>>> + <xs:annotation> >>>> + <xs:documentation> >>>> + The condition-group regroup search criterias >>>> together. >>>> + Each group member will be gathered with AND >>>> operator >>>> + Every defined groups will be joined each other >>>> with OR operator >>>> + Any ungrouped condition will be added with AND >>>> operator >>>> + </xs:documentation> >>>> + </xs:annotation> >>>> + </xs:attribute> >>>> </xs:complexType> >>>> </xs:element> >>>> >>>> >>>> Modified: >>>> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormField.java >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormField.java?rev=1825350&r1=1825349&r2=1825350&view=diff >>>> >>>> ============================================================================== >>>> --- >>>> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormField.java >>>> (original) >>>> +++ >>>> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormField.java >>>> Mon Feb 26 09:57:36 2018 >>>> @@ -144,6 +144,7 @@ public class ModelFormField { >>>> private final String widgetStyle; >>>> private final String parentFormName; >>>> private final String tabindex; >>>> + private final String conditionGroup; >>>> >>>> private ModelFormField(ModelFormFieldBuilder builder) { >>>> this.action = builder.getAction(); >>>> @@ -197,6 +198,7 @@ public class ModelFormField { >>>> this.widgetStyle = builder.getWidgetStyle(); >>>> this.parentFormName = builder.getParentFormName(); >>>> this.tabindex = builder.getTabindex(); >>>> + this.conditionGroup = builder.getConditionGroup(); >>>> } >>>> >>>> public FlexibleStringExpander getAction() { >>>> @@ -448,6 +450,10 @@ public class ModelFormField { >>>> return tabindex; >>>> } >>>> >>>> + public String getConditionGroup() { >>>> + return conditionGroup; >>>> + } >>>> + >>>> public Map<String, ? extends Object> getMap(Map<String, ? extends >>>> Object> context) { >>>> if (UtilValidate.isEmpty(this.mapAcsr)) { >>>> return this.modelForm.getDefaultMap(context); >>>> >>>> Modified: >>>> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java?rev=1825350&r1=1825349&r2=1825350&view=diff >>>> >>>> ============================================================================== >>>> --- >>>> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java >>>> (original) >>>> +++ >>>> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java >>>> Mon Feb 26 09:57:36 2018 >>>> @@ -111,6 +111,7 @@ public class ModelFormFieldBuilder { >>>> private String widgetStyle = ""; >>>> private String parentFormName = ""; >>>> private String tabindex = ""; >>>> + private String conditionGroup = ""; >>>> >>>> public ModelFormFieldBuilder() { >>>> } >>>> @@ -162,6 +163,7 @@ public class ModelFormFieldBuilder { >>>> this.widgetStyle = fieldElement.getAttribute("widget-style"); >>>> this.parentFormName = fieldElement.getAttribute("form-name"); >>>> this.tabindex = fieldElement.getAttribute("tabindex"); >>>> + this.conditionGroup = >>>> fieldElement.getAttribute("condition-group"); >>>> Element childElement = null; >>>> List<? extends Element> subElements = >>>> UtilXml.childElementList(fieldElement); >>>> for (Element subElement : subElements) { >>>> @@ -277,6 +279,7 @@ public class ModelFormFieldBuilder { >>>> this.widgetStyle = modelFormField.getWidgetStyle(); >>>> this.parentFormName = modelFormField.getParentFormName(); >>>> this.tabindex = modelFormField.getTabindex(); >>>> + this.conditionGroup = modelFormField.getConditionGroup(); >>>> } >>>> >>>> public ModelFormFieldBuilder(ModelFormFieldBuilder builder) { >>>> @@ -318,6 +321,7 @@ public class ModelFormFieldBuilder { >>>> this.widgetStyle = builder.getWidgetStyle(); >>>> this.parentFormName = builder.getParentFormName(); >>>> this.tabindex = builder.getTabindex(); >>>> + this.conditionGroup = builder.getConditionGroup(); >>>> } >>>> >>>> public ModelFormFieldBuilder addOnChangeUpdateArea(UpdateArea >>>> onChangeUpdateArea) { >>>> @@ -494,6 +498,10 @@ public class ModelFormFieldBuilder { >>>> return tabindex; >>>> } >>>> >>>> + public String getConditionGroup() { >>>> + return conditionGroup; >>>> + } >>>> + >>>> private boolean induceFieldInfo(ModelForm modelForm, String >>>> defaultFieldType, ModelReader entityModelReader, DispatchContext >>>> dispatchContext) { >>>> if (induceFieldInfoFromEntityField(defaultFieldType, >>>> entityModelReader)) { >>>> return true; >>>> @@ -810,6 +818,9 @@ public class ModelFormFieldBuilder { >>>> if (UtilValidate.isNotEmpty(builder.getTabindex())) { >>>> this.tabindex = builder.getTabindex(); >>>> } >>>> + if (UtilValidate.isNotEmpty(builder.getConditionGroup())) { >>>> + this.conditionGroup = builder.getConditionGroup(); >>>> + } >>>> this.encodeOutput = builder.getEncodeOutput(); >>>> this.position = builder.getPosition(); >>>> this.requiredField = builder.getRequiredField(); >>>> @@ -1000,4 +1011,8 @@ public class ModelFormFieldBuilder { >>>> this.tabindex = tabindex; >>>> return this; >>>> } >>>> + public ModelFormFieldBuilder setConditionGroup(String >>>> conditionGroup) { >>>> + this.conditionGroup = conditionGroup; >>>> + return this; >>>> + } >>>> } >>>> >>>> Modified: >>>> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java?rev=1825350&r1=1825349&r2=1825350&view=diff >>>> >>>> ============================================================================== >>>> --- >>>> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java >>>> (original) >>>> +++ >>>> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java >>>> Mon Feb 26 09:57:36 2018 >>>> @@ -774,6 +774,7 @@ public final class MacroFormRenderer imp >>>> ModelFormField modelFormField = >>>> dropDownField.getModelFormField(); >>>> ModelForm modelForm = modelFormField.getModelForm(); >>>> String currentValue = modelFormField.getEntry(context); >>>> + String conditionGroup = modelFormField.getConditionGroup(); >>>> List<ModelFormField.OptionValue> allOptionValues = >>>> dropDownField.getAllOptionValues(context, >>>> WidgetWorker.getDelegator(context)); >>>> ModelFormField.AutoComplete autoComplete = >>>> dropDownField.getAutoComplete(); >>>> String event = modelFormField.getEvent(); >>>> @@ -1000,6 +1001,8 @@ public final class MacroFormRenderer imp >>>> sr.append(ignoreCase); >>>> sr.append("\" fullSearch=\""); >>>> sr.append(fullSearch); >>>> + sr.append("\" conditionGroup=\""); >>>> + sr.append(conditionGroup); >>>> sr.append("\" tabindex=\""); >>>> sr.append(tabindex); >>>> sr.append("\" />"); >>>> @@ -1014,6 +1017,7 @@ public final class MacroFormRenderer imp >>>> public void renderCheckField(Appendable writer, Map<String, >>>> Object> context, CheckField checkField) throws IOException { >>>> ModelFormField modelFormField = >>>> checkField.getModelFormField(); >>>> String currentValue = modelFormField.getEntry(context); >>>> + String conditionGroup = modelFormField.getConditionGroup(); >>>> Boolean allChecked = checkField.isAllChecked(context); >>>> String id = modelFormField.getCurrentContainerId(context); >>>> String className = ""; >>>> @@ -1051,6 +1055,8 @@ public final class MacroFormRenderer imp >>>> sr.append(alert); >>>> sr.append("\" id=\""); >>>> sr.append(id); >>>> + sr.append("\" conditionGroup=\""); >>>> + sr.append(conditionGroup); >>>> sr.append("\" allChecked="); >>>> sr.append((allChecked != null ? Boolean.toString(allChecked) : >>>> "\"\"")); >>>> sr.append(" currentValue=\""); >>>> @@ -1076,6 +1082,7 @@ public final class MacroFormRenderer imp >>>> ModelFormField modelFormField = >>>> radioField.getModelFormField(); >>>> List<ModelFormField.OptionValue> allOptionValues = >>>> radioField.getAllOptionValues(context, WidgetWorker.getDelegator(context)); >>>> String currentValue = modelFormField.getEntry(context); >>>> + String conditionGroup = modelFormField.getConditionGroup(); >>>> String className = ""; >>>> String alert = "false"; >>>> String name = modelFormField.getParameterName(context); >>>> @@ -1123,6 +1130,8 @@ public final class MacroFormRenderer imp >>>> if (action != null) { >>>> sr.append(action); >>>> } >>>> + sr.append("\" conditionGroup=\""); >>>> + sr.append(conditionGroup); >>>> sr.append("\" tabindex=\""); >>>> sr.append(tabindex); >>>> sr.append("\" />"); >>>> @@ -1243,12 +1252,15 @@ public final class MacroFormRenderer imp >>>> public void renderHiddenField(Appendable writer, Map<String, >>>> Object> context, ModelFormField modelFormField, String value) throws >>>> IOException { >>>> String name = modelFormField.getParameterName(context); >>>> String action = modelFormField.getAction(context); >>>> + String conditionGroup = modelFormField.getConditionGroup(); >>>> String event = modelFormField.getEvent(); >>>> String id = modelFormField.getCurrentContainerId(context); >>>> StringWriter sr = new StringWriter(); >>>> sr.append("<@renderHiddenField "); >>>> sr.append(" name=\""); >>>> sr.append(name); >>>> + sr.append("\" conditionGroup=\""); >>>> + sr.append(conditionGroup); >>>> sr.append("\" value=\""); >>>> sr.append(value); >>>> sr.append("\" id=\""); >>>> @@ -1788,6 +1800,7 @@ public final class MacroFormRenderer imp >>>> public void renderTextFindField(Appendable writer, Map<String, >>>> Object> context, TextFindField textFindField) throws IOException { >>>> ModelFormField modelFormField = >>>> textFindField.getModelFormField(); >>>> String defaultOption = >>>> textFindField.getDefaultOption(context); >>>> + String conditionGroup = modelFormField.getConditionGroup(); >>>> String className = ""; >>>> String alert = "false"; >>>> String opEquals = ""; >>>> @@ -1869,6 +1882,8 @@ public final class MacroFormRenderer imp >>>> sr.append(ignoreCase); >>>> sr.append("\" tabindex=\""); >>>> sr.append(tabindex); >>>> + sr.append("\" conditionGroup=\""); >>>> + sr.append(conditionGroup); >>>> sr.append("\" />"); >>>> executeMacro(writer, sr.toString()); >>>> this.appendTooltip(writer, context, modelFormField); >>>> @@ -1882,6 +1897,7 @@ public final class MacroFormRenderer imp >>>> String opGreaterThanEquals = >>>> UtilProperties.getMessage("conditionalUiLabels", "greater_than_equals", >>>> locale); >>>> String opLessThan = >>>> UtilProperties.getMessage("conditionalUiLabels", "less_than", locale); >>>> String opLessThanEquals = >>>> UtilProperties.getMessage("conditionalUiLabels", "less_than_equals", >>>> locale); >>>> + String conditionGroup = modelFormField.getConditionGroup(); >>>> String className = ""; >>>> String alert = "false"; >>>> if (UtilValidate.isNotEmpty(modelFormField.getWidgetStyle())) >>>> { >>>> @@ -1950,6 +1966,8 @@ public final class MacroFormRenderer imp >>>> sr.append(value2); >>>> sr.append("\" defaultOptionThru=\""); >>>> sr.append(defaultOptionThru); >>>> + sr.append("\" conditionGroup=\""); >>>> + sr.append(conditionGroup); >>>> sr.append("\" tabindex=\""); >>>> sr.append(tabindex); >>>> sr.append("\" />"); >>>> @@ -1968,6 +1986,7 @@ public final class MacroFormRenderer imp >>>> String opUpToDay = >>>> UtilProperties.getMessage("conditionalUiLabels", "up_to_day", locale); >>>> String opUpThruDay = >>>> UtilProperties.getMessage("conditionalUiLabels", "up_thru_day", locale); >>>> String opIsEmpty = >>>> UtilProperties.getMessage("conditionalUiLabels", "is_empty", locale); >>>> + String conditionGroup = modelFormField.getConditionGroup(); >>>> Map<String, String> uiLabelMap = >>>> UtilGenerics.checkMap(context.get("uiLabelMap")); >>>> if (uiLabelMap == null) { >>>> Debug.logWarning("Could not find uiLabelMap in context", >>>> module); >>>> @@ -2066,6 +2085,8 @@ public final class MacroFormRenderer imp >>>> sr.append(defaultDateTimeString); >>>> sr.append("\" imgSrc=\""); >>>> sr.append(imgSrc.toString()); >>>> + sr.append("\" conditionGroup=\""); >>>> + sr.append(conditionGroup); >>>> sr.append("\" localizedIconTitle=\""); >>>> sr.append(localizedIconTitle); >>>> sr.append("\" titleStyle=\""); >>>> @@ -2102,6 +2123,7 @@ public final class MacroFormRenderer imp >>>> public void renderLookupField(Appendable writer, Map<String, >>>> Object> context, LookupField lookupField) throws IOException { >>>> ModelFormField modelFormField = >>>> lookupField.getModelFormField(); >>>> String lookupFieldFormName = lookupField.getFormName(context); >>>> + String conditionGroup = modelFormField.getConditionGroup(); >>>> String className = ""; >>>> String alert = "false"; >>>> if (UtilValidate.isNotEmpty(modelFormField.getWidgetStyle())) >>>> { >>>> @@ -2275,6 +2297,8 @@ public final class MacroFormRenderer imp >>>> sr.append(Boolean.toString(isInitiallyCollapsed)); >>>> sr.append("\" lastViewName=\""); >>>> sr.append(lastViewName); >>>> + sr.append("\" conditionGroup=\""); >>>> + sr.append(conditionGroup); >>>> sr.append("\" tabindex=\""); >>>> sr.append(tabindex); >>>> sr.append("\" delegatorName=\""); >>>> >>>> Modified: >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/CsvFormMacroLibrary.ftl >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/CsvFormMacroLibrary.ftl?rev=1825350&r1=1825349&r2=1825350&view=diff >>>> >>>> ============================================================================== >>>> --- >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/CsvFormMacroLibrary.ftl >>>> (original) >>>> +++ >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/CsvFormMacroLibrary.ftl >>>> Mon Feb 26 09:57:36 2018 >>>> @@ -30,7 +30,7 @@ under the License. >>>> >>>> <#macro renderDateTimeField name className alert title value size >>>> maxlength id dateType shortDateInput timeDropdownParamName >>>> defaultDateTimeString localizedIconTitle timeDropdown timeHourName >>>> classString hour1 hour2 timeMinutesName minutes isTwelveHour ampmName >>>> amSelected pmSelected compositeType formName mask="" event="" action="" >>>> step="" timeValues="" tabindex="" ><@renderField value /></#macro> >>>> >>>> -<#macro renderDropDownField name className alert id multiple formName >>>> otherFieldName event action size firstInList currentValue >>>> explicitDescription allowEmpty options fieldName otherFieldName otherValue >>>> otherFieldSize dDFCurrent ajaxEnabled noCurrentSelectedKey ajaxOptions >>>> frequency minChars choices autoSelect partialSearch partialChars ignoreCase >>>> fullSearch tabindex> >>>> +<#macro renderDropDownField name className alert id multiple formName >>>> otherFieldName event action size firstInList currentValue >>>> explicitDescription allowEmpty options fieldName otherFieldName otherValue >>>> otherFieldSize dDFCurrent ajaxEnabled noCurrentSelectedKey ajaxOptions >>>> frequency minChars choices autoSelect partialSearch partialChars ignoreCase >>>> fullSearch conditionGroup tabindex> >>>> <#if currentValue?has_content && firstInList?has_content> >>>> <@renderField explicitDescription /> >>>> <#else> >>>> @@ -41,13 +41,13 @@ under the License. >>>> </#macro> >>>> >>>> <#macro renderTooltip tooltip tooltipStyle></#macro> >>>> -<#macro renderCheckField items className alert id allChecked >>>> currentValue name event action tabindex></#macro> >>>> -<#macro renderRadioField items className alert currentValue >>>> noCurrentSelectedKey name event action tabindex></#macro> >>>> +<#macro renderCheckField items className alert id allChecked >>>> currentValue name event action conditionGroup tabindex></#macro> >>>> +<#macro renderRadioField items className alert currentValue >>>> noCurrentSelectedKey name event action conditionGroup tabindex></#macro> >>>> >>>> <#macro renderSubmitField buttonType className alert formName title >>>> name event action imgSrc confirmation containerId ajaxUrl >>>> tabindex></#macro> >>>> <#macro renderResetField className alert name title></#macro> >>>> >>>> -<#macro renderHiddenField name value id event action></#macro> >>>> +<#macro renderHiddenField name conditionGroup value id event >>>> action></#macro> >>>> <#macro renderIgnoredField></#macro> >>>> >>>> <#macro renderFieldTitle style title id="" fieldHelpText="" >>>> for=""><@renderField title />,</#macro> >>>> @@ -97,15 +97,15 @@ under the License. >>>> >>>> <#macro renderFormatEmptySpace> </#macro> >>>> >>>> -<#macro renderTextFindField name value defaultOption opEquals >>>> opBeginsWith opContains opIsEmpty opNotEqual className alert size maxlength >>>> autocomplete titleStyle hideIgnoreCase ignCase ignoreCase >>>> tabindex><@renderField value /></#macro> >>>> +<#macro renderTextFindField name value defaultOption opEquals >>>> opBeginsWith opContains opIsEmpty opNotEqual className alert size maxlength >>>> autocomplete titleStyle hideIgnoreCase ignCase ignoreCase conditionGroup >>>> tabindex><@renderField value /></#macro> >>>> >>>> -<#macro renderDateFindField className alert name localizedInputTitle >>>> value value2 size maxlength dateType formName defaultDateTimeString imgSrc >>>> localizedIconTitle titleStyle defaultOptionFrom defaultOptionThru opEquals >>>> opSameDay opGreaterThanFromDayStart opGreaterThan opGreaterThan opLessThan >>>> opUpToDay opUpThruDay opIsEmpty tabindex><@renderField value /></#macro> >>>> +<#macro renderDateFindField className alert name localizedInputTitle >>>> value value2 size maxlength dateType formName defaultDateTimeString imgSrc >>>> localizedIconTitle titleStyle defaultOptionFrom defaultOptionThru opEquals >>>> opSameDay opGreaterThanFromDayStart opGreaterThan opGreaterThan opLessThan >>>> opUpToDay opUpThruDay opIsEmpty conditionGroup tabindex><@renderField value >>>> /></#macro> >>>> >>>> -<#macro renderRangeFindField className alert name value size maxlength >>>> autocomplete titleStyle defaultOptionFrom opEquals opGreaterThan >>>> opGreaterThanEquals opLessThan opLessThanEquals value2 defaultOptionThru >>>> tabindex> >>>> +<#macro renderRangeFindField className alert name value size maxlength >>>> autocomplete titleStyle defaultOptionFrom opEquals opGreaterThan >>>> opGreaterThanEquals opLessThan opLessThanEquals value2 defaultOptionThru >>>> conditionGroup tabindex> >>>> <@renderField value /> >>>> </#macro> >>>> >>>> -<#macro renderLookupField name formName fieldFormName className="" >>>> alert="false" value="" size="" maxlength="" id="" event="" action="" >>>> readonly=false autocomplete="" descriptionFieldName="" >>>> targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled >>>> presentation="layer" width="" height="" position="" fadeBackground="true" >>>> clearText="" showDescription="" initiallyCollapsed="" lastViewName="main" >>>> tabindex="" delegatorName="default">></#macro> >>>> +<#macro renderLookupField name formName fieldFormName conditionGroup >>>> className="" alert="false" value="" size="" maxlength="" id="" event="" >>>> action="" readonly=false autocomplete="" descriptionFieldName="" >>>> targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled >>>> presentation="layer" width="" height="" position="" fadeBackground="true" >>>> clearText="" showDescription="" initiallyCollapsed="" lastViewName="main" >>>> tabindex="" delegatorName="default">></#macro> >>>> <#macro renderNextPrev paginateStyle paginateFirstStyle viewIndex >>>> highIndex listSize viewSize ajaxEnabled javaScriptEnabled ajaxFirstUrl >>>> firstUrl paginateFirstLabel paginatePreviousStyle ajaxPreviousUrl >>>> previousUrl paginatePreviousLabel pageLabel ajaxSelectUrl selectUrl >>>> ajaxSelectSizeUrl selectSizeUrl commonDisplaying paginateNextStyle >>>> ajaxNextUrl nextUrl paginateNextLabel paginateLastStyle ajaxLastUrl lastUrl >>>> paginateLastLabel paginateViewSizeLabel></#macro> >>>> <#macro renderFileField className alert name value size maxlength >>>> autocomplete tabindex><@renderField value /></#macro> >>>> <#macro renderPasswordField className alert name value size maxlength >>>> id autocomplete tabindex></#macro> >>>> >>>> Modified: >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/FoFormMacroLibrary.ftl >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/FoFormMacroLibrary.ftl?rev=1825350&r1=1825349&r2=1825350&view=diff >>>> >>>> ============================================================================== >>>> --- >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/FoFormMacroLibrary.ftl >>>> (original) >>>> +++ >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/FoFormMacroLibrary.ftl >>>> Mon Feb 26 09:57:36 2018 >>>> @@ -57,7 +57,7 @@ under the License. >>>> >>>> <#macro renderDateTimeField name className alert title value size >>>> maxlength step timeValues id event action dateType shortDateInput >>>> timeDropdownParamName defaultDateTimeString localizedIconTitle timeDropdown >>>> timeHourName classString hour1 hour2 timeMinutesName minutes isTwelveHour >>>> ampmName amSelected pmSelected compositeType formName mask="" event="" >>>> action="" step="" timeValues="" tabindex=""><@makeBlock className value >>>> /></#macro> >>>> >>>> -<#macro renderDropDownField name className alert id multiple formName >>>> otherFieldName event action size explicitDescription allowEmpty options >>>> fieldName otherFieldName otherValue otherFieldSize dDFCurrent ajaxEnabled >>>> noCurrentSelectedKey ajaxOptions frequency minChars choices autoSelect >>>> partialSearch partialChars ignoreCase fullSearch tabindex firstInList="" >>>> currentValue=""> >>>> +<#macro renderDropDownField name className alert id multiple formName >>>> otherFieldName event action size explicitDescription allowEmpty options >>>> fieldName otherFieldName otherValue otherFieldSize dDFCurrent ajaxEnabled >>>> noCurrentSelectedKey ajaxOptions frequency minChars choices autoSelect >>>> partialSearch partialChars ignorease fullSearch conditionGroup tabindex >>>> firstInList="" currentValue=""> >>>> <#if currentValue?has_content && firstInList?has_content> >>>> <@makeBlock "" explicitDescription /> >>>> <#else> >>>> @@ -67,13 +67,13 @@ under the License. >>>> </#if> >>>> </#macro> >>>> >>>> -<#macro renderCheckField items className alert id allChecked >>>> currentValue name event action tabindex><@makeBlock "" "" /></#macro> >>>> -<#macro renderRadioField items className alert currentValue >>>> noCurrentSelectedKey name event action tabindex><@makeBlock "" "" >>>> /></#macro> >>>> +<#macro renderCheckField items className alert id allChecked >>>> currentValue name event action conditionGroup tabindex><@makeBlock "" "" >>>> /></#macro> >>>> +<#macro renderRadioField items className alert currentValue >>>> noCurrentSelectedKey name event action conditionGroup tabindex><@makeBlock >>>> "" "" /></#macro> >>>> >>>> <#macro renderSubmitField buttonType className alert formName title >>>> name event action imgSrc confirmation containerId ajaxUrl >>>> tabindex><@makeBlock "" "" /></#macro> >>>> <#macro renderResetField className alert name title><@makeBlock "" "" >>>> /></#macro> >>>> >>>> -<#macro renderHiddenField name value id event >>>> action><!--hidden--></#macro> >>>> +<#macro renderHiddenField name conditionGroup value id event >>>> action><!--hidden--></#macro> >>>> <#macro renderIgnoredField><!--ignore--></#macro> >>>> >>>> <#macro renderFieldTitle style title id fieldHelpText="" >>>> for=""><fo:block <@getFoStyle style/>>${title?default("")?replace(" ", >>>> " ")}</fo:block></#macro> >>>> @@ -121,16 +121,16 @@ under the License. >>>> >>>> <#macro renderFormatEmptySpace> <@makeBlock "" " " >>>> /><!--space--></#macro> >>>> >>>> -<#macro renderTextFindField name value defaultOption opEquals >>>> opBeginsWith opContains opIsEmpty opNotEqual className alert size maxlength >>>> autocomplete titleStyle hideIgnoreCase ignCase ignoreCase >>>> tabindex><@makeBlock className value/></#macro> >>>> +<#macro renderTextFindField name value defaultOption opEquals >>>> opBeginsWith opContains opIsEmpty opNotEqual className alert size maxlength >>>> autocomplete titleStyle hideIgnoreCase ignCase ignoreCase conditionGroup >>>> tabindex><@makeBlock className value/></#macro> >>>> >>>> -<#macro renderDateFindField className alert name localizedInputTitle >>>> value value2 size maxlength dateType formName defaultDateTimeString imgSrc >>>> localizedIconTitle titleStyle defaultOptionFrom defaultOptionThru opEquals >>>> opSameDay opGreaterThanFromDayStart opGreaterThan opGreaterThan opLessThan >>>> opUpToDay opUpThruDay opIsEmpty tabindex> >>>> +<#macro renderDateFindField className alert name localizedInputTitle >>>> value value2 size maxlength dateType formName defaultDateTimeString imgSrc >>>> localizedIconTitle titleStyle defaultOptionFrom defaultOptionThru opEquals >>>> opSameDay opGreaterThanFromDayStart opGreaterThan opGreaterThan opLessThan >>>> opUpToDay opUpThruDay opIsEmpty conditionGroup tabindex> >>>> <@makeBlock className value /> >>>> </#macro> >>>> -<#macro renderRangeFindField className alert name value size maxlength >>>> autocomplete titleStyle defaultOptionFrom opEquals opGreaterThan >>>> opGreaterThanEquals opLessThan opLessThanEquals value2 defaultOptionThru >>>> tabindex> >>>> +<#macro renderRangeFindField className alert name value size maxlength >>>> autocomplete titleStyle defaultOptionFrom opEquals opGreaterThan >>>> opGreaterThanEquals opLessThan opLessThanEquals value2 defaultOptionThru >>>> conditionGroup tabindex> >>>> <@makeBlock className value /> >>>> </#macro> >>>> >>>> -<#macro renderLookupField name formName fieldFormName className="" >>>> alert="false" value="" size="" maxlength="" id="" event="" action="" >>>> readonly=false autocomplete="" descriptionFieldName="" >>>> targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled >>>> presentation="layer" width="" height="" position="" fadeBackground="true" >>>> clearText="" showDescription="" initiallyCollapsed="" lastViewName="main" >>>> tabindex="" delegatorName="default"></#macro> >>>> +<#macro renderLookupField name formName fieldFormName conditionGroup >>>> className="" alert="false" value="" size="" maxlength="" id="" event="" >>>> action="" readonly=false autocomplete="" descriptionFieldName="" >>>> targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled >>>> presentation="layer" width="" height="" position="" fadeBackground="true" >>>> clearText="" showDescription="" initiallyCollapsed="" lastViewName="main" >>>> tabindex="" delegatorName="default"></#macro> >>>> <#macro renderNextPrev paginateStyle paginateFirstStyle viewIndex >>>> highIndex listSize viewSize ajaxEnabled javaScriptEnabled ajaxFirstUrl >>>> firstUrl paginateFirstLabel paginatePreviousStyle ajaxPreviousUrl >>>> previousUrl paginatePreviousLabel pageLabel ajaxSelectUrl selectUrl >>>> ajaxSelectSizeUrl selectSizeUrl commonDisplaying paginateNextStyle >>>> ajaxNextUrl nextUrl paginateNextLabel paginateLastStyle ajaxLastUrl lastUrl >>>> paginateLastLabel paginateViewSizeLabel></#macro> >>>> <#macro renderFileField className alert name value size maxlength >>>> autocomplete tabindex><@makeBlock className value /></#macro> >>>> <#macro renderPasswordField className alert name value size maxlength >>>> id autocomplete tabindex><@makeBlock className "" /></#macro> >>>> >>>> Modified: >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl?rev=1825350&r1=1825349&r2=1825350&view=diff >>>> >>>> ============================================================================== >>>> --- >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl >>>> (original) >>>> +++ >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl >>>> Mon Feb 26 09:57:36 2018 >>>> @@ -207,7 +207,10 @@ under the License. >>>> </span> >>>> </#macro> >>>> >>>> -<#macro renderDropDownField name className alert id formName >>>> otherFieldName action explicitDescription options fieldName otherFieldName >>>> otherValue otherFieldSize ajaxEnabled ajaxOptions frequency minChars >>>> choices >>>> autoSelect partialSearch partialChars ignoreCase fullSearch tabindex="" >>>> multiple="" event="" size="" firstInList="" currentValue="" allowEmpty="" >>>> dDFCurrent="" noCurrentSelectedKey=""> >>>> +<#macro renderDropDownField name className alert id formName >>>> otherFieldName action explicitDescription options fieldName otherFieldName >>>> otherValue otherFieldSize ajaxEnabled ajaxOptions frequency minChars >>>> choices >>>> autoSelect partialSearch partialChars ignoreCase fullSearch conditionGroup >>>> tabindex="" multiple="" event="" size="" firstInList="" currentValue="" >>>> allowEmpty="" dDFCurrent="" noCurrentSelectedKey=""> >>>> + <#if conditionGroup?has_content> >>>> + <input type="hidden" name="${name}_grp" value="${conditionGroup}"/> >>>> + </#if> >>>> <span class="ui-widget"> >>>> <select name="${name?default("")}<#rt/>" <@renderClass className >>>> alert /><#if id?has_content> id="${id}"</#if><#if multiple?has_content> >>>> multiple="multiple"</#if><#if otherFieldSize gt 0> >>>> onchange="process_choice(this,document.${formName}.${otherFieldName})"</#if><#if >>>> event?has_content> ${event}="${action}"</#if><#if size?has_content> >>>> size="${size}"</#if><#if tabindex?has_content> >>>> tabindex="${tabindex}"</#if><#rt/>> >>>> <#if firstInList?has_content && currentValue?has_content && >>>> !multiple?has_content> >>>> @@ -249,7 +252,10 @@ under the License. >>>> </#if> >>>> </#macro> >>>> >>>> -<#macro renderCheckField items className alert id name action >>>> allChecked="" currentValue="" event="" tabindex=""> >>>> +<#macro renderCheckField items className alert id name action >>>> conditionGroup allChecked="" currentValue="" event="" tabindex=""> >>>> + <#if conditionGroup?has_content> >>>> + <input type="hidden" name="${name}_grp" value="${conditionGroup}"/> >>>> + </#if> >>>> <#list items as item> >>>> <span <@renderClass className alert />><#rt/> >>>> <input type="checkbox"<#if (item_index == 0)> >>>> id="${id}"</#if><#rt/><#if tabindex?has_content> >>>> tabindex="${tabindex}"</#if><#rt/> >>>> @@ -261,7 +267,10 @@ under the License. >>>> </#list> >>>> </#macro> >>>> >>>> -<#macro renderRadioField items className alert name action >>>> currentValue="" noCurrentSelectedKey="" event="" tabindex=""> >>>> +<#macro renderRadioField items className alert name action >>>> conditionGroup currentValue="" noCurrentSelectedKey="" event="" >>>> tabindex=""> >>>> + <#if conditionGroup?has_content> >>>> + <input type="hidden" name="${name}_grp" value="${conditionGroup}"/> >>>> + </#if> >>>> <#list items as item> >>>> <span <@renderClass className alert />><#rt/> >>>> <input type="radio"<#if currentValue?has_content><#if >>>> currentValue==item.key> checked="checked"</#if><#if tabindex?has_content> >>>> tabindex="${tabindex}"</#if><#rt/> >>>> @@ -293,7 +302,10 @@ under the License. >>>> <input type="reset" <@renderClass className alert /> >>>> name="${name}"<#if title?has_content> value="${title}"</#if>/> >>>> </#macro> >>>> >>>> -<#macro renderHiddenField name value="" id="" event="" action=""> >>>> +<#macro renderHiddenField name conditionGroup value="" id="" event="" >>>> action=""> >>>> + <#if conditionGroup?has_content> >>>> + <input type="hidden" name="${name}_grp" value="${conditionGroup}"/> >>>> + </#if> >>>> <input type="hidden" name="${name}"<#if value?has_content> >>>> value="${value}"</#if><#if id?has_content> id="${id}"</#if><#if >>>> event?has_content && action?has_content> ${event}="${action}"</#if>/> >>>> </#macro> >>>> >>>> @@ -449,7 +461,10 @@ under the License. >>>> >>>> <#macro renderFormatEmptySpace> </#macro> >>>> >>>> -<#macro renderTextFindField name defaultOption opBeginsWith opContains >>>> opIsEmpty opNotEqual className alert hideIgnoreCase ignCase ignoreCase >>>> value="" opEquals="" size="" maxlength="" autocomplete="" titleStyle="" >>>> tabindex=""> >>>> +<#macro renderTextFindField name defaultOption opBeginsWith opContains >>>> opIsEmpty opNotEqual className alert hideIgnoreCase ignCase ignoreCase >>>> conditionGroup value="" opEquals="" size="" maxlength="" autocomplete="" >>>> titleStyle="" tabindex=""> >>>> + <#if conditionGroup?has_content> >>>> + <input type="hidden" name="${name}_grp" value="${conditionGroup}"/> >>>> + </#if> >>>> <#if opEquals?has_content> >>>> <select <#if name?has_content>name="${name}_op"</#if> >>>> class="selectBox"><#rt/> >>>> <option value="equals"<#if defaultOption=="equals"> >>>> selected="selected"</#if>>${opEquals}</option><#rt/> >>>> @@ -472,7 +487,10 @@ under the License. >>>> </#if> >>>> </#macro> >>>> >>>> -<#macro renderDateFindField className alert name dateType formName >>>> value defaultDateTimeString imgSrc localizedIconTitle defaultOptionFrom >>>> defaultOptionThru opEquals opSameDay opGreaterThanFromDayStart >>>> opGreaterThan >>>> opGreaterThan opLessThan opUpToDay opUpThruDay opIsEmpty >>>> localizedInputTitle="" value2="" size="" maxlength="" titleStyle="" >>>> tabindex=""> >>>> +<#macro renderDateFindField className alert name dateType formName >>>> value defaultDateTimeString imgSrc localizedIconTitle defaultOptionFrom >>>> defaultOptionThru opEquals opSameDay opGreaterThanFromDayStart >>>> opGreaterThan >>>> opGreaterThan opLessThan opUpToDay opUpThruDay opIsEmpty conditionGroup >>>> localizedInputTitle="" value2="" size="" maxlength="" titleStyle="" >>>> tabindex=""> >>>> + <#if conditionGroup?has_content> >>>> + <input type="hidden" name="${name}_grp" value="${conditionGroup}"/> >>>> + </#if> >>>> <span class="view-calendar"> >>>> <input id="${name?html}_fld0_value" type="text" <@renderClass >>>> className alert /><#if name?has_content> >>>> name="${name?html}_fld0_value"</#if><#if localizedInputTitle?has_content> >>>> title="${localizedInputTitle}"</#if><#if value?has_content> >>>> value="${value}"</#if><#if size?has_content> size="${size}"</#if><#if >>>> maxlength?has_content> maxlength="${maxlength}"</#if>/><#if >>>> tabindex?has_content> tabindex="${tabindex}"</#if><#rt/> >>>> <#if dateType != "time"> >>>> @@ -550,7 +568,10 @@ under the License. >>>> </span> >>>> </#macro> >>>> >>>> -<#macro renderRangeFindField className alert value defaultOptionFrom >>>> opEquals opGreaterThan opGreaterThanEquals opLessThan opLessThanEquals >>>> defaultOptionThru name="" size="" maxlength="" autocomplete="" >>>> titleStyle="" >>>> value2="" tabindex=""> >>>> +<#macro renderRangeFindField className alert value defaultOptionFrom >>>> opEquals opGreaterThan opGreaterThanEquals opLessThan opLessThanEquals >>>> defaultOptionThru conditionGroup name="" size="" maxlength="" >>>> autocomplete="" titleStyle="" value2="" tabindex=""> >>>> + <#if conditionGroup?has_content> >>>> + <input type="hidden" name="${name}_grp" value="${conditionGroup}"/> >>>> + </#if> >>>> <input type="text" <@renderClass className alert /> <#if >>>> name?has_content>name="${name}_fld0_value"</#if><#if value?has_content> >>>> value="${value}"</#if><#if size?has_content> size="${size}"</#if><#if >>>> maxlength?has_content> maxlength="${maxlength}"</#if><#if >>>> autocomplete?has_content> autocomplete="off"</#if>/><#if >>>> tabindex?has_content> tabindex="${tabindex}"</#if><#rt/> >>>> <#if titleStyle?has_content> >>>> <span class="${titleStyle}" ><#rt/> >>>> @@ -612,7 +633,7 @@ Parameter: lastViewName, String, optiona >>>> Parameter: tabindex, String, optional - HTML tabindex number. >>>> Parameter: delegatorName, String, optional - name of the delegator in >>>> context. >>>> --> >>>> -<#macro renderLookupField name formName fieldFormName className="" >>>> alert="false" value="" size="" maxlength="" id="" event="" action="" >>>> readonly=false autocomplete="" descriptionFieldName="" >>>> targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled >>>> presentation="layer" width=modelTheme.getLookupWidth() >>>> height=modelTheme.getLookupHeight() position=modelTheme.getLookupPosition() >>>> fadeBackground="true" clearText="" showDescription="" initiallyCollapsed="" >>>> lastViewName="main" tabindex="" delegatorName="default"> >>>> +<#macro renderLookupField name formName fieldFormName conditionGroup >>>> className="" alert="false" value="" size="" maxlength="" id="" event="" >>>> action="" readonly=false autocomplete="" descriptionFieldName="" >>>> targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled >>>> presentation="layer" width=modelTheme.getLookupWidth() >>>> height=modelTheme.getLookupHeight() position=modelTheme.getLookupPosition() >>>> fadeBackground="true" clearText="" showDescription="" initiallyCollapsed="" >>>> lastViewName="main" tabindex="" delegatorName="default"> >>>> <#if >>>> Static["org.apache.ofbiz.widget.model.ModelWidget"].widgetBoundaryCommentsEnabled(context)><#-- >>>> context is always null here, but this is handled in >>>> widgetBoundaryCommentsEnabled --> >>>> <!-- @renderLookupField --> >>>> </#if> >>>> @@ -629,6 +650,9 @@ Parameter: delegatorName, String, option >>>> <#if ajaxEnabled?has_content && ajaxEnabled && >>>> (presentation?has_content && "window" == presentation)> >>>> <#local ajaxUrl = ajaxUrl + "&_LAST_VIEW_NAME_=" + >>>> lastViewName /> >>>> </#if> >>>> + <#if conditionGroup?has_content> >>>> + <input type="hidden" name="${name}_grp" value="${conditionGroup}"/> >>>> + </#if> >>>> <span class="field-lookup"> >>>> <#if size?has_content && size=="0"> >>>> <input type="hidden" <#if name?has_content> >>>> name="${name}"</#if><#if tabindex?has_content> >>>> tabindex="${tabindex}"</#if><#rt/> >>>> >>>> Modified: >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/TextFormMacroLibrary.ftl >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/TextFormMacroLibrary.ftl?rev=1825350&r1=1825349&r2=1825350&view=diff >>>> >>>> ============================================================================== >>>> --- >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/TextFormMacroLibrary.ftl >>>> (original) >>>> +++ >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/TextFormMacroLibrary.ftl >>>> Mon Feb 26 09:57:36 2018 >>>> @@ -30,7 +30,7 @@ under the License. >>>> >>>> <#macro renderDateTimeField name className alert title value size >>>> maxlength id dateType shortDateInput timeDropdownParamName >>>> defaultDateTimeString localizedIconTitle timeDropdown timeHourName >>>> classString hour1 hour2 timeMinutesName minutes isTwelveHour ampmName >>>> amSelected pmSelected compositeType formName mask="" event="" action="" >>>> step="" timeValues="" tabindex="" ><@renderField value /></#macro> >>>> >>>> -<#macro renderDropDownField name className alert id multiple formName >>>> otherFieldName event action size firstInList currentValue >>>> explicitDescription allowEmpty options fieldName otherFieldName otherValue >>>> otherFieldSize dDFCurrent ajaxEnabled noCurrentSelectedKey ajaxOptions >>>> frequency minChars choices autoSelect partialSearch partialChars ignoreCase >>>> fullSearch tabindex> >>>> +<#macro renderDropDownField name className alert id multiple formName >>>> otherFieldName event action size firstInList currentValue >>>> explicitDescription allowEmpty options fieldName otherFieldName otherValue >>>> otherFieldSize dDFCurrent ajaxEnabled noCurrentSelectedKey ajaxOptions >>>> frequency minChars choices autoSelect partialSearch partialChars ignoreCase >>>> fullSearch conditionGroup tabindex> >>>> <#if currentValue?has_content && firstInList?has_content> >>>> <@renderField explicitDescription /> >>>> <#else> >>>> @@ -41,13 +41,13 @@ under the License. >>>> </#macro> >>>> >>>> <#macro renderTooltip tooltip tooltipStyle></#macro> >>>> -<#macro renderCheckField items className alert id allChecked >>>> currentValue name event action tabindex></#macro> >>>> -<#macro renderRadioField items className alert currentValue >>>> noCurrentSelectedKey name event action tabindex></#macro> >>>> +<#macro renderCheckField items className alert id allChecked >>>> currentValue name event action conditionGroup tabindex></#macro> >>>> +<#macro renderRadioField items className alert currentValue >>>> noCurrentSelectedKey name event action conditionGroup tabindex></#macro> >>>> >>>> <#macro renderSubmitField buttonType className alert formName title >>>> name event action imgSrc confirmation containerId ajaxUrl >>>> tabindex></#macro> >>>> <#macro renderResetField className alert name title></#macro> >>>> >>>> -<#macro renderHiddenField name value id event action></#macro> >>>> +<#macro renderHiddenField name conditionGroup value id event >>>> action></#macro> >>>> <#macro renderIgnoredField></#macro> >>>> >>>> <#macro renderFieldTitle style title id fieldHelpText="" >>>> for=""><@renderField title /></#macro> >>>> @@ -97,15 +97,15 @@ under the License. >>>> >>>> <#macro renderFormatEmptySpace> </#macro> >>>> >>>> -<#macro renderTextFindField name value defaultOption opEquals >>>> opBeginsWith opContains opIsEmpty opNotEqual className alert size maxlength >>>> autocomplete titleStyle hideIgnoreCase ignCase ignoreCase >>>> tabindex><@renderField value /></#macro> >>>> +<#macro renderTextFindField name value defaultOption opEquals >>>> opBeginsWith opContains opIsEmpty opNotEqual className alert size maxlength >>>> autocomplete titleStyle hideIgnoreCase ignCase ignoreCase conditionGroup >>>> tabindex><@renderField value /></#macro> >>>> >>>> -<#macro renderDateFindField className alert name localizedInputTitle >>>> value value2 size maxlength dateType formName defaultDateTimeString imgSrc >>>> localizedIconTitle titleStyle defaultOptionFrom defaultOptionThru opEquals >>>> opSameDay opGreaterThanFromDayStart opGreaterThan opGreaterThan opLessThan >>>> opUpToDay opUpThruDay opIsEmpty tabindex><@renderField value /></#macro> >>>> +<#macro renderDateFindField className alert name localizedInputTitle >>>> value value2 size maxlength dateType formName defaultDateTimeString imgSrc >>>> localizedIconTitle titleStyle defaultOptionFrom defaultOptionThru opEquals >>>> opSameDay opGreaterThanFromDayStart opGreaterThan opGreaterThan opLessThan >>>> opUpToDay opUpThruDay opIsEmpty conditionGroup tabindex><@renderField value >>>> /></#macro> >>>> >>>> -<#macro renderRangeFindField className alert name value size maxlength >>>> autocomplete titleStyle defaultOptionFrom opEquals opGreaterThan >>>> opGreaterThanEquals opLessThan opLessThanEquals value2 defaultOptionThru >>>> tabindex> >>>> +<#macro renderRangeFindField className alert name value size maxlength >>>> autocomplete titleStyle defaultOptionFrom opEquals opGreaterThan >>>> opGreaterThanEquals opLessThan opLessThanEquals value2 defaultOptionThru >>>> conditionGroup tabindex> >>>> <@renderField value /> >>>> </#macro> >>>> >>>> -<#macro renderLookupField name formName fieldFormName className="" >>>> alert="false" value="" size="" maxlength="" id="" event="" action="" >>>> readonly=false autocomplete="" descriptionFieldName="" >>>> targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled >>>> presentation="layer" width="" height="" position="" fadeBackground="true" >>>> clearText="" showDescription="" initiallyCollapsed="" lastViewName="main" >>>> tabindex="" delegatorName="default">><@renderField value /></#macro> >>>> +<#macro renderLookupField name formName fieldFormName conditionGroup >>>> className="" alert="false" value="" size="" maxlength="" id="" event="" >>>> action="" readonly=false autocomplete="" descriptionFieldName="" >>>> targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled >>>> presentation="layer" width="" height="" position="" fadeBackground="true" >>>> clearText="" showDescription="" initiallyCollapsed="" lastViewName="main" >>>> tabindex="" delegatorName="default">><@renderField value /></#macro> >>>> <#macro renderNextPrev paginateStyle paginateFirstStyle viewIndex >>>> highIndex listSize viewSize ajaxEnabled javaScriptEnabled ajaxFirstUrl >>>> firstUrl paginateFirstLabel paginatePreviousStyle ajaxPreviousUrl >>>> previousUrl paginatePreviousLabel pageLabel ajaxSelectUrl selectUrl >>>> ajaxSelectSizeUrl selectSizeUrl commonDisplaying paginateNextStyle >>>> ajaxNextUrl nextUrl paginateNextLabel paginateLastStyle ajaxLastUrl lastUrl >>>> paginateLastLabel paginateViewSizeLabel></#macro> >>>> <#macro renderFileField className alert name value size maxlength >>>> autocomplete tabindex><@renderField value /></#macro> >>>> <#macro renderPasswordField className alert name value size maxlength >>>> id autocomplete tabindex></#macro> >>>> >>>> Modified: >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/XlsFormMacroLibrary.ftl >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/XlsFormMacroLibrary.ftl?rev=1825350&r1=1825349&r2=1825350&view=diff >>>> >>>> ============================================================================== >>>> --- >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/XlsFormMacroLibrary.ftl >>>> (original) >>>> +++ >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/XlsFormMacroLibrary.ftl >>>> Mon Feb 26 09:57:36 2018 >>>> @@ -40,17 +40,17 @@ under the License. >>>> <#else><@renderItemField value "dtf" className/></#if> >>>> </#macro> >>>> >>>> -<#macro renderDropDownField name className alert id multiple formName >>>> otherFieldName event action size firstInList currentValue >>>> explicitDescription allowEmpty options fieldName otherFieldName otherValue >>>> otherFieldSize dDFCurrent ajaxEnabled noCurrentSelectedKey ajaxOptions >>>> frequency minChars choices autoSelect partialSearch partialChars ignoreCase >>>> fullSearch tabindex><@renderItemField explicitDescription "txf" >>>> className/></#macro> >>>> +<#macro renderDropDownField name className alert id multiple formName >>>> otherFieldName event action size firstInList currentValue >>>> explicitDescription allowEmpty options fieldName otherFieldName otherValue >>>> otherFieldSize dDFCurrent ajaxEnabled noCurrentSelectedKey ajaxOptions >>>> frequency minChars choices autoSelect partialSearch partialChars ignoreCase >>>> fullSearch conditionGroup tabindex><@renderItemField explicitDescription >>>> "txf" className/></#macro> >>>> >>>> -<#macro renderCheckField items className alert id allChecked >>>> currentValue name event action tabindex><@renderItemField currentValue >>>> "txf" >>>> className/></#macro> >>>> +<#macro renderCheckField items className alert id allChecked >>>> currentValue name event action conditionGroup tabindex><@renderItemField >>>> currentValue "txf" className/></#macro> >>>> >>>> -<#macro renderRadioField items className alert currentValue >>>> noCurrentSelectedKey name event action tabindex><@renderItemField >>>> currentValue "txf" className/></#macro> >>>> +<#macro renderRadioField items className alert currentValue >>>> noCurrentSelectedKey name event action conditionGroup >>>> tabindex><@renderItemField currentValue "txf" className/></#macro> >>>> >>>> <#macro renderSubmitField buttonType className alert formName title >>>> name event action imgSrc confirmation containerId ajaxUrl >>>> tabindex></#macro> >>>> >>>> <#macro renderResetField className alert name title></#macro> >>>> >>>> -<#macro renderHiddenField name value id event action></#macro> >>>> +<#macro renderHiddenField name conditionGroup value id event >>>> action></#macro> >>>> >>>> <#macro renderIgnoredField></#macro> >>>> >>>> @@ -112,13 +112,13 @@ under the License. >>>> >>>> <#macro renderFormatEmptySpace><@renderItemField "" "txf"/></#macro> >>>> >>>> -<#macro renderTextFindField name value defaultOption opEquals >>>> opBeginsWith opContains opIsEmpty opNotEqual className alert size maxlength >>>> autocomplete titleStyle hideIgnoreCase ignCase ignoreCase >>>> tabindex></#macro> >>>> +<#macro renderTextFindField name value defaultOption opEquals >>>> opBeginsWith opContains opIsEmpty opNotEqual className alert size maxlength >>>> autocomplete titleStyle hideIgnoreCase ignCase ignoreCase conditionGroup >>>> tabindex></#macro> >>>> >>>> -<#macro renderDateFindField className alert name localizedInputTitle >>>> value value2 size maxlength dateType formName defaultDateTimeString imgSrc >>>> localizedIconTitle titleStyle defaultOptionFrom defaultOptionThru opEquals >>>> opSameDay opGreaterThanFromDayStart opGreaterThan opGreaterThan opLessThan >>>> opUpToDay opUpThruDay opIsEmpty tabindex></#macro> >>>> +<#macro renderDateFindField className alert name localizedInputTitle >>>> value value2 size maxlength dateType formName defaultDateTimeString imgSrc >>>> localizedIconTitle titleStyle defaultOptionFrom defaultOptionThru opEquals >>>> opSameDay opGreaterThanFromDayStart opGreaterThan opGreaterThan opLessThan >>>> opUpToDay opUpThruDay opIsEmpty conditionGroup tabindex></#macro> >>>> >>>> -<#macro renderRangeFindField className alert name value size maxlength >>>> autocomplete titleStyle defaultOptionFrom opEquals opGreaterThan >>>> opGreaterThanEquals opLessThan opLessThanEquals value2 defaultOptionThru >>>> tabindex></#macro> >>>> +<#macro renderRangeFindField className alert name value size maxlength >>>> autocomplete titleStyle defaultOptionFrom opEquals opGreaterThan >>>> opGreaterThanEquals opLessThan opLessThanEquals value2 defaultOptionThru >>>> conditionGroup tabindex></#macro> >>>> >>>> -<#macro renderLookupField name formName fieldFormName className="" >>>> alert="false" value="" size="" maxlength="" id="" event="" action="" >>>> readonly=false autocomplete="" descriptionFieldName="" >>>> targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled >>>> presentation="layer" width="" height="" position="" fadeBackground="true" >>>> clearText="" showDescription="" initiallyCollapsed="" lastViewName="main" >>>> tabindex="" delegatorName="default">><@renderItemField value "txf" >>>> className/></#macro> >>>> +<#macro renderLookupField name formName fieldFormName conditionGroup >>>> className="" alert="false" value="" size="" maxlength="" id="" event="" >>>> action="" readonly=false autocomplete="" descriptionFieldName="" >>>> targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled >>>> presentation="layer" width="" height="" position="" fadeBackground="true" >>>> clearText="" showDescription="" initiallyCollapsed="" lastViewName="main" >>>> tabindex="" delegatorName="default">><@renderItemField value "txf" >>>> className/></#macro> >>>> >>>> <#macro renderNextPrev paginateStyle paginateFirstStyle viewIndex >>>> highIndex listSize viewSize ajaxEnabled javaScriptEnabled ajaxFirstUrl >>>> firstUrl paginateFirstLabel paginatePreviousStyle ajaxPreviousUrl >>>> previousUrl paginatePreviousLabel pageLabel ajaxSelectUrl selectUrl >>>> ajaxSelectSizeUrl selectSizeUrl commonDisplaying paginateNextStyle >>>> ajaxNextUrl nextUrl paginateNextLabel paginateLastStyle ajaxLastUrl lastUrl >>>> paginateLastLabel paginateViewSizeLabel></#macro> >>>> >>>> >>>> Modified: >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/XmlFormMacroLibrary.ftl >>>> URL: >>>> http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/XmlFormMacroLibrary.ftl?rev=1825350&r1=1825349&r2=1825350&view=diff >>>> >>>> ============================================================================== >>>> --- >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/XmlFormMacroLibrary.ftl >>>> (original) >>>> +++ >>>> ofbiz/ofbiz-framework/trunk/themes/common-theme/template/macro/XmlFormMacroLibrary.ftl >>>> Mon Feb 26 09:57:36 2018 >>>> @@ -46,16 +46,16 @@ under the License. >>>> >>>> <#macro renderDateTimeField name className alert title value size >>>> maxlength id dateType shortDateInput timeDropdownParamName >>>> defaultDateTimeString localizedIconTitle timeDropdown timeHourName >>>> classString hour1 hour2 timeMinutesName minutes isTwelveHour ampmName >>>> amSelected pmSelected compositeType formName mask="" event="" action="" >>>> step="" timeValues="" tabindex="" ><@renderField value/></#macro> >>>> >>>> -<#macro renderDropDownField name className alert id multiple formName >>>> otherFieldName event action size firstInList currentValue >>>> explicitDescription allowEmpty options fieldName otherFieldName otherValue >>>> otherFieldSize dDFCurrent ajaxEnabled noCurrentSelectedKey ajaxOptions >>>> frequency minChars choices autoSelect partialSearch partialChars ignoreCase >>>> fullSearch tabindex> >>>> +<#macro renderDropDownField name className alert id multiple formName >>>> otherFieldName event action size firstInList currentValue >>>> explicitDescription allowEmpty options fieldName otherFieldName otherValue >>>> otherFieldSize dDFCurrent ajaxEnabled noCurrentSelectedKey ajaxOptions >>>> frequency minChars choices autoSelect partialSearch partialChars ignoreCase >>>> fullSearch conditionGroup tabindex> >>>> </#macro> >>>> >>>> -<#macro renderCheckField items className alert id allChecked >>>> currentValue name event action tabindex></#macro> >>>> -<#macro renderRadioField items className alert currentValue >>>> noCurrentSelectedKey name event action tabindex></#macro> >>>> +<#macro renderCheckField items className alert id allChecked >>>> currentValue name event action conditionGroup tabindex></#macro> >>>> +<#macro renderRadioField items className alert currentValue >>>> noCurrentSelectedKey name event action conditionGroup tabindex></#macro> >>>> >>>> <#macro renderSubmitField buttonType className alert formName title >>>> name event action imgSrc confirmation containerId ajaxUrl >>>> tabindex></#macro> >>>> <#macro renderResetField className alert name title></#macro> >>>> >>>> -<#macro renderHiddenField name value id event action></#macro> >>>> +<#macro renderHiddenField name conditionGroup value id event >>>> action></#macro> >>>> <#macro renderIgnoredField></#macro> >>>> >>>> <#macro renderFieldTitle style title id fieldHelpText="" >>>> for=""></#macro> >>>> @@ -92,12 +92,12 @@ under the License. >>>> >>>> <#macro renderTextFindField name value defaultOption opEquals >>>> opBeginsWith opContains opIsEmpty opNotEqual className alert size maxlength >>>> autocomplete titleStyle hideIgnoreCase ignCase ignoreCase >>>> tabindex><@renderField value/></#macro> >>>> >>>> -<#macro renderDateFindField className alert name localizedInputTitle >>>> value value2 size maxlength dateType formName defaultDateTimeString imgSrc >>>> localizedIconTitle titleStyle defaultOptionFrom defaultOptionThru opEquals >>>> opSameDay opGreaterThanFromDayStart opGreaterThan opGreaterThan opLessThan >>>> opUpToDay opUpThruDay opIsEmpty tabindex></#macro> >>>> +<#macro renderDateFindField className alert name localizedInputTitle >>>> value value2 size maxlength dateType formName defaultDateTimeString imgSrc >>>> localizedIconTitle titleStyle defaultOptionFrom defaultOptionThru opEquals >>>> opSameDay opGreaterThanFromDayStart opGreaterThan opGreaterThan opLessThan >>>> opUpToDay opUpThruDay opIsEmpty conditionGroup tabindex></#macro> >>>> >>>> -<#macro renderRangeFindField className alert name value size maxlength >>>> autocomplete titleStyle defaultOptionFrom opEquals opGreaterThan >>>> opGreaterThanEquals opLessThan opLessThanEquals value2 defaultOptionThru >>>> tabindex> >>>> +<#macro renderRangeFindField className alert name value size maxlength >>>> autocomplete titleStyle defaultOptionFrom opEquals opGreaterThan >>>> opGreaterThanEquals opLessThan opLessThanEquals value2 defaultOptionThru >>>> conditionGroup tabindex> >>>> </#macro> >>>> >>>> -<#macro renderLookupField name formName fieldFormName className="" >>>> alert="false" value="" size="" maxlength="" id="" event="" action="" >>>> readonly=false autocomplete="" descriptionFieldName="" >>>> targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled >>>> presentation="layer" width="" height="" position="" fadeBackground="true" >>>> clearText="" showDescription="" initiallyCollapsed="" lastViewName="main" >>>> tabindex="" delegatorName="default">></#macro> >>>> +<#macro renderLookupField name formName fieldFormName conditionGroup >>>> className="" alert="false" value="" size="" maxlength="" id="" event="" >>>> action="" readonly=false autocomplete="" descriptionFieldName="" >>>> targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled >>>> presentation="layer" width="" height="" position="" fadeBackground="true" >>>> clearText="" showDescription="" initiallyCollapsed="" lastViewName="main" >>>> tabindex="" delegatorName="default">></#macro> >>>> <#macro renderNextPrev paginateStyle paginateFirstStyle viewIndex >>>> highIndex listSize viewSize ajaxEnabled javaScriptEnabled ajaxFirstUrl >>>> firstUrl paginateFirstLabel paginatePreviousStyle ajaxPreviousUrl >>>> previousUrl paginatePreviousLabel pageLabel ajaxSelectUrl selectUrl >>>> ajaxSelectSizeUrl selectSizeUrl commonDisplaying paginateNextStyle >>>> ajaxNextUrl nextUrl paginateNextLabel paginateLastStyle ajaxLastUrl lastUrl >>>> paginateLastLabel paginateViewSizeLabel></#macro> >>>> <#macro renderFileField className alert name value size maxlength >>>> autocomplete tabindex></#macro> >>>> <#macro renderPasswordField className alert name value size maxlength >>>> id autocomplete tabindex></#macro> >>>> >>>> >> >