|
Author: bibryam
Date: Mon Dec 28 11:30:40 2009 New Revision: 894149 URL: http://svn.apache.org/viewvc?rev=894149&view=rev Log: Applied a modified patch from jira issue OFBIZ-3211 - Ajaxifying lookup fields. To add ajax support to a lookup screen, you have to add two fields: entityName and searchFields. As a reference please check LookupPartyName and LookupPerson screens in party manager. You can see ajaxed lookups in action in any screen using form widgets and the above lookup screens (findInvocies screen in accounting for example). This commit also fixes a bug in controls.js from scriptaculous library, but I reported it in its project list and I will track it further. To hide the returned values (shown as [ID])from the autocompleter or change the number of items there, you have to modify widget.properties Added: ofbiz/trunk/framework/images/webapp/images/ajax-loader.gif (with props) Modified: ofbiz/trunk/applications/order/widget/ordermgr/LookupScreens.xml ofbiz/trunk/applications/party/widget/partymgr/LookupScreens.xml ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy ofbiz/trunk/framework/common/webcommon/includes/ajaxAutocompleteOptions.ftl ofbiz/trunk/framework/common/widget/CommonScreens.xml ofbiz/trunk/framework/images/webapp/images/prototypejs/controls.js ofbiz/trunk/framework/images/webapp/images/selectall.js ofbiz/trunk/framework/widget/config/widget.properties ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl ofbiz/trunk/themes/bizznesstime/webapp/bizznesstime/css/style.css ofbiz/trunk/themes/bluelight/webapp/bluelight/style.css ofbiz/trunk/themes/droppingcrumbs/webapp/droppingcrumbs/css/style.css ofbiz/trunk/themes/flatgrey/webapp/flatgrey/maincss.css Modified: ofbiz/trunk/applications/order/widget/ordermgr/LookupScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/widget/ordermgr/LookupScreens.xml?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/applications/order/widget/ordermgr/LookupScreens.xml (original) +++ ofbiz/trunk/applications/order/widget/ordermgr/LookupScreens.xml Mon Dec 28 11:30:40 2009 @@ -116,6 +116,8 @@ <set field="queryString" from-field="result.queryString"/> <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer"/> <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="20"/> + <set field="entityName" value="CustRequest"/> + <set field="searchFields" value="[custRequestId, custRequestName, statusId]"/> </actions> <widgets> <decorator-screen name="LookupDecorator" location="component://common/widget/CommonScreens.xml"> @@ -143,6 +145,8 @@ <set field="queryString" from-field="result.queryString"/> <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer"/> <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="20"/> + <set field="entityName" value="CustRequestItem"/> + <set field="searchFields" value="[custRequestItemSeqId, custRequestId, productId]"/> </actions> <widgets> <decorator-screen name="LookupDecorator" location="component://common/widget/CommonScreens.xml"> Modified: ofbiz/trunk/applications/party/widget/partymgr/LookupScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/widget/partymgr/LookupScreens.xml?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/applications/party/widget/partymgr/LookupScreens.xml (original) +++ ofbiz/trunk/applications/party/widget/partymgr/LookupScreens.xml Mon Dec 28 11:30:40 2009 @@ -31,6 +31,21 @@ <set field="queryString" from-field="result.queryString"/> <set field="viewIndex" from-field="parameters.VIEW_INDEX" type="Integer" default-value="0"/> <set field="viewSize" from-field="parameters.VIEW_SIZE" type="Integer" default-value="20"/> + + <!-- entries needed for lookup ajax auto completer --> + <!-- required: entity to search in --> + <set field="entityName" value="PartyNameView"/> + + <!-- required: fields to search a match --> + <set field="searchFields" value="[partyId, firstName, middleName, lastName, groupName]"/> + + <!-- optional: field to return after user selection, default is first element of searchFields --> + <!-- return field might be hidden based on widget.autocompleter.displayReturnField property in widget.properties --> + <set field="returnField" value="partyId"/> + + <!-- optional: fields to display, default are searchFields --> + <set field="displaytFields" value="[firstName, lastName, groupName]"/> + </actions> <widgets> <decorator-screen name="LookupDecorator" location="component://common/widget/CommonScreens.xml"> @@ -127,6 +142,7 @@ <property-map resource="PartyUiLabels" map-name="uiLabelMap" global="true"/> <set field="title" value="${uiLabelMap.PartyLookupPartyPerson}"/> <set field="entityName" value="PartyAndPerson"/> + <set field="searchFields" value="[partyId, firstName, middleName, lastName]"/> <set field="queryString" from-field="result.queryString"/> </actions> <widgets> Modified: ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy (original) +++ ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy Mon Dec 28 11:30:40 2009 @@ -17,25 +17,41 @@ * under the License. */ -import java.util.TreeSet; -import javolution.util.FastList; +import org.ofbiz.base.util.StringUtil; +import org.ofbiz.entity.util.EntityFindOptions; +import org.ofbiz.entity.condition.EntityCondition; import org.ofbiz.entity.condition.EntityConditionList; import org.ofbiz.entity.condition.EntityExpr; import org.ofbiz.entity.condition.EntityFieldValue; import org.ofbiz.entity.condition.EntityFunction; import org.ofbiz.entity.condition.EntityOperator; -import org.ofbiz.base.util.StringUtil; -import org.ofbiz.base.util.UtilValidate; -andExprs = FastList.newInstance(); -fieldValue = parameters[fieldName]; -if (fieldValue) { - andExprs.add(EntityCondition.makeCondition(EntityFunction.UPPER(EntityFieldValue.makeFieldValue(fieldName)), - EntityOperator.LIKE, "%" + fieldValue.toUpperCase() + "%")); +andExprs = []; +entityName = context.entityName; +searchFields = context.searchFields; +displayFields = context.displayFields ?: searchFields; +searchValueFieldName = parameters.searchValueField; +fieldValue = parameters.get(searchValueFieldName); + +if (searchFields && fieldValue) { + searchFieldsList = StringUtil.toList(searchFields); + displayFieldsSet = StringUtil.toSet(displayFields); + returnField = context.returnField ?: searchFieldsList[0]; //default to first element of searchFields + displayFieldsSet.add(returnField); //add it to select fields, in case it is missing + context.returnField = returnField; + context.displayFieldsSet = displayFieldsSet; + searchFieldsList.each { fieldName -> + andExprs.add(EntityCondition.makeCondition(EntityFunction.UPPER(EntityFieldValue.makeFieldValue(fieldName)), EntityOperator.LIKE, "%" + fieldValue.toUpperCase() + "%")); + } } -if (andExprs) { - entityConditionList = EntityCondition.makeCondition(andExprs, EntityOperator.AND); - autocompleteOptions = delegator.findList(entityName, entityConditionList, StringUtil.toList(selectFields) as Set, StringUtil.toList(sortByFields), null, false); - context.autocompleteOptions = autocompleteOptions; +if (andExprs && entityName && displayFieldsSet) { + Integer autocompleterViewSize = Integer.valueOf(context.autocompleterViewSize ?: 10); + entityConditionList = EntityCondition.makeCondition(andExprs, EntityOperator.OR); + EntityFindOptions findOptions = new EntityFindOptions(); + findOptions.setMaxRows(autocompleterViewSize); + autocompleteOptions = delegator.findList(entityName, entityConditionList, displayFieldsSet, StringUtil.toList(displayFields), findOptions, false); + if (autocompleteOptions) { + context.autocompleteOptions = autocompleteOptions; + } } Modified: ofbiz/trunk/framework/common/webcommon/includes/ajaxAutocompleteOptions.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/includes/ajaxAutocompleteOptions.ftl?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/framework/common/webcommon/includes/ajaxAutocompleteOptions.ftl (original) +++ ofbiz/trunk/framework/common/webcommon/includes/ajaxAutocompleteOptions.ftl Mon Dec 28 11:30:40 2009 @@ -17,11 +17,27 @@ under the License. --> -<#if autocompleteOptions?exists> - <ul> - <#list autocompleteOptions as autocompleteOption> - <#assign fields = autocompleteOption.values()/> - <li><#list fields as field><#if field_index == 1><span class="informal"> </#if>${field}<#if (field_index > 0)><#if field_has_next> <#else></span></#if></#if></#list></li> - </#list> - </ul> -</#if> +<ul> + <#if autocompleteOptions?exists> + <#assign displayReturnField = Static["org.ofbiz.base.util.UtilProperties"].getPropertyValue("widget.properties", "widget.autocompleter.displayReturnField")> + <#list autocompleteOptions as autocompleteOption> + <#assign displayString = ""/> + <#assign returnField = ""/> + <#-- <#list autocompleteOption.keySet() as key> instead use the field order of display fields --> + <#list context.displayFieldsSet as key> + <#assign field = autocompleteOption.get(key)?if_exists> + <#if field?has_content> + <#if (key == context.returnField)> + <#assign returnField = field/> + <#else> + <#assign displayString = displayString + field + " "> + </#if> + </#if> + </#list> + <#if ("Y" == displayReturnField)> + <#assign displayString = displayString + "[" + returnField + "]"> + </#if> + <li id="${returnField}"><#if (displayString?trim?has_content )>${displayString?trim}<#else>${returnField}</#if></li> + </#list> + </#if> +</ul> Modified: ofbiz/trunk/framework/common/widget/CommonScreens.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/widget/CommonScreens.xml?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/framework/common/widget/CommonScreens.xml (original) +++ ofbiz/trunk/framework/common/widget/CommonScreens.xml Mon Dec 28 11:30:40 2009 @@ -233,47 +233,65 @@ <!-- Global decorator for Lookup pop-up windows --> <screen name="LookupDecorator"> <section> - <actions> - <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/> - <service service-name="getUserPreferenceGroup" result-map="prefResult"> - <field-map field-name="userPrefGroupTypeId" value="GLOBAL_PREFERENCES"/> - </service> - <set field="userPreferences" from-field="prefResult.userPrefMap" global="true"/> - - <property-map resource="general" map-name="generalProperties" global="true"/> - <set field="visualThemeId" from-field="userPreferences.VISUAL_THEME" default-value="BIZZNESS_TIME" global="true"/> - <service service-name="getVisualThemeResources"> - <field-map field-name="visualThemeId"/> - <field-map field-name="themeResources" from-field="layoutSettings"/> - </service> - <set field="layoutSettings" from-field="themeResources" default-value="${layoutSettings}" global="true"/> - <set field="messagesTemplateLocation" from-field="layoutSettings.VT_MSG_TMPLT_LOC[0]" default-value="component://common/webcommon/includes/messages.ftl"/> - </actions> + <condition> + <if-empty field="parameters.ajaxLookup"/> + </condition> <widgets> - <platform-specific><html><html-template location="component://common/webcommon/includes/lookup.ftl"/></html></platform-specific> - <platform-specific><html><html-template location="${messagesTemplateLocation}"/></html></platform-specific> <section> - <condition> - <not><if-empty field="sections.body"/></not> - </condition> + <actions> + <property-map resource="CommonUiLabels" map-name="uiLabelMap" global="true"/> + <service service-name="getUserPreferenceGroup" result-map="prefResult"> + <field-map field-name="userPrefGroupTypeId" value="GLOBAL_PREFERENCES"/> + </service> + <set field="userPreferences" from-field="prefResult.userPrefMap" global="true"/> + + <property-map resource="general" map-name="generalProperties" global="true"/> + <set field="visualThemeId" from-field="userPreferences.VISUAL_THEME" default-value="BIZZNESS_TIME" global="true"/> + <service service-name="getVisualThemeResources"> + <field-map field-name="visualThemeId"/> + <field-map field-name="themeResources" from-field="layoutSettings"/> + </service> + <set field="layoutSettings" from-field="themeResources" default-value="${layoutSettings}" global="true"/> + <set field="messagesTemplateLocation" from-field="layoutSettings.VT_MSG_TMPLT_LOC[0]" default-value="component://common/webcommon/includes/messages.ftl"/> + </actions> <widgets> - <decorator-section-include name="body"/> - </widgets> - <fail-widgets> - <screenlet title="${title}" id="findScreenlet" collapsible="true" padded="false"> - <container id="search-options"> - <decorator-section-include name="search-options"/> - </container> - </screenlet> - <screenlet> - <container id="search-results"> - <decorator-section-include name="search-results"/> - </container> - </screenlet> - </fail-widgets> + <platform-specific><html><html-template location="component://common/webcommon/includes/lookup.ftl"/></html></platform-specific> + <platform-specific><html><html-template location="${messagesTemplateLocation}"/></html></platform-specific> + <section> + <condition> + <not><if-empty field="sections.body"/></not> + </condition> + <widgets> + <decorator-section-include name="body"/> + </widgets> + <fail-widgets> + <screenlet title="${title}" id="findScreenlet" collapsible="true" padded="false"> + <container id="search-options"> + <decorator-section-include name="search-options"/> + </container> + </screenlet> + <screenlet> + <container id="search-results"> + <decorator-section-include name="search-results"/> + </container> + </screenlet> + </fail-widgets> + </section> + <platform-specific><html><html-template location="component://common/webcommon/includes/lookupFooter.ftl"/></html></platform-specific> + </widgets> </section> - <platform-specific><html><html-template location="component://common/webcommon/includes/lookupFooter.ftl"/></html></platform-specific> </widgets> + <fail-widgets> + <section> + <actions> + <property-to-field resource="widget" property="widget.autocompleter.defaultViewSize" field="autocompleterViewSize"/> + <script location="component://common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy"/> + </actions> + <widgets> + <platform-specific><html><html-template location="component://common/webcommon/includes/ajaxAutocompleteOptions.ftl"/></html></platform-specific> + </widgets> + </section> + </fail-widgets> </section> </screen> Added: ofbiz/trunk/framework/images/webapp/images/ajax-loader.gif URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/ajax-loader.gif?rev=894149&view=auto ============================================================================== Binary file - no diff available. Propchange: ofbiz/trunk/framework/images/webapp/images/ajax-loader.gif ------------------------------------------------------------------------------ svn:mime-type = application/octet-stream Modified: ofbiz/trunk/framework/images/webapp/images/prototypejs/controls.js URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/prototypejs/controls.js?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/framework/images/webapp/images/prototypejs/controls.js (original) +++ ofbiz/trunk/framework/images/webapp/images/prototypejs/controls.js Mon Dec 28 11:30:40 2009 @@ -265,6 +265,13 @@ }, updateChoices: function(choices) { + var elem = new Element('div').insert(choices); + var elemType = elem.firstDescendant().tagName; + if('UL' != elemType) { + this.stopIndicator(); + this.index = 0; + return; + } if(!this.changed && this.hasFocus) { this.update.innerHTML = choices; Element.cleanWhitespace(this.update); Modified: ofbiz/trunk/framework/images/webapp/images/selectall.js URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/selectall.js?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/framework/images/webapp/images/selectall.js (original) +++ ofbiz/trunk/framework/images/webapp/images/selectall.js Mon Dec 28 11:30:40 2009 @@ -334,11 +334,16 @@ var numAreas = parseInt(areaArray.length / 3); for (var i = 0; i < numAreas * 3; i = i + 3) { var optionsDivId = areaArray[i] + "_autoCompleterOptions"; + var indicatorId = areaArray[i] + "_indicator"; $(areaArray[i]).insert({after: '<div class="autocomplete"' + 'id=' + optionsDivId + '></div>'}); - new Ajax.Autocompleter($(areaArray[i]), optionsDivId, areaArray[i + 1], {parameters: areaArray[i + 2]}); + new Ajax.Autocompleter($(areaArray[i]), optionsDivId, areaArray[i + 1], {parameters: areaArray[i + 2], indicator: indicatorId, afterUpdateElement : getSelectionId}); } } +function getSelectionId(text, li) { + text.value = li.id; +} + /** Enable auto-completion for drop-down elements. * @param descriptionElement The id of the text field * @param hiddenElement The id of the drop-down. Used as the id of hidden field inserted. Modified: ofbiz/trunk/framework/widget/config/widget.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/config/widget.properties?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/config/widget.properties (original) +++ ofbiz/trunk/framework/widget/config/widget.properties Mon Dec 28 11:30:40 2009 @@ -26,6 +26,12 @@ # Default number of items to be displayed per page in a list form widget.form.defaultViewSize=20 +# Default number of items to be displayed in lookup ajax autocompleter +widget.autocompleter.defaultViewSize=10 + +# Show/hide the ID field that is returned from ajax autocompleter +widget.autocompleter.displayReturnField=Y + # Default text find field's option widget.form.defaultTextFindOption=contains Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java (original) +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java Mon Dec 28 11:30:40 2009 @@ -1844,7 +1844,7 @@ public void renderLookupField(Appendable writer, Map<String, Object> context, LookupField lookupField) throws IOException { ModelFormField modelFormField = lookupField.getModelFormField(); - + String lookupFieldFormName = lookupField.getFormName(context); String className = ""; String alert = "false"; if (UtilValidate.isNotEmpty(modelFormField.getWidgetStyle())) { @@ -1864,6 +1864,20 @@ String id = modelFormField.getIdName(); List<ModelForm.UpdateArea> updateAreas = modelFormField.getOnChangeUpdateAreas(); + + //add default ajax auto completer to all lookup fields + if (UtilValidate.isEmpty(updateAreas) && UtilValidate.isNotEmpty(lookupFieldFormName)) { + String autoCompleterTarget = null; + if (lookupFieldFormName.indexOf('?') == -1) { + autoCompleterTarget = lookupFieldFormName + "?"; + } else { + autoCompleterTarget = lookupFieldFormName + "&"; + } + autoCompleterTarget = autoCompleterTarget + "ajaxLookup=Y&searchValueField=" + lookupField.getModelFormField().getParameterName(context); + updateAreas = FastList.newInstance(); + updateAreas.add(new ModelForm.UpdateArea("change", id, autoCompleterTarget)); + } + boolean ajaxEnabled = updateAreas != null && this.javaScriptEnabled; String autocomplete = ""; if (!lookupField.getClientAutocompleteField() || ajaxEnabled) { @@ -1894,7 +1908,7 @@ if (ajaxEnabled) { ajaxUrl = createAjaxParamsFromUpdateAreas(updateAreas, null, context); } - String lookupFieldFormName = lookupField.getFormName(context); + StringWriter sr = new StringWriter(); sr.append("<@renderLookupField "); sr.append(" className=\""); Modified: ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl (original) +++ ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl Mon Dec 28 11:30:40 2009 @@ -420,7 +420,9 @@ ,document.${formName}.${item}.value<#rt> </#list> </#if> -);"></a></li><#rt> +);"> +<#if ajaxEnabled?has_content && ajaxEnabled><span id="${id}_indicator" style="display: none" class="indicator"><img /></span></#if> +</a></li><#rt> </ul></div> <#if ajaxEnabled?has_content && ajaxEnabled> <script language="JavaScript" type="text/javascript">ajaxAutoCompleter('${ajaxUrl}');</script><#t/> Modified: ofbiz/trunk/themes/bizznesstime/webapp/bizznesstime/css/style.css URL: http://svn.apache.org/viewvc/ofbiz/trunk/themes/bizznesstime/webapp/bizznesstime/css/style.css?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/themes/bizznesstime/webapp/bizznesstime/css/style.css (original) +++ ofbiz/trunk/themes/bizznesstime/webapp/bizznesstime/css/style.css Mon Dec 28 11:30:40 2009 @@ -1369,6 +1369,44 @@ .login-screenlet .screenlet-title-bar { text-align: center; } +/*********************************************** +ajax auto complete +***********************************************/ +div.autocomplete { + position:absolute; + width:auto !important; +/* min-width:154px; */ + background-color:#f8f8f8; + border:1px solid #6e2723; + margin:0; + padding:0; + z-index:100; +} +div.autocomplete ul { + list-style-type:none; + margin:0; + padding:0; +} +div.autocomplete ul li.selected { + background-color: #ffb; +} +div.autocomplete ul li { + list-style-type:none; + display:block; + float: none; + margin:0; + padding:2px; + /*height:32px;*/ + cursor:pointer; +} + +.indicator img { + background: url(/images/ajax-loader.gif) no-repeat 0 0; + margin:3px 10px 0px 24px; + width:16px; + height:16px; + border: none; +} /*********************************************** Webtools Modified: ofbiz/trunk/themes/bluelight/webapp/bluelight/style.css URL: http://svn.apache.org/viewvc/ofbiz/trunk/themes/bluelight/webapp/bluelight/style.css?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/themes/bluelight/webapp/bluelight/style.css (original) +++ ofbiz/trunk/themes/bluelight/webapp/bluelight/style.css Mon Dec 28 11:30:40 2009 @@ -1284,7 +1284,45 @@ .login-screenlet .screenlet-title-bar { text-align: center; } - +/*********************************************** +ajax auto complete +***********************************************/ +div.autocomplete { + position:absolute; + width:auto !important; +/* min-width:154px; */ + background-color:#f8f8f8; + border:1px solid #999999; + margin:0; + padding:0; +} +div.autocomplete ul { + list-style-type:none; + margin:0; + padding:0; +} +div.autocomplete ul li.selected { + background-color: #ffb; +} +div.autocomplete ul li { + list-style-type:none; + display:block; + float: none; + margin:0; + padding:2px; + /*height:32px;*/ + cursor:pointer; +} + +.indicator img { + background: url(/images/ajax-loader.gif) no-repeat 0 0; + display: block; + margin:3px 10px 0px 24px; + width:16px; + height:16px; + border: none; +} + /* ======================================================= */ /* ===== Basic Navigation (Vertical Menu) Style ========== */ /* ======================================================= */ Modified: ofbiz/trunk/themes/droppingcrumbs/webapp/droppingcrumbs/css/style.css URL: http://svn.apache.org/viewvc/ofbiz/trunk/themes/droppingcrumbs/webapp/droppingcrumbs/css/style.css?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/themes/droppingcrumbs/webapp/droppingcrumbs/css/style.css (original) +++ ofbiz/trunk/themes/droppingcrumbs/webapp/droppingcrumbs/css/style.css Mon Dec 28 11:30:40 2009 @@ -1238,7 +1238,44 @@ .login-screenlet .screenlet-title-bar { text-align: center; } - +/*********************************************** +ajax auto complete +***********************************************/ +div.autocomplete { + position:absolute; + width:auto !important; +/* min-width:154px; */ + background-color:#f8f8f8; + border:1px solid #999999; + margin:0; + padding:0; +} +div.autocomplete ul { + list-style-type:none; + margin:0; + padding:0; +} +div.autocomplete ul li.selected { + background-color: #ffb; +} +div.autocomplete ul li { + list-style-type:none; + display:block; + float: none; + margin:0; + padding:2px; + /*height:32px;*/ + cursor:pointer; +} + +.indicator img { + background: url(/images/ajax-loader.gif) no-repeat 0 0; + display: block; + margin:3px 10px 0px 24px; + width:16px; + height:16px; + border: none; +} /* ======================================================= */ /* ===== Basic Navigation (Vertical Menu) Style ========== */ /* ======================================================= */ Modified: ofbiz/trunk/themes/flatgrey/webapp/flatgrey/maincss.css URL: http://svn.apache.org/viewvc/ofbiz/trunk/themes/flatgrey/webapp/flatgrey/maincss.css?rev=894149&r1=894148&r2=894149&view=diff ============================================================================== --- ofbiz/trunk/themes/flatgrey/webapp/flatgrey/maincss.css (original) +++ ofbiz/trunk/themes/flatgrey/webapp/flatgrey/maincss.css Mon Dec 28 11:30:40 2009 @@ -1268,7 +1268,44 @@ .login-screenlet .screenlet-title-bar { text-align: center; } - +/*********************************************** +ajax auto complete +***********************************************/ +div.autocomplete { + position:absolute; + width:auto !important; +/* min-width:154px; */ + background-color:#f8f8f8; + border:1px solid #999999; + margin:0; + padding:0; +} +div.autocomplete ul { + list-style-type:none; + margin:0; + padding:0; +} +div.autocomplete ul li.selected { + background-color: #ffb; +} +div.autocomplete ul li { + list-style-type:none; + display:block; + float: none; + margin:0; + padding:2px; + /*height:32px;*/ + cursor:pointer; +} + +.indicator img { + background: url(/images/ajax-loader.gif) no-repeat 0 0; + display: block; + margin:3px 10px 0px 24px; + width:16px; + height:16px; + border: none; +} /* ======================================================= */ /* ===== Basic Navigation (Vertical Menu) Style ========== */ /* ======================================================= */ |
| Free forum by Nabble | Edit this page |
