You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Deepak Dixit <de...@hotwax.co> on 2018/07/14 05:13:06 UTC
Re: svn commit: r1835869 - in /ofbiz/ofbiz-framework/trunk:
framework/widget/dtd/ framework/widget/src/main/java/org/apache/ofbiz/widget/model/
framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/ framework/widget/src/main/java/org/apache/ofbiz...
Hi Suraj,
You need to add renderEmptyFormDataMessage macro for rest of the macro
template file as well.
Thanks & Regards
--
Deepak Dixit
On Sat, Jul 14, 2018 at 10:40 AM, <su...@apache.org> wrote:
> Author: surajk
> Date: Sat Jul 14 05:10:00 2018
> New Revision: 1835869
>
> URL: http://svn.apache.org/viewvc?rev=1835869&view=rev
> Log:
> Improved: Empty header row should not render if list to render in file is
> empty.
> (OFBIZ-7598)
>
> Modified:
> ofbiz/ofbiz-framework/trunk/framework/widget/dtd/widget-form.xsd
> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/model/ModelForm.java
> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormRenderer.java
> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java
> ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/fo/FoFormRenderer.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/HtmlFormMacroLibrary.ftl
>
> 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=1835869&r1=
> 1835868&r2=1835869&view=diff
> ============================================================
> ==================
> --- ofbiz/ofbiz-framework/trunk/framework/widget/dtd/widget-form.xsd
> (original)
> +++ ofbiz/ofbiz-framework/trunk/framework/widget/dtd/widget-form.xsd Sat
> Jul 14 05:10:00 2018
> @@ -86,6 +86,7 @@ under the License.
> <xs:attribute name="style" type="xs:string" />
> <xs:attribute name="focus-field-name" type="xs:string" />
> <xs:attribute name="title" type="xs:string" />
> + <xs:attribute name="empty-form-data-message" type="xs:string"
> />
> <xs:attribute name="tooltip" type="xs:string" />
> <xs:attribute name="list-name" type="xs:string">
> <xs:annotation>
> @@ -327,6 +328,7 @@ under the License.
> <xs:attribute name="style" type="xs:string" />
> <xs:attribute name="focus-field-name" type="xs:string" />
> <xs:attribute name="title" type="xs:string" />
> + <xs:attribute name="empty-form-data-message" type="xs:string"
> />
> <xs:attribute name="tooltip" type="xs:string" />
> <xs:attribute name="list-name" type="xs:string">
> <xs:annotation>
>
> Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/model/ModelForm.java
> URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/
> framework/widget/src/main/java/org/apache/ofbiz/widget/
> model/ModelForm.java?rev=1835869&r1=1835868&r2=1835869&view=diff
> ============================================================
> ==================
> --- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/model/ModelForm.java (original)
> +++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/model/ModelForm.java Sat Jul 14 05:10:00 2018
> @@ -147,7 +147,7 @@ public abstract class ModelForm extends
> private final String formWidgetAreaStyle;
> private final boolean groupColumns;
> private final String headerRowStyle;
> - private final boolean hideHeader;
> + private boolean hideHeader;
> private final String itemIndexSeparator;
> private final List<String> lastOrderFields;
> private final String listEntryName;
> @@ -184,6 +184,7 @@ public abstract class ModelForm extends
> private final String targetType;
> private final FlexibleStringExpander targetWindowExdr;
> private final String title;
> + private final String emptyFormDataMessage;
> private final String tooltip;
> private final String type;
> private final boolean useRowSubmit;
> @@ -241,6 +242,13 @@ public abstract class ModelForm extends
> title = parentModel.title;
> }
> this.title = title;
> + String emptyFormDataMessage = formElement.getAttribute("
> empty-form-data-message");
> + if (emptyFormDataMessage.isEmpty() && parentModel != null) {
> + emptyFormDataMessage = parentModel.emptyFormDataMessage;
> + } else if (emptyFormDataMessage.isEmpty()) {
> + emptyFormDataMessage = UtilProperties.getMessage("CommonUiLabels",
> "CommonNoRecordFound", Locale.getDefault());
> + }
> + this.emptyFormDataMessage = emptyFormDataMessage;
> String tooltip = formElement.getAttribute("tooltip");
> if (tooltip.isEmpty() && parentModel != null) {
> tooltip = parentModel.tooltip;
> @@ -1007,6 +1015,9 @@ public abstract class ModelForm extends
> public boolean getHideHeader() {
> return this.hideHeader;
> }
> + public void setHideHeader(Boolean hideHeader) {
> + this.hideHeader = hideHeader;
> + }
>
> public String getItemIndexSeparator() {
> if (UtilValidate.isNotEmpty(this.itemIndexSeparator)) {
> @@ -1374,6 +1385,10 @@ public abstract class ModelForm extends
> return this.title;
> }
>
> + public String getEmptyFormDataMessage() {
> + return this.emptyFormDataMessage;
> + }
> +
> public String getTooltip() {
> return this.tooltip;
> }
>
> Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormRenderer.java
> URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/
> framework/widget/src/main/java/org/apache/ofbiz/widget/
> renderer/FormRenderer.java?rev=1835869&r1=1835868&r2=1835869&view=diff
> ============================================================
> ==================
> --- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormRenderer.java (original)
> +++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormRenderer.java Sat Jul 14
> 05:10:00 2018
> @@ -47,6 +47,7 @@ import org.apache.ofbiz.widget.model.Fie
> import org.apache.ofbiz.widget.model.ModelForm;
> import org.apache.ofbiz.widget.model.ModelForm.FieldGroup;
> import org.apache.ofbiz.widget.model.ModelForm.FieldGroupBase;
> +import org.apache.ofbiz.widget.model.ModelFormField.DisplayField;
> import org.apache.ofbiz.widget.model.ModelFormField;
> import org.apache.ofbiz.widget.model.ModelGrid;
>
> @@ -932,11 +933,13 @@ public class FormRenderer {
> formStringRenderer.renderFormatListWrapperOpen(writer, context,
> modelForm);
>
> int numOfColumns = 0;
> + this.checkFormDataAndSetHeader(context);
> // ===== render header row =====
> if (!modelForm.getHideHeader()) {
> numOfColumns = this.renderHeaderRow(writer, context);
> + } else {
> + formStringRenderer.renderEmptyFormDataMessage(writer,
> context, modelForm);
> }
> -
> // ===== render the item rows =====
> this.renderItemRows(writer, context, formStringRenderer, true,
> numOfColumns);
>
> @@ -958,9 +961,12 @@ public class FormRenderer {
> formStringRenderer.renderFormatListWrapperOpen(writer, context,
> modelForm);
>
> int numOfColumns = 0;
> + this.checkFormDataAndSetHeader(context);
> // ===== render header row =====
> if (!modelForm.getHideHeader()) {
> numOfColumns = this.renderHeaderRow(writer, context);
> + } else {
> + formStringRenderer.renderEmptyFormDataMessage(writer,
> context, modelForm);
> }
>
> // ===== render the item rows =====
> @@ -973,7 +979,41 @@ public class FormRenderer {
> }
>
> }
> -
> + private void checkFormDataAndSetHeader(Map<String, Object> context) {
> + String lookupName = modelForm.getListName();
> + Object obj = context.get(lookupName);
> + if (obj == null) {
> + if (Debug.verboseOn())
> + Debug.logVerbose("No object for list or iterator name ["
> + lookupName + "] found, so not rendering rows.", module);
> + return;
> + }
> + // if list is empty, do not render rows
> + Iterator<?> iter = null;
> + if (obj instanceof Iterator<?>) {
> + iter = (Iterator<?>) obj;
> + } else if (obj instanceof List<?>) {
> + iter = ((List<?>) obj).listIterator();
> + }
> + int itemIndex = -1;
> + if (iter instanceof EntityListIterator) {
> + EntityListIterator eli = (EntityListIterator) iter;
> + try {
> + if(eli.getResultsSizeAfterPartialList() > 0){
> + itemIndex++;
> + }
> + } catch (GenericEntityException gee) {
> + Debug.logError(gee,module);
> + }
> + } else {
> + while (iter.hasNext()) {
> + itemIndex++;
> + break;
> + }
> + }
> + if (itemIndex < 0) {
> + modelForm.setHideHeader(true);
> + }
> + }
> private void renderSingleFormString(Appendable writer, Map<String,
> Object> context,
> int positions) throws IOException {
> List<ModelFormField> tempFieldList = new LinkedList<>();
>
> Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java
> URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/
> framework/widget/src/main/java/org/apache/ofbiz/widget/
> renderer/FormStringRenderer.java?rev=1835869&r1=1835868&
> r2=1835869&view=diff
> ============================================================
> ==================
> --- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java (original)
> +++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/FormStringRenderer.java Sat Jul 14
> 05:10:00 2018
> @@ -99,4 +99,5 @@ public interface FormStringRenderer {
> public void renderContainerFindField(Appendable writer, Map<String,
> Object> context, ModelFormField.ContainerField containerField) throws
> IOException;
> public void renderFieldGroupOpen(Appendable writer, Map<String,
> Object> context, ModelForm.FieldGroup fieldGroup) throws IOException;
> public void renderFieldGroupClose(Appendable writer, Map<String,
> Object> context, ModelForm.FieldGroup fieldGroup) throws IOException;
> + public void renderEmptyFormDataMessage(Appendable writer,
> Map<String, Object> context, ModelForm modelForm) throws IOException;
> }
>
> Modified: ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/fo/FoFormRenderer.java
> URL: http://svn.apache.org/viewvc/ofbiz/ofbiz-framework/trunk/
> framework/widget/src/main/java/org/apache/ofbiz/widget/
> renderer/fo/FoFormRenderer.java?rev=1835869&r1=1835868&
> r2=1835869&view=diff
> ============================================================
> ==================
> --- ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/fo/FoFormRenderer.java (original)
> +++ ofbiz/ofbiz-framework/trunk/framework/widget/src/main/
> java/org/apache/ofbiz/widget/renderer/fo/FoFormRenderer.java Sat Jul 14
> 05:10:00 2018
> @@ -438,4 +438,7 @@ public class FoFormRenderer extends Html
>
> public void renderContainerFindField(Appendable writer, Map<String,
> Object> context, ContainerField containerField) throws IOException {
> }
> + public void renderEmptyFormDataMessage(Appendable writer,
> Map<String, Object> context, ModelForm modelForm) throws IOException {
> + // TODO
> + }
> }
>
> 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=1835869&r1=1835868&r2=1835869&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 Sat
> Jul 14 05:10:00 2018
> @@ -1546,7 +1546,14 @@ public final class MacroFormRenderer imp
> executeMacro(writer, sr.toString());
>
> }
> -
> + public void renderEmptyFormDataMessage(Appendable writer,
> Map<String, Object> context, ModelForm modelForm) throws IOException {
> + StringWriter sr = new StringWriter();
> + sr.append("<@renderEmptyFormDataMessage");
> + sr.append(" message=\"");
> + sr.append(modelForm.getEmptyFormDataMessage());
> + sr.append("\" />");
> + executeMacro(writer, sr.toString());
> + }
> public void renderFormatListWrapperClose(Appendable writer,
> Map<String, Object> context, ModelForm modelForm) throws IOException {
> StringWriter sr = new StringWriter();
> sr.append("<@renderFormatListWrapperClose");
>
> 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=1835869&r1=1835868&r2=1835869&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
> Sat Jul 14 05:10:00 2018
> @@ -317,7 +317,9 @@ under the License.
> ${title}<#t/>
> </label><#t/>
> </#macro>
> -
> +<#macro renderEmptyFormDataMessage message>
> + <h3><#if message?has_content>${message}</#if></h3>
> +</#macro>
> <#macro renderSingleFormFieldTitle></#macro>
>
> <#macro renderFormOpen linkUrl formType name viewIndexField viewSizeField
> viewIndex viewSize targetWindow="" containerId="" containerStyle=""
> autocomplete="" useRowSubmit="" focusFieldName="" hasRequiredField="">
>
>
>