You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by da...@apache.org on 2022/10/07 15:58:11 UTC
[ofbiz-framework] branch trunk updated: Improved: Use FlexibleStringExpander for disabled attribute on fields
This is an automated email from the ASF dual-hosted git repository.
danwatford pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git
The following commit(s) were added to refs/heads/trunk by this push:
new 45300fef14 Improved: Use FlexibleStringExpander for disabled attribute on fields
45300fef14 is described below
commit 45300fef14f453fdb25ecc6ad458b89d5e7fdaa0
Author: Florian Motteau <fl...@nereide.fr>
AuthorDate: Fri Sep 30 17:50:14 2022 +0200
Improved: Use FlexibleStringExpander for disabled attribute on fields
Add disabled support on all form field types
OF-12678
---
framework/widget/dtd/widget-form.xsd | 10 +-
.../apache/ofbiz/widget/model/ModelFormField.java | 30 ++-
.../ofbiz/widget/model/ModelFormFieldBuilder.java | 12 +-
.../widget/renderer/macro/MacroFormRenderer.java | 50 +++--
.../macro/RenderableFtlFormElementsBuilder.java | 2 +-
.../template/macro/HtmlFormMacroLibrary.ftl | 223 +++++++++++++--------
6 files changed, 220 insertions(+), 107 deletions(-)
diff --git a/framework/widget/dtd/widget-form.xsd b/framework/widget/dtd/widget-form.xsd
index 3b482a3aae..bb5c1d54c5 100644
--- a/framework/widget/dtd/widget-form.xsd
+++ b/framework/widget/dtd/widget-form.xsd
@@ -857,7 +857,15 @@ under the License.
</xs:documentation>
</xs:annotation>
</xs:attribute>
- <xs:attribute name="disabled" type="xs:boolean" default="false"/>
+ <xs:attribute type="xs:string" name="disabled">
+ <xs:annotation>
+ <xs:documentation>
+ Set a field as disabled : not mutable, not focusable, not submitted if in a form.
+ Accepts ${} notation to allow use of expressions.
+ Expressions must evaluate to the strings 'true', 'false' (without quotes) or empty (equivalent to false)
+ </xs:documentation>
+ </xs:annotation>
+ </xs:attribute>
</xs:complexType>
</xs:element>
diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormField.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormField.java
index 093f6c0a43..0b14bc0cb7 100644
--- a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormField.java
+++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormField.java
@@ -160,7 +160,7 @@ public final class ModelFormField {
private final String parentFormName;
private final String tabindex;
private final String conditionGroup;
- private final boolean disabled;
+ private final FlexibleStringExpander disabled;
private ModelFormField(ModelFormFieldBuilder builder) {
this.action = builder.getAction();
@@ -215,7 +215,7 @@ public final class ModelFormField {
this.parentFormName = builder.getParentFormName();
this.tabindex = builder.getTabindex();
this.conditionGroup = builder.getConditionGroup();
- this.disabled = builder.getDisabled();
+ this.disabled = builder.getDisabledSpec();
}
public FlexibleStringExpander getAction() {
@@ -483,10 +483,17 @@ public final class ModelFormField {
return conditionGroup;
}
- public boolean getDisabled() {
+ public FlexibleStringExpander getDisabledSpec() {
return disabled;
}
+ public boolean getDisabled(Map<String, Object> context) {
+ if (UtilValidate.isNotEmpty(this.disabled)) {
+ return "true".equals(disabled.expandString(context));
+ }
+ return false;
+ }
+
public Map<String, ? extends Object> getMap(Map<String, ? extends Object> context) {
if (UtilValidate.isEmpty(this.mapAcsr)) {
return this.modelForm.getDefaultMap(context);
@@ -2738,25 +2745,30 @@ public final class ModelFormField {
*/
public static class HiddenField extends FieldInfo {
private final FlexibleStringExpander value;
+ private final FlexibleStringExpander disabled;
public HiddenField(Element element, ModelFormField modelFormField) {
super(element, modelFormField);
this.value = FlexibleStringExpander.getInstance(element.getAttribute("value"));
+ this.disabled = FlexibleStringExpander.getInstance(element.getAttribute("disabled"));
}
private HiddenField(HiddenField original, ModelFormField modelFormField) {
super(original.getFieldSource(), original.getFieldType(), modelFormField);
this.value = original.value;
+ this.disabled = original.disabled;
}
public HiddenField(int fieldSource, ModelFormField modelFormField) {
super(fieldSource, FieldInfo.HIDDEN, modelFormField);
this.value = FlexibleStringExpander.getInstance("");
+ this.disabled = FlexibleStringExpander.getInstance("");
}
public HiddenField(ModelFormField modelFormField) {
super(FieldInfo.SOURCE_EXPLICIT, FieldInfo.HIDDEN, modelFormField);
this.value = FlexibleStringExpander.getInstance("");
+ this.disabled = FlexibleStringExpander.getInstance("");
}
@Override
@@ -2799,6 +2811,18 @@ public final class ModelFormField {
return getModelFormField().getEntry(context);
}
+ /**
+ *
+ * @param context the context
+ * @return evaluated value
+ */
+ public boolean getDisabled(Map<String, Object> context) {
+ if (UtilValidate.isNotEmpty(this.disabled)) {
+ return "true".equals(disabled.expandString(context));
+ }
+ return false;
+ }
+
@Override
public void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer)
throws IOException {
diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java
index 2501af1181..9647fa9641 100644
--- a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java
+++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelFormFieldBuilder.java
@@ -116,7 +116,7 @@ public class ModelFormFieldBuilder {
private String parentFormName = "";
private String tabindex = "";
private String conditionGroup = "";
- private boolean disabled = false;
+ private FlexibleStringExpander disabled = FlexibleStringExpander.getInstance("");
protected static final List<String> NUMERIC_FIELD_TYPES = Collections.unmodifiableList(UtilMisc.toList(
"floating-point", "numeric", "fixed-point",
@@ -206,7 +206,7 @@ public class ModelFormFieldBuilder {
this.parentFormName = fieldElement.getAttribute("form-name");
this.tabindex = fieldElement.getAttribute("tabindex");
this.conditionGroup = fieldElement.getAttribute("condition-group");
- this.disabled = "true".equals(fieldElement.getAttribute("disabled"));
+ this.disabled = FlexibleStringExpander.getInstance(fieldElement.getAttribute("disabled"));
Element childElement = null;
List<? extends Element> subElements = UtilXml.childElementList(fieldElement);
for (Element subElement : subElements) {
@@ -323,7 +323,7 @@ public class ModelFormFieldBuilder {
this.parentFormName = modelFormField.getParentFormName();
this.tabindex = modelFormField.getTabindex();
this.conditionGroup = modelFormField.getConditionGroup();
- this.disabled = modelFormField.getDisabled();
+ this.disabled = modelFormField.getDisabledSpec();
}
public ModelFormFieldBuilder(ModelFormFieldBuilder builder) {
@@ -366,7 +366,7 @@ public class ModelFormFieldBuilder {
this.parentFormName = builder.getParentFormName();
this.tabindex = builder.getTabindex();
this.conditionGroup = builder.getConditionGroup();
- this.disabled = builder.getDisabled();
+ this.disabled = builder.getDisabledSpec();
}
/**
@@ -729,7 +729,7 @@ public class ModelFormFieldBuilder {
* Gets disabled.*
* @return the disabled
*/
- public boolean getDisabled() {
+ public FlexibleStringExpander getDisabledSpec() {
return disabled;
}
@@ -1048,7 +1048,7 @@ public class ModelFormFieldBuilder {
this.position = builder.getPosition();
this.requiredField = builder.getRequiredField();
this.separateColumn = builder.getSeparateColumn();
- this.disabled = builder.getDisabled();
+ this.disabled = builder.getDisabledSpec();
}
/**
diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
index 5e5f4f4276..dabc2d32d3 100644
--- a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
+++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java
@@ -294,7 +294,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
}
String tabindex = modelFormField.getTabindex();
String value = modelFormField.getEntry(context, textareaField.getDefaultValue(context));
- boolean disabled = modelFormField.getDisabled();
+ boolean disabled = modelFormField.getDisabled(context);
StringWriter sr = new StringWriter();
sr.append("<@renderTextareaField ");
sr.append("name=\"");
@@ -342,7 +342,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
ModelFormField modelFormField = dateTimeField.getModelFormField();
String paramName = modelFormField.getParameterName(context);
String defaultDateTimeString = dateTimeField.getDefaultDateTimeString(context);
- boolean disabled = modelFormField.getDisabled();
+ boolean disabled = modelFormField.getDisabled(context);
String className = "";
String alert = "false";
String name = "";
@@ -609,7 +609,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
ModelForm modelForm = modelFormField.getModelForm();
String currentValue = modelFormField.getEntry(context);
String conditionGroup = modelFormField.getConditionGroup();
- boolean disabled = modelFormField.getDisabled();
+ boolean disabled = modelFormField.getDisabled(context);
List<ModelFormField.OptionValue> allOptionValues = dropDownField.getAllOptionValues(context, WidgetWorker.getDelegator(context));
ModelFormField.AutoComplete autoComplete = dropDownField.getAutoComplete();
String event = modelFormField.getEvent();
@@ -861,7 +861,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
String currentValue = modelFormField.getEntry(context);
String conditionGroup = modelFormField.getConditionGroup();
Boolean allChecked = checkField.isAllChecked(context);
- boolean disabled = modelFormField.getDisabled();
+ boolean disabled = modelFormField.getDisabled(context);
String id = modelFormField.getCurrentContainerId(context);
String className = "";
String alert = "false";
@@ -942,7 +942,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
List<ModelFormField.OptionValue> allOptionValues = radioField.getAllOptionValues(context, WidgetWorker.getDelegator(context));
String currentValue = modelFormField.getEntry(context);
String conditionGroup = modelFormField.getConditionGroup();
- boolean disabled = modelFormField.getDisabled();
+ boolean disabled = modelFormField.getDisabled(context);
String className = "";
String alert = "false";
String name = modelFormField.getParameterName(context);
@@ -1045,6 +1045,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
ajaxUrl = MacroCommonRenderer.createAjaxParamsFromUpdateAreas(updateAreas, null, modelForm, "", context);
}
String tabindex = modelFormField.getTabindex();
+ boolean disabled = modelFormField.getDisabled(context);
StringWriter sr = new StringWriter();
sr.append("<@renderSubmitField ");
sr.append("buttonType=\"");
@@ -1083,7 +1084,9 @@ public final class MacroFormRenderer implements FormStringRenderer {
}
sr.append("\" tabindex=\"");
sr.append(tabindex);
- sr.append("\" />");
+ sr.append("\" disabled=");
+ sr.append(Boolean.toString(disabled));
+ sr.append(" />");
executeMacro(writer, sr.toString());
this.appendTooltip(writer, context, modelFormField);
}
@@ -1130,6 +1133,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
String conditionGroup = modelFormField.getConditionGroup();
String event = modelFormField.getEvent();
String id = modelFormField.getCurrentContainerId(context);
+ boolean disabled = modelFormField.getDisabled(context);
StringWriter sr = new StringWriter();
sr.append("<@renderHiddenField ");
sr.append(" name=\"");
@@ -1148,7 +1152,9 @@ public final class MacroFormRenderer implements FormStringRenderer {
if (action != null) {
sr.append(action);
}
- sr.append("\" />");
+ sr.append("\" disabled=");
+ sr.append(Boolean.toString(disabled));
+ sr.append(" />");
executeMacro(writer, sr.toString());
}
@@ -1775,6 +1781,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
boolean ignCase = textFindField.getIgnoreCase(context);
boolean hideIgnoreCase = textFindField.getHideIgnoreCase();
String tabindex = modelFormField.getTabindex();
+ boolean disabled = modelFormField.getDisabled(context);
StringWriter sr = new StringWriter();
sr.append("<@renderTextFindField ");
sr.append(" name=\"");
@@ -1815,7 +1822,9 @@ public final class MacroFormRenderer implements FormStringRenderer {
sr.append(tabindex);
sr.append("\" conditionGroup=\"");
sr.append(conditionGroup);
- sr.append("\" />");
+ sr.append("\" disabled=");
+ sr.append(Boolean.toString(disabled));
+ sr.append(" />");
executeMacro(writer, sr.toString());
this.appendTooltip(writer, context, modelFormField);
}
@@ -1862,6 +1871,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
}
String defaultOptionThru = rangeFindField.getDefaultOptionThru();
String tabindex = modelFormField.getTabindex();
+ boolean disabled = modelFormField.getDisabled(context);
StringWriter sr = new StringWriter();
sr.append("<@renderRangeFindField ");
sr.append(" className=\"");
@@ -1902,7 +1912,9 @@ public final class MacroFormRenderer implements FormStringRenderer {
sr.append(conditionGroup);
sr.append("\" tabindex=\"");
sr.append(tabindex);
- sr.append("\" />");
+ sr.append("\" disabled=");
+ sr.append(Boolean.toString(disabled));
+ sr.append(" />");
executeMacro(writer, sr.toString());
this.appendTooltip(writer, context, modelFormField);
}
@@ -1996,6 +2008,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
}
String id = modelFormField.getCurrentContainerId(context);
String tabindex = modelFormField.getTabindex();
+ boolean disabled = modelFormField.getDisabled(context);
StringWriter sr = new StringWriter();
sr.append("<@renderDateFindField ");
sr.append(" className=\"");
@@ -2054,7 +2067,9 @@ public final class MacroFormRenderer implements FormStringRenderer {
sr.append(opIsEmpty);
sr.append("\" tabindex=\"");
sr.append(tabindex);
- sr.append("\" />");
+ sr.append("\" disabled=");
+ sr.append(Boolean.toString(disabled));
+ sr.append(" />");
executeMacro(writer, locale, sr.toString());
this.appendTooltip(writer, context, modelFormField);
}
@@ -2172,6 +2187,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
}
lastViewName = UtilHttp.getEncodedParameter(lastViewName);
String tabindex = modelFormField.getTabindex();
+ boolean disabled = modelFormField.getDisabled(context);
StringWriter sr = new StringWriter();
sr.append("<@renderLookupField ");
sr.append(" className=\"");
@@ -2242,7 +2258,9 @@ public final class MacroFormRenderer implements FormStringRenderer {
sr.append(conditionGroup);
sr.append("\" tabindex=\"");
sr.append(tabindex);
- sr.append("\" delegatorName=\"");
+ sr.append("\" disabled=");
+ sr.append(Boolean.toString(disabled));
+ sr.append(" delegatorName=\"");
sr.append(((HttpSession) context.get("session")).getAttribute("delegatorName").toString());
sr.append("\" />");
executeMacro(writer, sr.toString());
@@ -2519,6 +2537,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
autocomplete = "off";
}
String tabindex = modelFormField.getTabindex();
+ boolean disabled = modelFormField.getDisabled(context);
StringWriter sr = new StringWriter();
sr.append("<@renderFileField ");
sr.append(" className=\"");
@@ -2537,7 +2556,9 @@ public final class MacroFormRenderer implements FormStringRenderer {
sr.append(autocomplete);
sr.append("\" tabindex=\"");
sr.append(tabindex);
- sr.append("\" />");
+ sr.append("\" disabled=");
+ sr.append(Boolean.toString(disabled));
+ sr.append(" />");
executeMacro(writer, sr.toString());
this.makeHyperlinkString(writer, textField.getSubHyperlink(), context);
this.appendTooltip(writer, context, modelFormField);
@@ -2552,6 +2573,7 @@ public final class MacroFormRenderer implements FormStringRenderer {
String size = Integer.toString(passwordField.getSize());
String maxlength = "";
String id = modelFormField.getCurrentContainerId(context);
+ boolean disabled = modelFormField.getDisabled(context);
String autocomplete = "";
if (UtilValidate.isNotEmpty(modelFormField.getWidgetStyle())) {
className = modelFormField.getWidgetStyle();
@@ -2607,7 +2629,9 @@ public final class MacroFormRenderer implements FormStringRenderer {
sr.append(autocomplete);
sr.append("\" tabindex=\"");
sr.append(tabindex);
- sr.append("\" />");
+ sr.append("\" disabled=");
+ sr.append(Boolean.toString(disabled));
+ sr.append(" />");
executeMacro(writer, sr.toString());
this.addAsterisks(writer, context, modelFormField);
this.makeHyperlinkString(writer, passwordField.getSubHyperlink(), context);
diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/RenderableFtlFormElementsBuilder.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/RenderableFtlFormElementsBuilder.java
index 4a39a1b675..591026be33 100644
--- a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/RenderableFtlFormElementsBuilder.java
+++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/RenderableFtlFormElementsBuilder.java
@@ -272,7 +272,7 @@ public final class RenderableFtlFormElementsBuilder {
mask = textField.getMask();
}
String ajaxUrl = createAjaxParamsFromUpdateAreas(updateAreas, "", context);
- boolean disabled = modelFormField.getDisabled();
+ boolean disabled = modelFormField.getDisabled(context);
boolean readonly = textField.getReadonly();
String tabindex = modelFormField.getTabindex();
diff --git a/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl b/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl
index 201863cf11..94a9ba7b57 100644
--- a/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl
+++ b/themes/common-theme/template/macro/HtmlFormMacroLibrary.ftl
@@ -43,7 +43,7 @@ under the License.
</#macro>
<#macro renderHyperlinkField></#macro>
-<#macro renderTextField name className alert value="" textSize="" maxlength="" id="" event="" action="" disabled="" clientAutocomplete="" ajaxUrl="" ajaxEnabled="" mask="" tabindex="" readonly="" placeholder="" delegatorName="default">
+<#macro renderTextField name className alert value="" textSize="" maxlength="" id="" event="" action="" disabled=false clientAutocomplete="" ajaxUrl="" ajaxEnabled="" mask="" tabindex="" readonly="" placeholder="" delegatorName="default">
<input type="text" name="${name?default("")?html}"<#t/>
<#if ajaxEnabled?has_content && ajaxEnabled && ajaxUrl?has_content>
<#local defaultMinLength = modelTheme.getAutocompleterDefaultMinLength()>
@@ -54,11 +54,10 @@ under the License.
data-ajax-url="${ajaxUrl!}"<#rt/>
data-default-delay="${defaultDelay!300}"<#rt/>
</#if>
- <@renderClass className alert />
+ <@renderClass className alert /> <@renderDisabled disabled />
<#if value?has_content> value="${value}"</#if><#rt/>
<#if textSize?has_content> size="${textSize}"</#if><#rt/>
<#if maxlength?has_content> maxlength="${maxlength}"</#if><#rt/>
- <#if disabled?has_content && disabled> disabled="disabled"</#if><#rt/>
<#if readonly?has_content && readonly> readonly="readonly"</#if><#rt/>
<#if mask?has_content> data-mask="${mask}"</#if><#rt/>
<#if id?has_content> id="${id}"</#if><#rt/>
@@ -70,12 +69,12 @@ under the License.
/><#t/>
</#macro>
-<#macro renderTextareaField name className alert cols="" rows="" maxlength="" id="" readonly="" value="" visualEditorEnable="" buttons="" tabindex="" language="" disabled="">
+<#macro renderTextareaField name className alert cols="" rows="" maxlength="" id="" readonly="" value="" visualEditorEnable="" buttons="" tabindex="" language="" disabled=false>
<#if visualEditorEnable?has_content>
<#local className = className + " visual-editor">
</#if>
<textarea name="${name}"<#t/>
- <@renderClass className alert />
+ <@renderClass className alert /> <@renderDisabled disabled />
<#if cols?has_content> cols="${cols}"</#if><#rt/>
<#if rows?has_content> rows="${rows}"</#if><#rt/>
<#if id?has_content> id="${id}"</#if><#rt/>
@@ -84,33 +83,34 @@ under the License.
<#if tabindex?has_content> tabindex="${tabindex}"</#if><#rt/>
<#if visualEditorEnable?has_content> data-toolbar="${buttons?default("maxi")}"</#if><#rt/>
<#if language?has_content> data-language="${language!"en"}"</#if><#rt/>
- <#if disabled?has_content && disabled> disabled="disabled"</#if><#rt/>
><#t/>
<#if value?has_content>${value}</#if><#t/>
</textarea><#lt/>
</#macro>
-<#macro renderDateTimeField name className alert dateType timeDropdownParamName defaultDateTimeString localizedIconTitle timeHourName timeMinutesName minutes isTwelveHour ampmName amSelected pmSelected compositeType timeDropdown="" classString="" hour1="" hour2="" shortDateInput="" title="" value="" size="" maxlength="" id="" formName="" mask="" event="" action="" step="" timeValues="" tabindex="" disabled="" isXMLHttpRequest="">
+<#macro renderDateTimeField name className alert dateType timeDropdownParamName defaultDateTimeString localizedIconTitle timeHourName timeMinutesName minutes isTwelveHour ampmName amSelected pmSelected compositeType timeDropdown="" classString="" hour1="" hour2="" shortDateInput="" title="" value="" size="" maxlength="" id="" formName="" mask="" event="" action="" step="" timeValues="" tabindex="" disabled=false isXMLHttpRequest="">
<span class="view-calendar">
<#local cultureInfo = Static["org.apache.ofbiz.common.JsLanguageFilesMappingUtil"].getFile("datejs", .locale)/>
<#local datePickerLang = Static["org.apache.ofbiz.common.JsLanguageFilesMappingUtil"].getFile("jquery", .locale)/>
<#local timePicker = "/common/js/node_modules/@chinchilla-software/jquery-ui-timepicker-addon/dist/jquery-ui-timepicker-addon.min.js,/common/js/node_modules/@chinchilla-software/jquery-ui-timepicker-addon/dist/jquery-ui-timepicker-addon.css"/>
<#local timePickerLang = Static["org.apache.ofbiz.common.JsLanguageFilesMappingUtil"].getFile("dateTime", .locale)/>
<#if dateType!="time" >
- <input type="text" <#if tabindex?has_content> tabindex="${tabindex}"</#if> name="${name}_i18n" <@renderClass className alert /><#rt/>
+ <input type="text" name="${name}_i18n" <@renderClass className alert /> <@renderDisabled disabled />
+ <#if tabindex?has_content> tabindex="${tabindex}"</#if>
<#if title?has_content> title="${title}"</#if>
<#if value?has_content> value="${value}"</#if>
<#if size?has_content> size="${size}"</#if><#rt/>
<#if maxlength?has_content> maxlength="${maxlength}"</#if>
- <#if disabled?has_content && disabled> disabled="disabled"</#if><#rt/>
<#if id?has_content> id="${id}_i18n"</#if>/><#rt/>
<#local className = className + " date-time-picker"/>
</#if>
- <input type="hidden" <#if tabindex?has_content> tabindex="${tabindex}"</#if> name="${name}" <#if event?has_content && action?has_content> ${event}="${action}"</#if> <@renderClass className alert /><#rt/>
+ <input type="hidden" name="${name}" <@renderClass className alert /> <@renderDisabled disabled />
+ <#if tabindex?has_content> tabindex="${tabindex}"</#if>
+ <#if event?has_content && action?has_content> ${event}="${action}"</#if><#rt/>
<#if title?has_content> title="${title}"</#if>
<#if value?has_content> value="${value}"</#if>
<#if size?has_content> size="${size}"</#if><#rt/>
- <#if maxlength?has_content> maxlength="${maxlength}"</#if>
+ <#if maxlength?has_content> maxlength="${maxlength}"</#if>
<#if mask?has_content> data-mask="${mask}"</#if><#rt/>
<#if cultureInfo?has_content> data-cultureinfo="${cultureInfo}"</#if><#rt/>
<#if datePickerLang?has_content> data-datepickerlang="${datePickerLang}"</#if><#rt/>
@@ -119,7 +119,7 @@ under the License.
data-shortdate="${shortDateInput?string}"
<#if id?has_content> id="${id}"</#if>/><#rt/>
<#if timeDropdown?has_content && timeDropdown=="time-dropdown">
- <select name="${timeHourName}" <#if classString?has_content>class="${classString}"</#if>><#rt/>
+ <select name="${timeHourName}" <@renderDisabled disabled /> <#if classString?has_content>class="${classString}"</#if>><#rt/>
<#if isTwelveHour>
<#local x=11>
<#list 0..x as i>
@@ -131,7 +131,7 @@ under the License.
<option value="${i}"<#if hour2?has_content><#if i=hour2> selected="selected"</#if></#if>>${i}</option><#rt/>
</#list>
</#if>
- </select>:<select name="${timeMinutesName}" <#if classString?has_content>class="${classString}"</#if>><#rt/>
+ </select>:<select name="${timeMinutesName}" <@renderDisabled disabled /> <#if classString?has_content>class="${classString}"</#if>><#rt/>
<#local values = Static["org.apache.ofbiz.base.util.StringUtil"].toList(timeValues)>
<#list values as i>
<option value="${i}"<#if minutes?has_content><#if i?number== minutes ||((i?number==(60 -step?number)) && (minutes > 60 - (step?number/2))) || ((minutes > i?number )&& (minutes < i?number+(step?number/2))) || ((minutes < i?number )&& (minutes > i?number-(step?number/2)))> selected="selected"</#if></#if>>${i}</option><#rt/>
@@ -139,7 +139,7 @@ under the License.
</select>
<#rt/>
<#if isTwelveHour>
- <select name="${ampmName}" <#if classString?has_content>class="${classString}"</#if>><#rt/>
+ <select name="${ampmName}" <@renderDisabled disabled /> <#if classString?has_content>class="${classString}"</#if>><#rt/>
<option value="AM" <#if "selected" == amSelected>selected="selected"</#if> >AM</option><#rt/>
<option value="PM" <#if "selected" == pmSelected>selected="selected"</#if>>PM</option><#rt/>
</select>
@@ -155,17 +155,24 @@ under the License.
</span>
</#macro>
-<#macro renderDropDownField name className alert id formName 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="" disabled="">
+<#macro renderDropDownField name className alert id formName 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="" disabled=false>
<#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 ajaxEnabled> class="autoCompleteDropDown"</#if><#if event?has_content> ${event}="${action}"</#if><#if size?has_content> size="${size}"</#if><#if tabindex?has_content> tabindex="${tabindex}"</#if><#if disabled?has_content && disabled> disabled</#if><#rt/>
- <#if otherFieldName?has_content>
- data-other-field-name="${otherFieldName}"
- data-other-field-value='${otherValue?js_string}'
- data-other-field-size='${otherFieldSize}'
- </#if>>
+ <select name="${name?default("")}<#rt/>"
+ <@renderClass className alert /> <@renderDisabled disabled />
+ <#if id?has_content> id="${id}"</#if>
+ <#if multiple?has_content> multiple="multiple"</#if>
+ <#if ajaxEnabled> class="autoCompleteDropDown"</#if>
+ <#if event?has_content> ${event}="${action}"</#if>
+ <#if size?has_content> size="${size}"</#if>
+ <#if tabindex?has_content> tabindex="${tabindex}"</#if><#rt/>
+ <#if otherFieldName?has_content>
+ data-other-field-name="${otherFieldName}"
+ data-other-field-value='${otherValue?js_string}'
+ data-other-field-size='${otherFieldSize}'
+ </#if>>
<#if firstInList?has_content && currentValue?has_content && !multiple?has_content>
<option selected="selected" value="${currentValue}">${explicitDescription?replace("\'","'")}</option><#rt/><#-- replace("\'","'") related to OFBIZ-6504 -->
</#if>
@@ -188,61 +195,66 @@ under the License.
</#if>
</#macro>
-<#macro renderCheckField items className alert id name action conditionGroup="" allChecked="" currentValue="" event="" tabindex="" disabled="">
+<#macro renderCheckField items className alert id name action conditionGroup="" allChecked="" currentValue="" event="" tabindex="" disabled=false>
<#if conditionGroup?has_content>
- <input type="hidden" name="${name}_grp" value="${conditionGroup}"/>
+ <input type="hidden" name="${name}_grp" value="${conditionGroup}" <@renderDisabled disabled />/>
</#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/>
- <#if disabled?has_content && disabled> disabled="disabled"</#if><#rt/>
+ <input <@renderDisabled disabled /> type="checkbox"<#if (item_index == 0)> id="${id}"</#if><#rt/><#if tabindex?has_content> tabindex="${tabindex}"</#if><#rt/>
<#if allChecked?has_content && allChecked> checked="checked" <#elseif allChecked?has_content && !allChecked>
- <#elseif item.checked?has_content && item.checked?boolean> checked="checked"</#if>
- name="${name?default("")?html}" value="${item.value?default("")?html}"<#if event?has_content> ${event}="${action}"</#if>/><#rt/>
+ <#elseif item.checked?has_content && item.checked?boolean> checked="checked"</#if>
+ name="${name?default("")?html}" value="${item.value?default("")?html}"<#if event?has_content> ${event}="${action}"</#if>/><#rt/>
${item.description?default("")}
</span>
</#list>
</#macro>
-<#macro renderRadioField items className alert name action conditionGroup="" currentValue="" noCurrentSelectedKey="" event="" tabindex="" disabled="">
+<#macro renderRadioField items className alert name action conditionGroup="" currentValue="" noCurrentSelectedKey="" event="" tabindex="" disabled=false>
<#if conditionGroup?has_content>
- <input type="hidden" name="${name}_grp" value="${conditionGroup}"/>
+ <input type="hidden" name="${name}_grp" value="${conditionGroup}" <@renderDisabled disabled />/>
</#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/>
- <#elseif noCurrentSelectedKey?has_content && noCurrentSelectedKey == item.key> checked="checked"</#if><#if disabled?has_content && disabled> disabled="disabled"</#if>
- name="${name?default("")?html}" value="${item.key?default("")?html}"<#if event?has_content> ${event}="${action}"</#if>/><#rt/>
+ <input type="radio" <@renderDisabled disabled />
+ <#if currentValue?has_content>
+ <#if currentValue==item.key> checked="checked"</#if>
+ <#if tabindex?has_content> tabindex="${tabindex}"</#if><#rt/>
+ <#elseif noCurrentSelectedKey?has_content && noCurrentSelectedKey == item.key> checked="checked"</#if>
+ name="${name?default("")?html}" value="${item.key?default("")?html}"
+ <#if event?has_content> ${event}="${action}"</#if>/><#rt/>
${item.description}
</span>
</#list>
</#macro>
-<#macro renderSubmitField buttonType className alert formName action imgSrc ajaxUrl id title="" name="" event="" confirmation="" containerId="" tabindex="">
+<#macro renderSubmitField buttonType className alert formName action imgSrc ajaxUrl id title="" name="" event="" confirmation="" containerId="" tabindex="" disabled=false>
<#if buttonType=="text-link">
<a <@renderClass className alert /> href="javascript:document.${formName}.submit()" <#if confirmation?has_content>onclick="return confirm('${confirmation?js_string}');"</#if>><#if title?has_content>${title}</#if> </a>
<#elseif buttonType=="image">
- <input type="image" src="${imgSrc}" <@renderClass className alert /><#if name?has_content> name="${name}"</#if>
+ <input type="image" src="${imgSrc}" <@renderClass className alert /> <@renderDisabled disabled /> <#if name?has_content> name="${name}"</#if>
<#if title?has_content> alt="${title}"</#if><#if event?has_content> ${event}="${action}"</#if>
<#if confirmation?has_content>onclick="return confirm('${confirmation?js_string}');"</#if>/>
<#else>
- <input type="<#if containerId?has_content>button<#else>submit</#if>" <@renderClass className alert />
- <#if id?has_content> id="${id}"</#if><#rt/>
- <#if name??> name="${name}"</#if><#if title?has_content> value="${title}"</#if><#if event?has_content> ${event}="${action}"</#if>
- <#if containerId?has_content> onclick="<#if confirmation?has_content>if (confirm('${confirmation?js_string}')) </#if>ajaxSubmitFormUpdateAreas('${formName}', '${ajaxUrl}')"
- <#else><#if confirmation?has_content> onclick="return confirm('${confirmation?js_string}');"</#if>
- <#if tabindex?has_content> tabindex="${tabindex}"</#if><#rt/>
- </#if>/>
- <#if containerId?has_content>
- <#-- the form will be submit by ajax, we inform that perss enter need to call -->
- <script>
- $("form[name='${formName}']").keypress(function(e) {
- if (e.which === 13 && ! $(e.target).is('textarea')) {
- e.preventDefault();
- $("#${id!}").click();
- }});
- </script>
- </#if>
+ <input type="<#if containerId?has_content>button<#else>submit</#if>" <@renderClass className alert /> <@renderDisabled disabled />
+ <#if id?has_content> id="${id}"</#if><#rt/>
+ <#if name??> name="${name}"</#if>
+ <#if title?has_content> value="${title}"</#if>
+ <#if event?has_content> ${event}="${action}"</#if>
+ <#if containerId?has_content> onclick="<#if confirmation?has_content>if (confirm('${confirmation?js_string}')) </#if>ajaxSubmitFormUpdateAreas('${formName}', '${ajaxUrl}')"
+ <#else><#if confirmation?has_content> onclick="return confirm('${confirmation?js_string}');"</#if>
+ <#if tabindex?has_content> tabindex="${tabindex}"</#if><#rt/>
+ </#if>/>
+ <#if containerId?has_content>
+ <#-- the form will be submit by ajax, we inform that perss enter need to call -->
+ <script>
+ $("form[name='${formName}']").keypress(function(e) {
+ if (e.which === 13 && ! $(e.target).is('textarea')) {
+ e.preventDefault();
+ $("#${id!}").click();
+ }});
+ </script>
+ </#if>
</#if>
</#macro>
@@ -250,11 +262,14 @@ under the License.
<input type="reset" <@renderClass className alert /> name="${name}"<#if title?has_content> value="${title}"</#if>/>
</#macro>
-<#macro renderHiddenField name conditionGroup="" value="" id="" event="" action="">
+<#macro renderHiddenField name conditionGroup="" value="" id="" event="" action="" disabled=false>
<#if conditionGroup?has_content>
- <input type="hidden" name="${name}_grp" value="${conditionGroup}"/>
+ <input type="hidden" name="${name}_grp" value="${conditionGroup}" <@renderDisabled disabled />/>
</#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>/>
+ <input type="hidden" name="${name}" <@renderDisabled disabled />
+ <#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>
<#macro renderIgnoredField></#macro>
@@ -396,12 +411,12 @@ under the License.
<#macro renderFormatEmptySpace> </#macro>
-<#macro renderTextFindField name defaultOption opBeginsWith opContains opIsEmpty opNotEqual className alert hideIgnoreCase ignCase ignoreCase conditionGroup="" 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="" disabled=false>
<#if conditionGroup?has_content>
- <input type="hidden" name="${name}_grp" value="${conditionGroup}"/>
+ <input type="hidden" name="${name}_grp" value="${conditionGroup}" <@renderDisabled disabled />/>
</#if>
<#if opEquals?has_content>
- <select <#if name?has_content>name="${name}_op"</#if> class="selectBox"><#rt/>
+ <select <@renderDisabled disabled /> <#if name?has_content>name="${name}_op"</#if> class="selectBox"<#rt/>
<option value="equals"<#if defaultOption=="equals"> selected="selected"</#if>>${opEquals}</option><#rt/>
<option value="like"<#if defaultOption=="like"> selected="selected"</#if>>${opBeginsWith}</option><#rt/>
<option value="contains"<#if defaultOption=="contains"> selected="selected"</#if>>${opContains}</option><#rt/>
@@ -411,20 +426,25 @@ under the License.
<#else>
<input type="hidden" name=<#if name?has_content> "${name}_op"</#if> value="${defaultOption}"/><#rt/>
</#if>
- <input type="text" <@renderClass className alert /> name="${name}"<#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/>
+ <input type="text" <@renderClass className alert /> <@renderDisabled disabled /> name="${name}"
+ <#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/></#if>
<#if hideIgnoreCase>
<input type="hidden" name="${name}_ic" value=<#if ignCase>"Y"<#else> ""</#if>/><#rt/>
<#else>
- <input type="checkbox" name="${name}_ic" value="Y" <#if ignCase> checked="checked"</#if> /> ${ignoreCase}<#rt/>
+ <input type="checkbox" name="${name}_ic" value="Y" <#if ignCase> checked="checked"</#if> <@renderDisabled disabled />/> ${ignoreCase}<#rt/>
</#if>
<#if titleStyle?has_content></span>
</#if>
</#macro>
-<#macro renderDateFindField className alert id 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="">
+<#macro renderDateFindField className alert id 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="" disabled=false>
<#if conditionGroup?has_content>
- <input type="hidden" name="${name}_grp" value="${conditionGroup}"/>
+ <input type="hidden" name="${name}_grp" value="${conditionGroup}" <@renderDisabled disabled />/>
</#if>
<#if dateType != "time">
<#local className = className + " date-time-picker"/>
@@ -435,7 +455,7 @@ under the License.
<#local timePicker = "/common/js/node_modules/@chinchilla-software/jquery-ui-timepicker-addon/dist/jquery-ui-timepicker-addon.min.js,/common/js/node_modules/@chinchilla-software/jquery-ui-timepicker-addon/dist/jquery-ui-timepicker-addon.css"/>
<#local timePickerLang = Static["org.apache.ofbiz.common.JsLanguageFilesMappingUtil"].getFile("dateTime", .locale)/>
<span class="view-calendar">
- <input id="${id}_fld0_value" type="text" <@renderClass className alert />
+ <input id="${id}_fld0_value" type="text" <@renderClass className alert /> <@renderDisabled disabled />
<#if name?has_content> name="${name?html}_fld0_value"</#if>
<#if localizedInputTitle?has_content> title="${localizedInputTitle}"</#if>
<#if value?has_content> value="${value}"</#if>
@@ -451,7 +471,7 @@ under the License.
<#if titleStyle?has_content>
<span class="${titleStyle}"><#rt/>
</#if>
- <select<#if name?has_content> name="${name}_fld0_op"</#if> class="selectBox"><#rt/>
+ <select <@renderDisabled disabled /> <#if name?has_content> name="${name}_fld0_op"</#if> class="selectBox"><#rt/>
<option value="equals"<#if defaultOptionFrom=="equals"> selected="selected"</#if>>${opEquals}</option><#rt/>
<option value="sameDay"<#if defaultOptionFrom=="sameDay"> selected="selected"</#if>>${opSameDay}</option><#rt/>
<option value="greaterThanFromDayStart"<#if defaultOptionFrom=="greaterThanFromDayStart"> selected="selected"</#if>>${opGreaterThanFromDayStart}</option><#rt/>
@@ -461,7 +481,7 @@ under the License.
</span><#rt/>
</#if>
<#rt/>
- <input id="${id}_fld1_value" type="text" <@renderClass className alert />
+ <input id="${id}_fld1_value" type="text" <@renderClass className alert /> <@renderDisabled disabled />
<#if name?has_content> name="${name}_fld1_value"</#if>
<#if localizedInputTitle??> title="${localizedInputTitle?html}"</#if>
<#if value2?has_content> value="${value2}"</#if>
@@ -471,12 +491,12 @@ under the License.
<#if datePickerLang?has_content> data-datepickerlang="${datePickerLang}"</#if><#rt/>
<#if timePicker?has_content> data-timePicker="${timePicker}"</#if><#rt/>
<#if timePickerLang?has_content> data-timepickerlang="${timePickerLang}"</#if><#rt/>
- data-shortdate="${shortDateInput?string}"
+ data-shortdate="${shortDateInput?string}"
/><#rt/>
<#if titleStyle?has_content>
<span class="${titleStyle}"><#rt/>
</#if>
- <select name=<#if name?has_content>"${name}_fld1_op"</#if> class="selectBox"><#rt/>
+ <select name=<#if name?has_content>"${name}_fld1_op"</#if> class="selectBox" <@renderDisabled disabled />><#rt/>
<option value="opLessThan"<#if defaultOptionThru=="opLessThan"> selected="selected"</#if>>${opLessThan}</option><#rt/>
<option value="upToDay"<#if defaultOptionThru=="upToDay"> selected="selected"</#if>>${opUpToDay}</option><#rt/>
<option value="upThruDay"<#if defaultOptionThru=="upThruDay"> selected="selected"</#if>>${opUpThruDay}</option><#rt/>
@@ -488,15 +508,21 @@ under the License.
</span>
</#macro>
-<#macro renderRangeFindField className alert value defaultOptionFrom opEquals opGreaterThan opGreaterThanEquals opLessThan opLessThanEquals defaultOptionThru conditionGroup="" 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="" disabled=false>
<#if conditionGroup?has_content>
- <input type="hidden" name="${name}_grp" value="${conditionGroup}"/>
+ <input type="hidden" name="${name}_grp" value="${conditionGroup}" <@renderDisabled disabled />/>
</#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/>
+ <input type="text" <@renderClass className alert /> <@renderDisabled disabled />
+ <#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/>
</#if>
- <select <#if name?has_content>name="${name}_fld0_op"</#if> class="selectBox"><#rt/>
+ <select <@renderDisabled disabled /> <#if name?has_content>name="${name}_fld0_op"</#if> class="selectBox"><#rt/>
<option value="equals"<#if defaultOptionFrom=="equals"> selected="selected"</#if>>${opEquals}</option><#rt/>
<option value="greaterThan"<#if defaultOptionFrom=="greaterThan"> selected="selected"</#if>>${opGreaterThan}</option><#rt/>
<option value="greaterThanEqualTo"<#if defaultOptionFrom=="greaterThanEqualTo"> selected="selected"</#if>>${opGreaterThanEquals}</option><#rt/>
@@ -505,11 +531,16 @@ under the License.
</span><#rt/>
</#if>
<br /><#rt/>
- <input type="text" <@renderClass className alert /><#if name?has_content> name="${name}_fld1_value"</#if><#if value2?has_content> value="${value2}"</#if><#if size?has_content> size="${size}"</#if><#if maxlength?has_content> maxlength="${maxlength}"</#if><#if autocomplete?has_content> autocomplete="off"</#if>/><#rt/>
+ <input type="text" <@renderClass className alert /> <@renderDisabled disabled />
+ <#if name?has_content> name="${name}_fld1_value"</#if>
+ <#if value2?has_content> value="${value2}"</#if>
+ <#if size?has_content> size="${size}"</#if>
+ <#if maxlength?has_content> maxlength="${maxlength}"</#if>
+ <#if autocomplete?has_content> autocomplete="off"</#if>/><#rt/>
<#if titleStyle?has_content>
- <span class="${titleStyle}" ><#rt/>
+ <span class="${titleStyle}"><#rt/>
</#if>
- <select name=<#if name?has_content>"${name}_fld1_op"</#if> class="selectBox"><#rt/>
+ <select <@renderDisabled disabled /> name=<#if name?has_content>"${name}_fld1_op"</#if> class="selectBox"><#rt/>
<option value="lessThan"<#if defaultOptionThru=="lessThan"> selected="selected"</#if>>${opLessThan?html}</option><#rt/>
<option value="lessThanEqualTo"<#if defaultOptionThru=="lessThanEqualTo"> selected="selected"</#if>>${opLessThanEquals?html}</option><#rt/>
</select><#rt/>
@@ -553,7 +584,7 @@ Parameter: lastViewName, String, optional - If the ajaxEnabled parameter is true
Parameter: tabindex, String, optional - HTML tabindex number.
Parameter: delegatorName, String, optional - name of the delegator in context.
-->
-<#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="" la [...]
+<#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="" la [...]
<#if Static["org.apache.ofbiz.widget.model.ModelWidget"].widgetBoundaryCommentsEnabled(context)><#-- context is always null here, but this is handled in widgetBoundaryCommentsEnabled -->
<!-- @renderLookupField -->
</#if>
@@ -571,13 +602,16 @@ Parameter: delegatorName, String, optional - name of the delegator in context.
<#local ajaxUrl = ajaxUrl + "&_LAST_VIEW_NAME_=" + lastViewName />
</#if>
<#if conditionGroup?has_content>
- <input type="hidden" name="${name}_grp" value="${conditionGroup}"/>
+ <input type="hidden" name="${name}_grp" value="${conditionGroup}" <@renderDisabled disabled />/>
</#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/>
+ <input type="hidden" <@renderDisabled disabled />
+ <#if name?has_content> name="${name}"</#if>
+ <#if tabindex?has_content> tabindex="${tabindex}"</#if>
<#else>
- <input type="text" <@renderClass className alert /><#if name?has_content> name="${name}"</#if><#if value?has_content> value="${value}"</#if><#if tabindex?has_content> tabindex="${tabindex}"</#if><#rt/>
+ <input type="text" <@renderClass className alert /> <@renderDisabled disabled />
+ <#if name?has_content> name="${name}"</#if><#if value?has_content> value="${value}"</#if><#if tabindex?has_content> tabindex="${tabindex}"</#if><#rt/>
<#if size?has_content> size="${size}"</#if><#if maxlength?has_content> maxlength="${maxlength}"</#if><#if id?has_content> id="${id}"</#if><#rt/>
<#if readonly?has_content && readonly> readonly="readonly"</#if><#rt/><#if event?has_content && action?has_content> ${event}="${action}"</#if><#rt/>
<#if autocomplete?has_content> autocomplete="off"</#if><#rt/>
@@ -659,12 +693,31 @@ Parameter: delegatorName, String, optional - name of the delegator in context.
</#if>
</#macro>
-<#macro renderFileField className alert name="" value="" size="" maxlength="" autocomplete="" tabindex="">
- <input type="file" <@renderClass className alert /><#if name?has_content> name="${name}"</#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/>
+<#macro renderFileField className alert name="" value="" size="" maxlength="" autocomplete="" tabindex="" disabled=false>
+ <input type="file"
+ <@renderClass className alert />
+ <@renderDisabled disabled />
+ <#if name?has_content> name="${name}"</#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/>
</#macro>
-<#macro renderPasswordField className alert name="" value="" size="" maxlength="" id="" autocomplete="" tabindex="">
- <input type="password" <@renderClass className alert /><#if name?has_content> name="${name}"</#if><#if value?has_content> value="${value}"</#if><#if size?has_content> size="${size}"</#if><#if maxlength?has_content> maxlength="${maxlength}"</#if><#if id?has_content> id="${id}"</#if><#if autocomplete?has_content> autocomplete="off"</#if><#if tabindex?has_content> tabindex="${tabindex}"</#if><#rt/>/>
+
+<#macro renderPasswordField className alert name="" value="" size="" maxlength="" id="" autocomplete="" tabindex="" disabled=false>
+ <input type="password"
+ <@renderClass className alert />
+ <@renderDisabled disabled />
+ <#if name?has_content> name="${name}"</#if>
+ <#if value?has_content> value="${value}"</#if>
+ <#if size?has_content> size="${size}"</#if>
+ <#if maxlength?has_content> maxlength="${maxlength}"</#if>
+ <#if id?has_content> id="${id}"</#if>
+ <#if autocomplete?has_content> autocomplete="off"</#if>
+ <#if tabindex?has_content> tabindex="${tabindex}"</#if>/><#rt/>
</#macro>
+
<#macro renderImageField action value="" description="" alternate="" style="" event=""><img<#if value?has_content> src="${value}"</#if><#if description?has_content> title="${description}"</#if> alt="<#if alternate?has_content>${alternate}"</#if><#if style?has_content> class="${style}"</#if><#if event?has_content> ${event?html}="${action}" </#if>/></#macro>
<#macro renderBanner style="" leftStyle="" rightStyle="" leftText="" text="" rightText="">
@@ -722,10 +775,14 @@ Parameter: delegatorName, String, optional - name of the delegator in context.
<#if requiredField=="true"><#if !requiredStyle?has_content>*</#if></#if>
</#macro>
-<#macro makeHiddenFormLinkForm actionUrl name parameters targetWindow="">
+<#macro renderDisabled disabled>
+ <#if disabled?has_content && disabled> disabled </#if>
+</#macro>
+
+<#macro makeHiddenFormLinkForm actionUrl name parameters targetWindow="" disabled=false>
<form method="post" action="${actionUrl}" <#if targetWindow?has_content>target="${targetWindow}"</#if> onsubmit="javascript:submitFormDisableSubmits(this)" name="${name}">
<#list parameters as parameter>
- <input name="${parameter.name}" value="${parameter.value?html}" type="hidden"/>
+ <input name="${parameter.name}" value="${parameter.value?html}" type="hidden" <@renderDisabled disabled />/>
</#list>
</form>
</#macro>