Author: apatel
Date: Thu May 22 23:54:15 2008 New Revision: 659454 URL: http://svn.apache.org/viewvc?rev=659454&view=rev Log: Fist pass of implementation of Ajax.Autocompleter enhancement for form widget text box. I'll be working on improving this over next few days. Added: ofbiz/trunk/framework/example/webapp/example/WEB-INF/actions/ ofbiz/trunk/framework/example/webapp/example/WEB-INF/actions/findExampleFeatures.bsh (with props) ofbiz/trunk/framework/example/webapp/example/includes/ ofbiz/trunk/framework/example/webapp/example/includes/exampleFeatures.ftl (with props) Modified: ofbiz/trunk/framework/example/webapp/example/WEB-INF/controller.xml ofbiz/trunk/framework/example/widget/example/ExampleFeatureScreens.xml ofbiz/trunk/framework/example/widget/example/ExampleForms.xml ofbiz/trunk/framework/example/widget/example/ExampleScreens.xml ofbiz/trunk/framework/images/webapp/images/selectall.js 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 Added: ofbiz/trunk/framework/example/webapp/example/WEB-INF/actions/findExampleFeatures.bsh URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/webapp/example/WEB-INF/actions/findExampleFeatures.bsh?rev=659454&view=auto ============================================================================== --- ofbiz/trunk/framework/example/webapp/example/WEB-INF/actions/findExampleFeatures.bsh (added) +++ ofbiz/trunk/framework/example/webapp/example/WEB-INF/actions/findExampleFeatures.bsh Thu May 22 23:54:15 2008 @@ -0,0 +1,27 @@ +import java.sql.Timestamp; +import java.util.ArrayList; +import org.ofbiz.entity.GenericValue; +import org.ofbiz.entity.model.DynamicViewEntity; +import org.ofbiz.entity.model.ModelKeyMap; +import org.ofbiz.entity.util.EntityFindOptions; +import org.ofbiz.entity.util.EntityListIterator; +import org.ofbiz.entity.condition.*; +import org.ofbiz.entity.condition.EntityOperator; +import org.ofbiz.entity.condition.EntityExpr; +import org.ofbiz.base.util.*; +import org.ofbiz.service.LocalDispatcher; + +andExprs = new ArrayList(); +exampleFeatureId = request.getParameter("exampleFeatureId"); +if (exampleFeatureId != null && exampleFeatureId.length() > 0) { + andExprs.add(new EntityExpr(new EntityFunction.UPPER(new EntityFieldValue("exampleFeatureId")), + EntityOperator.LIKE, "%" + exampleFeatureId.toUpperCase() + "%")); +} + +if (andExprs.size() > 0){ + entityConditionList = new EntityConditionList(andExprs, EntityOperator.AND); + List features = delegator.findByCondition("ExampleFeature", entityConditionList, null, UtilMisc.toList("-exampleFeatureId")); + // exampleFeatureId list to use in form-widgets + System.out.println("featuresfeatures" + features.size()); + context.put("listIt", features); +} Propchange: ofbiz/trunk/framework/example/webapp/example/WEB-INF/actions/findExampleFeatures.bsh ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/framework/example/webapp/example/WEB-INF/actions/findExampleFeatures.bsh ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/trunk/framework/example/webapp/example/WEB-INF/actions/findExampleFeatures.bsh ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: ofbiz/trunk/framework/example/webapp/example/WEB-INF/controller.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/webapp/example/WEB-INF/controller.xml?rev=659454&r1=659453&r2=659454&view=diff ============================================================================== --- ofbiz/trunk/framework/example/webapp/example/WEB-INF/controller.xml (original) +++ ofbiz/trunk/framework/example/webapp/example/WEB-INF/controller.xml Thu May 22 23:54:15 2008 @@ -154,6 +154,11 @@ <response name="success" type="view" value="EditExampleFeatureExampleAppls"/> <response name="error" type="view" value="EditExampleFeatureExampleAppls"/> </request-map> + <request-map uri="ExampleFeatureOptions"> + <security https="true" auth="true"/> + <response name="success" type="view" value="ExampleFeatureOptions"/> + <response name="error" type="view" value="ExampleFeatureOptions"/> + </request-map> <request-map uri="FormWidgetExamples"><security https="true" auth="true"/><response name="success" type="view" value="FormWidgetExamples"/></request-map> @@ -178,7 +183,7 @@ <view-map name="FormWidgetExamples" type="screen" page="component://example/widget/example/FormWidgetExampleScreens.xml#FormWidgetExamples"/> <view-map name="LookupExampleFeature" type="screen" page="component://example/widget/example/ExampleFeatureScreens.xml#LookupExampleFeature"/> - + <view-map name="ExampleFeatureOptions" type="screen" page="component://example/widget/example/ExampleFeatureScreens.xml#ExampleFeatureOptions"/> <!-- ajax view mappings --> <view-map name="findExampleAjax" type="screen" page="component://example/widget/example/ExampleAjaxScreens.xml#AjaxExample"/> <view-map name="ListExampleFormOnly" type="screen" page="component://example/widget/example/ExampleAjaxScreens.xml#ListExampleFormOnly"/> Added: ofbiz/trunk/framework/example/webapp/example/includes/exampleFeatures.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/webapp/example/includes/exampleFeatures.ftl?rev=659454&view=auto ============================================================================== --- ofbiz/trunk/framework/example/webapp/example/includes/exampleFeatures.ftl (added) +++ ofbiz/trunk/framework/example/webapp/example/includes/exampleFeatures.ftl Thu May 22 23:54:15 2008 @@ -0,0 +1,24 @@ +<#-- +Licensed to the Apache Software Foundation (ASF) under one +or more contributor license agreements. See the NOTICE file +distributed with this work for additional information +regarding copyright ownership. The ASF licenses this file +to you under the Apache License, Version 2.0 (the +"License"); you may not use this file except in compliance +with the License. You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, +software distributed under the License is distributed on an +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, either express or implied. See the License for the +specific language governing permissions and limitations +under the License. <#assign listIt = parameters.listIt> +--> + +<ul> + <#list listIt as feature> + <li>${feature.exampleFeatureId} <span class="informal"> ${feature.description}</span></li> + </#list> +</ul> Propchange: ofbiz/trunk/framework/example/webapp/example/includes/exampleFeatures.ftl ------------------------------------------------------------------------------ svn:eol-style = native Propchange: ofbiz/trunk/framework/example/webapp/example/includes/exampleFeatures.ftl ------------------------------------------------------------------------------ svn:keywords = Date Rev Author URL Id Propchange: ofbiz/trunk/framework/example/webapp/example/includes/exampleFeatures.ftl ------------------------------------------------------------------------------ svn:mime-type = text/plain Modified: ofbiz/trunk/framework/example/widget/example/ExampleFeatureScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/ExampleFeatureScreens.xml?rev=659454&r1=659453&r2=659454&view=diff ============================================================================== --- ofbiz/trunk/framework/example/widget/example/ExampleFeatureScreens.xml (original) +++ ofbiz/trunk/framework/example/widget/example/ExampleFeatureScreens.xml Thu May 22 23:54:15 2008 @@ -74,7 +74,6 @@ <actions> <set field="titleProperty" value="PageTitleEditExampleFeatureExampleAppls"/> <set field="tabButtonItem" value="EditExampleFeatureExampleAppls"/> - <set field="exampleFeatureId" from-field="parameters.exampleFeatureId"/> </actions> <widgets> @@ -110,5 +109,21 @@ </widgets> </section> </screen> - + <screen name="ExampleFeatureOptions"> + <section> + <actions> + <script location="component://example/webapp/example/WEB-INF/actions/findExampleFeatures.bsh"/> <!-- + <set field="parameters.noConditionFind" value="Y"/> + <service service-name="performFind" result-map-name="result"> + <field-map field-name="inputFields" env-name="parameters"/> + <field-map field-name="orderBy" value="description"/> + <field-map field-name="entityName" value="ExampleFeature"/> + </service> + <set field="listIt" from-field="result.listIt"/> --> + </actions> + <widgets> + <platform-specific><html><html-template location="component://example/webapp/example/includes/exampleFeatures.ftl"/></html></platform-specific> + </widgets> + </section> + </screen> </screens> Modified: ofbiz/trunk/framework/example/widget/example/ExampleForms.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/ExampleForms.xml?rev=659454&r1=659453&r2=659454&view=diff ============================================================================== --- ofbiz/trunk/framework/example/widget/example/ExampleForms.xml (original) +++ ofbiz/trunk/framework/example/widget/example/ExampleForms.xml Thu May 22 23:54:15 2008 @@ -173,7 +173,8 @@ <form name="AddExampleFeatureAppl" type="single" target="example_createExampleFeatureAppl" title=""> <auto-fields-service service-name="createExampleFeatureAppl"/> <field name="exampleId"><hidden/></field> - <field name="exampleFeatureId" title="${uiLabelMap.ExampleFeature}"><lookup target-form-name="LookupExampleFeature"/></field> + <field name="exampleFeatureId" id-name="exampleFeatureId"><text server-autocomplete-target="ExampleFeatureOptions"></text></field> + <!-- <field name="exampleFeatureId" title="${uiLabelMap.ExampleFeature}" id-name="exampleFeatureId"><lookup target-form-name="LookupExampleFeature"/></field> --> <field name="exampleFeatureApplTypeId" title="${uiLabelMap.CommonType}"> <drop-down allow-empty="false"> <entity-options entity-name="ExampleFeatureApplType" description="${description}"> Modified: ofbiz/trunk/framework/example/widget/example/ExampleScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/ExampleScreens.xml?rev=659454&r1=659453&r2=659454&view=diff ============================================================================== --- ofbiz/trunk/framework/example/widget/example/ExampleScreens.xml (original) +++ ofbiz/trunk/framework/example/widget/example/ExampleScreens.xml Thu May 22 23:54:15 2008 @@ -88,6 +88,10 @@ <screen name="EditExampleFeatureAppls"> <section> <actions> + + <set field="layoutSettings.javaScripts[+0]" value="/images/prototypejs/scriptaculous.js" global="true"/> + <set field="layoutSettings.javaScripts[+0]" value="/images/prototypejs/prototype.js" global="true"/> + <set field="layoutSettings.styleSheets[+0]" value="/images/prototypejs/scriptaculouscontrols.css" global="true"/> <set field="titleProperty" value="PageTitleEditExampleFeatureAppls"/> <set field="tabButtonItem" value="EditExampleFeatureAppls"/> <set field="exampleId" from-field="parameters.exampleId"/> Modified: ofbiz/trunk/framework/images/webapp/images/selectall.js URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/selectall.js?rev=659454&r1=659453&r2=659454&view=diff ============================================================================== --- ofbiz/trunk/framework/images/webapp/images/selectall.js (original) +++ ofbiz/trunk/framework/images/webapp/images/selectall.js Thu May 22 23:54:15 2008 @@ -286,6 +286,11 @@ ajaxSubmitRequestUpdateAreas(form.action, form.serialize(true), areaCsvString); } +function ajaxAutoCompleter(textFieldId,url,params) { + var optionsDivId = textFieldId + "_autoCompleterOptions"; + $(textFieldId ).insert({after: '<div class="autocomplete"' + 'id=' + optionsDivId + '></div>'}); + new Ajax.Autocompleter($(textFieldId), optionsDivId, url, params); +} // ===== End of Ajax Functions ===== // function submitFormDisableSubmits(form) { Modified: ofbiz/trunk/framework/widget/dtd/widget-form.xsd URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-form.xsd?rev=659454&r1=659453&r2=659454&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/dtd/widget-form.xsd (original) +++ ofbiz/trunk/framework/widget/dtd/widget-form.xsd Thu May 22 23:54:15 2008 @@ -854,6 +854,10 @@ </xs:restriction> </xs:simpleType> </xs:attribute> + <xs:attribute type="xs:string" name="server-autocomplete-params"/> + <xs:attribute type="xs:string" name="server-autocomplete-target"> + <xs:annotation><xs:documentation>Url to request user options.</xs:documentation></xs:annotation> + </xs:attribute> </xs:attributeGroup> <xs:element name="textarea" substitutionGroup="AllFields"> <xs:complexType> 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=659454&r1=659453&r2=659454&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 Thu May 22 23:54:15 2008 @@ -2167,7 +2167,9 @@ protected SubHyperlink subHyperlink; protected boolean disabled; protected boolean clientAutocompleteField; - + protected FlexibleStringExpander serverAutocompleteTargetExdr; + protected FlexibleStringExpander serverAutocompleteParamsExdr; + protected TextField() { super(); } @@ -2211,6 +2213,9 @@ if (subHyperlinkElement != null) { this.subHyperlink = new SubHyperlink(subHyperlinkElement); } + this.serverAutocompleteTargetExdr = new FlexibleStringExpander(element.getAttribute("server-autocomplete-target")); + this.serverAutocompleteParamsExdr = new FlexibleStringExpander(element.getAttribute("server-autocomplete-params")); + } public void renderFieldString(StringBuffer buffer, Map context, FormStringRenderer formStringRenderer) { @@ -2288,6 +2293,21 @@ public void setSubHyperlink(SubHyperlink newSubHyperlink) { this.subHyperlink = newSubHyperlink; } + public String getServerAutocompleteTarget(Map context) { + if(serverAutocompleteTargetExdr !=null){ + return this.serverAutocompleteTargetExdr.expandString(context); + } else { + return ""; + } + } + public String getServerAutocompleteParams(Map context) { + if(serverAutocompleteParamsExdr !=null){ + return this.serverAutocompleteParamsExdr.expandString(context); + } else { + return ""; + } + } + } public static class TextareaField extends FieldInfo { 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=659454&r1=659453&r2=659454&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 Thu May 22 23:54:15 2008 @@ -290,8 +290,22 @@ this.makeHyperlinkString(buffer, textField.getSubHyperlink(), context); this.appendTooltip(buffer, context, modelFormField); - - //appendWhitespace(buffer); + //Add javascript block to execute a function that will register textfield to autocompleter Ajax system. + String serverAutocompleteTarget = textField.getServerAutocompleteTarget(context); + if (UtilValidate.isNotEmpty(serverAutocompleteTarget)) { + appendWhitespace(buffer); + buffer.append("<script language=\"JavaScript\" type=\"text/javascript\">"); + appendWhitespace(buffer); + buffer.append("ajaxAutoCompleter('"); + buffer.append(idName); + buffer.append("', '"); + WidgetWorker.buildHyperlinkUrl(buffer, serverAutocompleteTarget,HyperlinkField.DEFAULT_TARGET_TYPE, request, response, context); + buffer.append("', '"); + buffer.append(textField.getServerAutocompleteParams(context) + "');"); + appendWhitespace(buffer); + buffer.append("</script>"); + } + appendWhitespace(buffer); } /* (non-Javadoc) |
Free forum by Nabble | Edit this page |