You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ofbiz.apache.org by Hans Bakker <ma...@antwebsystems.com> on 2009/01/16 07:42:30 UTC

Re: svn commit: r733486 - in /ofbiz/trunk/framework/widget: dtd/widget-form.xsd src/org/ofbiz/widget/form/ModelFormField.java src/org/ofbiz/widget/html/HtmlFormRenderer.java

this change makes the description of the hyperlink appear twice.
have a look at:
https://localhost3:8443/content/control/EditContent?contentId=ARTICLE_WRAP

where the 'goto dataresource" button show twice"


On Sun, 2009-01-11 at 16:35 +0000, jonesde@apache.org wrote:
> Author: jonesde
> Date: Sun Jan 11 08:35:46 2009
> New Revision: 733486
> 
> URL: http://svn.apache.org/viewvc?rev=733486&view=rev
> Log:
> A few enhancements, including some fixes and enhancements for the loopkup field type to support the sub-hyperlink which was already in the xsd, the asterisk for required fields, and the on event stuff for the ajax auto-complete and other such things; also changed all fields to have a default id with formName_fieldName so that it doesn't always have to be explicitly declared but also won't conflict form multiform screens
> 
> Modified:
>     ofbiz/trunk/framework/widget/dtd/widget-form.xsd
>     ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java
>     ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
> 
> Modified: ofbiz/trunk/framework/widget/dtd/widget-form.xsd
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-form.xsd?rev=733486&r1=733485&r2=733486&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/widget/dtd/widget-form.xsd (original)
> +++ ofbiz/trunk/framework/widget/dtd/widget-form.xsd Sun Jan 11 08:35:46 2009
> @@ -1089,9 +1089,9 @@
>                  </xs:restriction>
>              </xs:simpleType>
>          </xs:attribute>
> -        <xs:attribute type="xs:double" name="frequency" default="0.4"/>
> -        <xs:attribute type="xs:positiveInteger" name="min-chars" default="1"/>
> -        <xs:attribute type="xs:positiveInteger" name="choices" default="10"/>
> +        <xs:attribute name="frequency" type="xs:double" default="0.4"/>
> +        <xs:attribute name="min-chars" type="xs:positiveInteger" default="1"/>
> +        <xs:attribute name="choices" type="xs:positiveInteger" default="10"/>
>          <xs:attribute name="partial-search" default="true">
>              <xs:simpleType>
>                  <xs:restriction base="xs:token">
> @@ -1100,7 +1100,7 @@
>                  </xs:restriction>
>              </xs:simpleType>
>          </xs:attribute>
> -        <xs:attribute type="xs:positiveInteger" name="partial-chars" default="2"/>
> +        <xs:attribute name="partial-chars" type="xs:positiveInteger" default="1"/>
>          <xs:attribute name="ignore-case" default="true">
>              <xs:simpleType>
>                  <xs:restriction base="xs:token">
> @@ -1109,7 +1109,7 @@
>                  </xs:restriction>
>              </xs:simpleType>
>          </xs:attribute>
> -        <xs:attribute name="full-search" default="false">
> +        <xs:attribute name="full-search" default="true">
>              <xs:simpleType>
>                  <xs:restriction base="xs:token">
>                      <xs:enumeration value="true"/>
> 
> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java?rev=733486&r1=733485&r2=733486&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java (original)
> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java Sun Jan 11 08:35:46 2009
> @@ -1076,7 +1076,11 @@
>      }
>  
>      public String getIdName() {
> -        return idName;
> +    	if (UtilValidate.isNotEmpty(idName)) {
> +            return idName;
> +    	} else {
> +    		return this.modelForm.getName() + "_" + this.getFieldName();
> +    	}
>      }
>      
>      public String getHeaderLink() {
> @@ -3257,12 +3261,18 @@
>          protected FlexibleStringExpander formName;
>          protected String descriptionFieldName;
>          protected String targetParameter;
> +        protected SubHyperlink subHyperlink;
>          
>          public LookupField(Element element, ModelFormField modelFormField) {
>              super(element, modelFormField);
>              this.formName = FlexibleStringExpander.getInstance(element.getAttribute("target-form-name"));
>              this.descriptionFieldName = element.getAttribute("description-field-name");
>              this.targetParameter = element.getAttribute("target-parameter");
> +
> +            Element subHyperlinkElement = UtilXml.firstChildElement(element, "sub-hyperlink");
> +            if (subHyperlinkElement != null) {
> +                this.subHyperlink = new SubHyperlink(subHyperlinkElement);
> +            }
>          }
>  
>          public LookupField(int fieldSource, ModelFormField modelFormField) {
> @@ -3299,6 +3309,10 @@
>          public void setDescriptionFieldName(String str) {
>              this.descriptionFieldName = str;
>          }
> +        
> +        public SubHyperlink getSubHyperlink() {
> +        	return this.subHyperlink;
> +        }
>      }
>  
>      public static class FileField extends TextField {
> 
> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java?rev=733486&r1=733485&r2=733486&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java (original)
> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java Sun Jan 11 08:35:46 2009
> @@ -711,7 +711,7 @@
>          ModelForm modelForm = modelFormField.getModelForm();
>          ModelFormField.AutoComplete autoComplete = dropDownField.getAutoComplete();
>          boolean ajaxEnabled = autoComplete != null && this.javaScriptEnabled;
> -        List allOptionValues = dropDownField.getAllOptionValues(context, modelForm.getDelegator(context));
> +        List<ModelFormField.OptionValue> allOptionValues = dropDownField.getAllOptionValues(context, modelForm.getDelegator(context));
>  
>          String event = modelFormField.getEvent();
>          String action = modelFormField.getAction(context);
> @@ -767,7 +767,7 @@
>              
>              if (UtilValidate.isNotEmpty(currentValue)) {
>                  writer.append(" value=\"");
> -                String explicitDescription = dropDownField.getCurrentDescription(context);
> +                //String explicitDescription = dropDownField.getCurrentDescription(context);
>                  writer.append(currentValue);
>                  writer.append('"');
>              }
> @@ -778,20 +778,22 @@
>              writer.append("<script language=\"JavaScript\" type=\"text/javascript\">");
>              appendWhitespace(writer);
>              writer.append("var data = {");
> -            Iterator optionValueIter = allOptionValues.iterator();
>              int count = 0;
> -            while (optionValueIter.hasNext()) {
> +            for (ModelFormField.OptionValue optionValue: allOptionValues) {
>              	count++;
> -                ModelFormField.OptionValue optionValue = (ModelFormField.OptionValue) optionValueIter.next();
> -                writer.append(""+optionValue.getKey()+": ");
> -                writer.append(" '"+optionValue.getDescription()+"'");
> +                writer.append("" + optionValue.getKey() + ": ");
> +                writer.append(" '" + optionValue.getDescription() + "'");
>                  if (count != allOptionValues.size()) {
>                  	writer.append(", ");
>                  }
>              }
>              writer.append("};");
>              appendWhitespace(writer);
> -            writer.append("ajaxAutoCompleteDropDown('"+textFieldIdName+"', '"+idName+"', data, {autoSelect: "+autoComplete.getAutoSelect()+", frequency: "+autoComplete.getFrequency()+", minChars: "+autoComplete.getMinChars()+", choices: "+autoComplete.getChoices()+", partialSearch: "+autoComplete.getPartialSearch()+", partialChars: "+autoComplete.getPartialChars()+", ignoreCase: "+autoComplete.getIgnoreCase()+", fullSearch: "+autoComplete.getFullSearch()+"});");
> +            writer.append("ajaxAutoCompleteDropDown('" + textFieldIdName + "', '" + idName + "', data, {autoSelect: " + 
> +            		autoComplete.getAutoSelect() + ", frequency: " + autoComplete.getFrequency() + ", minChars: " + autoComplete.getMinChars() + 
> +            		", choices: " + autoComplete.getChoices() + ", partialSearch: " + autoComplete.getPartialSearch() + 
> +            		", partialChars: " + autoComplete.getPartialChars() + ", ignoreCase: " + autoComplete.getIgnoreCase() + 
> +            		", fullSearch: " + autoComplete.getFullSearch() + "});");
>              appendWhitespace(writer);
>              writer.append("</script>");
>          } else {
> @@ -2178,14 +2180,39 @@
>              writer.append('"');
>          }
>  
> -        if (!lookupField.getClientAutocompleteField()) {
> +        String idName = modelFormField.getIdName();
> +        if (UtilValidate.isNotEmpty(idName)) {
> +            writer.append(" id=\"");
> +            writer.append(idName);
> +            writer.append('"');
> +        }
> +
> +        List<ModelForm.UpdateArea> updateAreas = modelFormField.getOnChangeUpdateAreas();
> +        boolean ajaxEnabled = updateAreas != null && this.javaScriptEnabled;
> +        if (!lookupField.getClientAutocompleteField() || ajaxEnabled) {
>              writer.append(" autocomplete=\"off\"");
>          }
>  
>          writer.append("/>");
> +        
> +        this.addAsterisks(writer, context, modelFormField);
> +
> +        this.makeHyperlinkString(writer, lookupField.getSubHyperlink(), context);
> +
> +        this.appendTooltip(writer, context, modelFormField);
> +
> +        if (ajaxEnabled) {
> +            appendWhitespace(writer);
> +            writer.append("<script language=\"JavaScript\" type=\"text/javascript\">");
> +            appendWhitespace(writer);
> +            writer.append("ajaxAutoCompleter('" + createAjaxParamsFromUpdateAreas(updateAreas, null, context) + "');");
> +            appendWhitespace(writer);
> +            writer.append("</script>");
> +        }
> +        appendWhitespace(writer);
>  
> -        String descriptionFieldName = lookupField.getDescriptionFieldName();
>          // add lookup pop-up button 
> +        String descriptionFieldName = lookupField.getDescriptionFieldName();
>          if (UtilValidate.isNotEmpty(descriptionFieldName)) {
>              writer.append("<a href=\"javascript:call_fieldlookup3(document.");
>              writer.append(modelFormField.getModelForm().getCurrentFormName(context));
> 
> 
-- 
Antwebsystems.com: Quality OFBiz services for competitive prices


Re: svn commit: r733486 - in /ofbiz/trunk/framework/widget: dtd/widget-form.xsd src/org/ofbiz/widget/form/ModelFormField.java src/org/ofbiz/widget/html/HtmlFormRenderer.java

Posted by David E Jones <da...@hotwaxmedia.com>.
I'll take a look at it.

-David


On Jan 15, 2009, at 10:42 PM, Hans Bakker wrote:

> this change makes the description of the hyperlink appear twice.
> have a look at:
> https://localhost3:8443/content/control/EditContent?contentId=ARTICLE_WRAP
>
> where the 'goto dataresource" button show twice"
>
>
> On Sun, 2009-01-11 at 16:35 +0000, jonesde@apache.org wrote:
>> Author: jonesde
>> Date: Sun Jan 11 08:35:46 2009
>> New Revision: 733486
>>
>> URL: http://svn.apache.org/viewvc?rev=733486&view=rev
>> Log:
>> A few enhancements, including some fixes and enhancements for the  
>> loopkup field type to support the sub-hyperlink which was already  
>> in the xsd, the asterisk for required fields, and the on event  
>> stuff for the ajax auto-complete and other such things; also  
>> changed all fields to have a default id with formName_fieldName so  
>> that it doesn't always have to be explicitly declared but also  
>> won't conflict form multiform screens
>>
>> Modified:
>>    ofbiz/trunk/framework/widget/dtd/widget-form.xsd
>>    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ 
>> ModelFormField.java
>>    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/ 
>> HtmlFormRenderer.java
>>
>> Modified: ofbiz/trunk/framework/widget/dtd/widget-form.xsd
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-form.xsd?rev=733486&r1=733485&r2=733486&view=diff
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- ofbiz/trunk/framework/widget/dtd/widget-form.xsd (original)
>> +++ ofbiz/trunk/framework/widget/dtd/widget-form.xsd Sun Jan 11  
>> 08:35:46 2009
>> @@ -1089,9 +1089,9 @@
>>                 </xs:restriction>
>>             </xs:simpleType>
>>         </xs:attribute>
>> -        <xs:attribute type="xs:double" name="frequency"  
>> default="0.4"/>
>> -        <xs:attribute type="xs:positiveInteger" name="min-chars"  
>> default="1"/>
>> -        <xs:attribute type="xs:positiveInteger" name="choices"  
>> default="10"/>
>> +        <xs:attribute name="frequency" type="xs:double"  
>> default="0.4"/>
>> +        <xs:attribute name="min-chars" type="xs:positiveInteger"  
>> default="1"/>
>> +        <xs:attribute name="choices" type="xs:positiveInteger"  
>> default="10"/>
>>         <xs:attribute name="partial-search" default="true">
>>             <xs:simpleType>
>>                 <xs:restriction base="xs:token">
>> @@ -1100,7 +1100,7 @@
>>                 </xs:restriction>
>>             </xs:simpleType>
>>         </xs:attribute>
>> -        <xs:attribute type="xs:positiveInteger" name="partial- 
>> chars" default="2"/>
>> +        <xs:attribute name="partial-chars"  
>> type="xs:positiveInteger" default="1"/>
>>         <xs:attribute name="ignore-case" default="true">
>>             <xs:simpleType>
>>                 <xs:restriction base="xs:token">
>> @@ -1109,7 +1109,7 @@
>>                 </xs:restriction>
>>             </xs:simpleType>
>>         </xs:attribute>
>> -        <xs:attribute name="full-search" default="false">
>> +        <xs:attribute name="full-search" default="true">
>>             <xs:simpleType>
>>                 <xs:restriction base="xs:token">
>>                     <xs:enumeration value="true"/>
>>
>> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ 
>> ModelFormField.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java?rev=733486&r1=733485&r2=733486&view=diff
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ 
>> ModelFormField.java (original)
>> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ 
>> ModelFormField.java Sun Jan 11 08:35:46 2009
>> @@ -1076,7 +1076,11 @@
>>     }
>>
>>     public String getIdName() {
>> -        return idName;
>> +    	if (UtilValidate.isNotEmpty(idName)) {
>> +            return idName;
>> +    	} else {
>> +    		return this.modelForm.getName() + "_" + this.getFieldName();
>> +    	}
>>     }
>>
>>     public String getHeaderLink() {
>> @@ -3257,12 +3261,18 @@
>>         protected FlexibleStringExpander formName;
>>         protected String descriptionFieldName;
>>         protected String targetParameter;
>> +        protected SubHyperlink subHyperlink;
>>
>>         public LookupField(Element element, ModelFormField  
>> modelFormField) {
>>             super(element, modelFormField);
>>             this.formName =  
>> FlexibleStringExpander.getInstance(element.getAttribute("target- 
>> form-name"));
>>             this.descriptionFieldName =  
>> element.getAttribute("description-field-name");
>>             this.targetParameter = element.getAttribute("target- 
>> parameter");
>> +
>> +            Element subHyperlinkElement =  
>> UtilXml.firstChildElement(element, "sub-hyperlink");
>> +            if (subHyperlinkElement != null) {
>> +                this.subHyperlink = new  
>> SubHyperlink(subHyperlinkElement);
>> +            }
>>         }
>>
>>         public LookupField(int fieldSource, ModelFormField  
>> modelFormField) {
>> @@ -3299,6 +3309,10 @@
>>         public void setDescriptionFieldName(String str) {
>>             this.descriptionFieldName = str;
>>         }
>> +
>> +        public SubHyperlink getSubHyperlink() {
>> +        	return this.subHyperlink;
>> +        }
>>     }
>>
>>     public static class FileField extends TextField {
>>
>> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/ 
>> HtmlFormRenderer.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java?rev=733486&r1=733485&r2=733486&view=diff
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/ 
>> HtmlFormRenderer.java (original)
>> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/ 
>> HtmlFormRenderer.java Sun Jan 11 08:35:46 2009
>> @@ -711,7 +711,7 @@
>>         ModelForm modelForm = modelFormField.getModelForm();
>>         ModelFormField.AutoComplete autoComplete =  
>> dropDownField.getAutoComplete();
>>         boolean ajaxEnabled = autoComplete != null &&  
>> this.javaScriptEnabled;
>> -        List allOptionValues =  
>> dropDownField.getAllOptionValues(context,  
>> modelForm.getDelegator(context));
>> +        List<ModelFormField.OptionValue> allOptionValues =  
>> dropDownField.getAllOptionValues(context,  
>> modelForm.getDelegator(context));
>>
>>         String event = modelFormField.getEvent();
>>         String action = modelFormField.getAction(context);
>> @@ -767,7 +767,7 @@
>>
>>             if (UtilValidate.isNotEmpty(currentValue)) {
>>                 writer.append(" value=\"");
>> -                String explicitDescription =  
>> dropDownField.getCurrentDescription(context);
>> +                //String explicitDescription =  
>> dropDownField.getCurrentDescription(context);
>>                 writer.append(currentValue);
>>                 writer.append('"');
>>             }
>> @@ -778,20 +778,22 @@
>>             writer.append("<script language=\"JavaScript\" type= 
>> \"text/javascript\">");
>>             appendWhitespace(writer);
>>             writer.append("var data = {");
>> -            Iterator optionValueIter = allOptionValues.iterator();
>>             int count = 0;
>> -            while (optionValueIter.hasNext()) {
>> +            for (ModelFormField.OptionValue optionValue:  
>> allOptionValues) {
>>             	count++;
>> -                ModelFormField.OptionValue optionValue =  
>> (ModelFormField.OptionValue) optionValueIter.next();
>> -                writer.append(""+optionValue.getKey()+": ");
>> -                writer.append(" '"+optionValue.getDescription() 
>> +"'");
>> +                writer.append("" + optionValue.getKey() + ": ");
>> +                writer.append(" '" + optionValue.getDescription()  
>> + "'");
>>                 if (count != allOptionValues.size()) {
>>                 	writer.append(", ");
>>                 }
>>             }
>>             writer.append("};");
>>             appendWhitespace(writer);
>> -             
>> writer.append("ajaxAutoCompleteDropDown('"+textFieldIdName+"',  
>> '"+idName+"', data, {autoSelect: "+autoComplete.getAutoSelect()+",  
>> frequency: "+autoComplete.getFrequency()+", minChars:  
>> "+autoComplete.getMinChars()+", choices: "+autoComplete.getChoices() 
>> +", partialSearch: "+autoComplete.getPartialSearch()+",  
>> partialChars: "+autoComplete.getPartialChars()+", ignoreCase:  
>> "+autoComplete.getIgnoreCase()+", fullSearch:  
>> "+autoComplete.getFullSearch()+"});");
>> +            writer.append("ajaxAutoCompleteDropDown('" +  
>> textFieldIdName + "', '" + idName + "', data, {autoSelect: " +
>> +            		autoComplete.getAutoSelect() + ", frequency: " +  
>> autoComplete.getFrequency() + ", minChars: " +  
>> autoComplete.getMinChars() +
>> +            		", choices: " + autoComplete.getChoices() + ",  
>> partialSearch: " + autoComplete.getPartialSearch() +
>> +            		", partialChars: " + autoComplete.getPartialChars()  
>> + ", ignoreCase: " + autoComplete.getIgnoreCase() +
>> +            		", fullSearch: " + autoComplete.getFullSearch() +  
>> "});");
>>             appendWhitespace(writer);
>>             writer.append("</script>");
>>         } else {
>> @@ -2178,14 +2180,39 @@
>>             writer.append('"');
>>         }
>>
>> -        if (!lookupField.getClientAutocompleteField()) {
>> +        String idName = modelFormField.getIdName();
>> +        if (UtilValidate.isNotEmpty(idName)) {
>> +            writer.append(" id=\"");
>> +            writer.append(idName);
>> +            writer.append('"');
>> +        }
>> +
>> +        List<ModelForm.UpdateArea> updateAreas =  
>> modelFormField.getOnChangeUpdateAreas();
>> +        boolean ajaxEnabled = updateAreas != null &&  
>> this.javaScriptEnabled;
>> +        if (!lookupField.getClientAutocompleteField() ||  
>> ajaxEnabled) {
>>             writer.append(" autocomplete=\"off\"");
>>         }
>>
>>         writer.append("/>");
>> +
>> +        this.addAsterisks(writer, context, modelFormField);
>> +
>> +        this.makeHyperlinkString(writer,  
>> lookupField.getSubHyperlink(), context);
>> +
>> +        this.appendTooltip(writer, context, modelFormField);
>> +
>> +        if (ajaxEnabled) {
>> +            appendWhitespace(writer);
>> +            writer.append("<script language=\"JavaScript\" type= 
>> \"text/javascript\">");
>> +            appendWhitespace(writer);
>> +            writer.append("ajaxAutoCompleter('" +  
>> createAjaxParamsFromUpdateAreas(updateAreas, null, context) + "');");
>> +            appendWhitespace(writer);
>> +            writer.append("</script>");
>> +        }
>> +        appendWhitespace(writer);
>>
>> -        String descriptionFieldName =  
>> lookupField.getDescriptionFieldName();
>>         // add lookup pop-up button
>> +        String descriptionFieldName =  
>> lookupField.getDescriptionFieldName();
>>         if (UtilValidate.isNotEmpty(descriptionFieldName)) {
>>             writer.append("<a href= 
>> \"javascript:call_fieldlookup3(document.");
>>              
>> writer 
>> .append(modelFormField.getModelForm().getCurrentFormName(context));
>>
>>
> -- 
> Antwebsystems.com: Quality OFBiz services for competitive prices
>