You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by ad...@apache.org on 2015/02/10 22:57:29 UTC
wicket git commit: WICKET-5314 AbstractAutoCompleteBehavior does not
support AjaxChannels
Repository: wicket
Updated Branches:
refs/heads/master bd577a413 -> b8be53463
WICKET-5314 AbstractAutoCompleteBehavior does not support AjaxChannels
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/b8be5346
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/b8be5346
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/b8be5346
Branch: refs/heads/master
Commit: b8be5346311406fe394741009f943fdf5dc71809
Parents: bd577a4
Author: Andrea Del Bene <ad...@apache.org>
Authored: Tue Feb 10 22:57:04 2015 +0100
Committer: Andrea Del Bene <ad...@apache.org>
Committed: Tue Feb 10 22:57:04 2015 +0100
----------------------------------------------------------------------
.../AbstractAutoCompleteBehavior.java | 13 ++++-
.../html/autocomplete/wicket-autocomplete.js | 61 ++++++--------------
2 files changed, 28 insertions(+), 46 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/b8be5346/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
index dd648fa..82ed509 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/AbstractAutoCompleteBehavior.java
@@ -24,6 +24,7 @@ import org.apache.wicket.Application;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AbstractDefaultAjaxBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.markup.head.IHeaderResponse;
import org.apache.wicket.markup.head.IWrappedHeaderItem;
@@ -151,8 +152,8 @@ public abstract class AbstractAutoCompleteBehavior extends AbstractDefaultAjaxBe
indicatorId = "'" + indicatorId + "'";
}
- String initJS = String.format("new Wicket.AutoComplete('%s','%s',%s,%s);", id,
- getCallbackUrl(), constructSettingsJS(), indicatorId);
+ String initJS = String.format("new Wicket.AutoComplete('%s', %s, %s, %s);", id,
+ renderAjaxAttributes(getComponent(), getAttributes()), constructSettingsJS(), indicatorId);
final OnDomReadyHeaderItem onDomReady = OnDomReadyHeaderItem.forScript(initJS);
@@ -209,5 +210,13 @@ public abstract class AbstractAutoCompleteBehavior extends AbstractDefaultAjaxBe
onRequest(val, requestCycle);
}
+
+ @Override
+ protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
+ {
+ super.updateAjaxAttributes(attributes);
+ attributes.setWicketAjaxResponse(false);
+ attributes.setDataType("html");
+ }
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/b8be5346/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
index 97a5e28..c5d89fb 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/autocomplete/wicket-autocomplete.js
@@ -35,7 +35,7 @@
enterHidesWithNoSelection : false
};
- Wicket.AutoComplete=function(elementId, callbackUrl, cfg, indicatorId){
+ Wicket.AutoComplete=function(elementId, ajaxAttributes, cfg, indicatorId){
var KEY_TAB=9;
var KEY_ENTER=13;
var KEY_ESC=27;
@@ -333,64 +333,37 @@
}
function actualUpdateChoicesShowAll() {
- showIndicator();
-
- var paramName = cfg.parameterName;
- var attrs = {
- u: callbackUrl,
- pre: [ function (attributes) {
- // since attrs.c is not set, we have to check existence by ourself
- if (!Wicket.$$(elementId)) {
- return false;
- }
-
- var activeIsInitial = (document.activeElement === initialElement);
- var elementVal = Wicket.$(elementId).value;
- var hasMinimumLength = elementVal.length >= minInputLength;
-
- var result = hasMinimumLength && activeIsInitial;
- if (!result) {
- hideAutoComplete();
- }
- return result;
- }],
- ep: {},
- wr: false,
- dt: 'html',
- sh: [ doUpdateAllChoices ]
- };
- attrs.ep[paramName] = '';
- Wicket.Ajax.ajax(attrs);
+ prepareAndExecuteAjaxUpdate(doUpdateAllChoices, '');
}
function actualUpdateChoices() {
+ prepareAndExecuteAjaxUpdate(doUpdateChoices, Wicket.$(elementId).value);
+ }
+
+ function prepareAndExecuteAjaxUpdate(successHandler, currentInput){
showIndicator();
- var paramName = cfg.parameterName;
- var attrs = {
- u: callbackUrl,
+ var settings = jQuery.extend(true, {
pre: [ function (attributes) {
- // since attrs.c is not set, we have to check existence by ourself
- if (!Wicket.$$(elementId)) {
- return false;
- }
-
var activeIsInitial = (document.activeElement === initialElement);
- var elementVal = Wicket.$(elementId).value;
+ var elementVal = Wicket.$(elementId).value;
var hasMinimumLength = elementVal.length >= minInputLength;
+
var result = hasMinimumLength && activeIsInitial;
+
if (!result) {
hideAutoComplete();
}
+
return result;
}],
ep: {},
- wr: false,
- dt: 'html',
- sh: [ doUpdateChoices ]
- };
- attrs.ep[paramName] = Wicket.$(elementId).value;
- Wicket.Ajax.ajax(attrs);
+ sh: [ successHandler ]
+ }, ajaxAttributes);
+
+ settings.ep[cfg.parameterName] = currentInput;
+
+ Wicket.Ajax.ajax(settings);
}
function showIndicator() {