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>&nbsp;</#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("&nbsp;", " ")}</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>&nbsp;</#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 + "&amp;_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>&nbsp;</#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>



Reply via email to