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 ========== */
/* ======================================================= */