You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2008/08/20 22:51:18 UTC
svn commit: r687460 -
/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax-ng.js
Author: knopp
Date: Wed Aug 20 13:51:18 2008
New Revision: 687460
URL: http://svn.apache.org/viewvc?rev=687460&view=rev
Log:
just some crazy stuff
Modified:
wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax-ng.js
Modified: wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax-ng.js
URL: http://svn.apache.org/viewvc/wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax-ng.js?rev=687460&r1=687459&r2=687460&view=diff
==============================================================================
--- wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax-ng.js (original)
+++ wicket/sandbox/knopp/experimental/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax-ng.js Wed Aug 20 13:51:18 2008
@@ -447,6 +447,95 @@
W.Throttler = Throttler;
/*
+ * Convenience URL methods
+ */
+ var escapeParameter = function(text)
+ {
+ if (encodeURIComponent)
+ {
+ return encodeURIComponent(text);
+ } else
+ {
+ return escape(text);
+ }
+ }
+
+ var mapToUrlParameters = function(map)
+ {
+ var res = "";
+ for (key in map)
+ {
+ var value = map[key];
+ if (L.isString(value) || L.isNumber(value))
+ {
+ if (res.length > 0)
+ {
+ res += "&";
+ }
+ res += escapeParameter(key);
+ res += "=";
+ res += escapeParameter(value);
+ }
+ else if (L.isArray(value))
+ {
+ for (var i = 0; i < value.length; ++i)
+ {
+ var v = value[i];
+ if (L.isString(v) || L.isNumber(v))
+ {
+ if (res.length > 0)
+ {
+ res += "&";
+ }
+ res += escapeParameter(key);
+ res += "=";
+ res += escapeParameter(v);
+ }
+ }
+ }
+ }
+ return res;
+ }
+
+ var appendMap = function(target, map)
+ {
+ var append = function(key, value)
+ {
+ var oldValue = target[key];
+ if (oldValue == null)
+ {
+ target[key] = value;
+ }
+ else if (L.isArray(oldValue))
+ {
+ oldValue.push(value);
+ }
+ else
+ {
+ target[key] = [ oldValue, value];
+ }
+ }
+
+ for (key in map)
+ {
+ var value = map[key];
+
+ if (L.isArray(value))
+ {
+ for (var i = 0; i < value.length; ++i)
+ {
+ var v = value[i];
+ append(key, v);
+ }
+ }
+ else
+ {
+ append(key, value);
+ }
+ }
+ }
+
+ /*
* AJAX
*/
@@ -474,6 +563,7 @@
* be multipart, false otherwise. Note that for multipart AJAX
* requests a hidden IFRAME will be used and that can have
* negative impact on error detection.
+ * (doesn't work with current YUI 3 PR1 release)
*
* t, requestTimeout - Integer Timeout in milliseconds for the AJAX request. This only
* involves the actual communication and not the processing
@@ -689,10 +779,83 @@
}, this));
},
+ success: function()
+ {
+ if (this.next != null)
+ {
+ this.invokeSuccessHandlers();
+ this.next();
+ this.next = null;
+ }
+ },
+
+ failure: function()
+ {
+ if (this.next != null)
+ {
+ this.invokeFailureHandlers();
+ this.next();
+ this.next = null;
+ }
+ },
+
+ defaultUrlParameters: function()
+ {
+ var a = this.attributes;
+ var componentId = (a.component == null) ? null : (Wicket.$(a.component).getAttribute("id"));
+ var res =
+ {
+ "wicket:componentId" : componentId,
+ "wicket:pageId" : a.pageId,
+ "wicket:formId" : a.formId,
+ "wicket:listenerInterface" : a.listenerInterface,
+ "wicket:behaviorIndex" : a.behaviorIndex
+ };
+ return res;
+ },
+
+ buildUrl: function()
+ {
+ var url = W.ajax.getUrlPrefix();
+ var a = this.attributes;
+
+ var params = new Object();
+
+ if (a.urlArguments != null)
+ {
+ appendMap(params, a.urlArguments);
+ }
+ for (var i = 0; i < a.urlArgumentMethods.length; ++i)
+ {
+ var m = a.urlArgumentMethods[i](this);
+ if (L.isObject(m))
+ {
+ appendMap(params, m);
+ }
+ }
+
+ appendMap(params, this.defaultUrlParameters());
+
+ var paramsString = mapToUrlParameters(params);
+
+ if (paramsString.length > 0)
+ {
+ url += "?";
+ url += paramsString;
+ }
+
+ return url;
+ },
+
execute: function(next)
{
- this.invokeBeforeHandlers();
- next();
+ this.invokeBeforeHandlers();
+ this.next = next;
+
+ var url = this.buildUrl();
+ console.info(url);
+
+ this.success();
}
};
@@ -849,6 +1012,14 @@
return true;
};
+ var reqCount = 0;
+
+ var timestampArgumentMethod = function(item)
+ {
+ var stamp = "" + (reqCount ++) + (Math.ceil(Math.random() * 10000));
+ return { "wicket:timestamp": stamp };
+ }
+
var globalSettings =
{
defaultRequestTimeout: 60000,
@@ -861,7 +1032,7 @@
successHandlers: [],
errorHandlers: [],
urlPostProcessors: [],
- urlArgumentMethods: []
+ urlArgumentMethods: [ timestampArgumentMethod ]
};
var Ajax = function()
@@ -869,23 +1040,39 @@
this.globalSettings = globalSettings;
};
+ Ajax.prototype =
+ {
+ getUrlPrefix: function()
+ {
+ return globalSettings.urlPrefix;
+ }
+ };
+
W.ajax = new Ajax();
+ W.ajax.globalSettings.urlPrefix = "wicketfilter/ajax";
+
// ===================== REVERT THE OLD WICKET OBJECT =====================
+ Y.on("event:ready", function() {
+
+
+
var i = 0;
var pre = function(item) { /*console.info("X", item); */ return true; };
- var x = new RequestQueueItem({b:4,c:"cpn1234", pr:pre});
+ var x = new RequestQueueItem({b:4,c:"cpn1234", pr:pre, ua:{a:5} });
var y = new RequestQueue();
y.add(x);
y.add(x);
y.add(x);
y.add(x);
y.add(x);
- y.add(x);
+ y.add(x);
+
+ }, window);
- WicketNG = W;
+ WicketNG = W;
});