You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2012/01/01 15:56:24 UTC
[3/3] git commit: WICKET-3367 Rewrite all JavaScript inline event
handlers to be proper attached event handlers
WICKET-3367
Rewrite all JavaScript inline event handlers to be proper attached event handlers
Format the code. Use tabs.
No functional changes.
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e68c555c
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e68c555c
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e68c555c
Branch: refs/heads/master
Commit: e68c555c231878ca9da30a47d52dc4c07fbf6539
Parents: 5a45e8c
Author: martin-g <mg...@apache.org>
Authored: Sat Dec 31 09:40:25 2011 +0200
Committer: martin-g <mg...@apache.org>
Committed: Sat Dec 31 09:40:25 2011 +0200
----------------------------------------------------------------------
.../wicket/ajax/res/js/wicket-ajax-jquery.js | 544 +++++++-------
1 files changed, 272 insertions(+), 272 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/e68c555c/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
index dde8df6..672b54b 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js
@@ -55,7 +55,7 @@
isUndef = function (target) {
return (typeof(target) === 'undefined' || target === null);
};
-
+
replaceAll = function (str, from, to) {
var regex = '';
eval('regex = /' + from.replace( /\W/g ,'\\$&' ) + '/g ;');
@@ -92,8 +92,8 @@
var baseUrl = Wicket.Ajax.baseUrl || '.';
return baseUrl;
};
-
-
+
+
/**
* Functions executer takes array of functions and executes them. Each function gets
* the notify object, which needs to be called for the next function to be executed.
@@ -148,7 +148,7 @@
this.processNext();
};
};
-
+
// API start
@@ -170,7 +170,7 @@
},
info: function (msg) {
- if (Wicket.Log.enabled()) {
+ if (Wicket.Log.enabled()) {
Wicket.Ajax.DebugWindow.logInfo(msg);
}
},
@@ -321,7 +321,7 @@
Wicket.Ajax.invokePostCallHandlers();
Wicket.Ajax.invokeFailureHandlers();
},
-
+
done: function (channel) {
Wicket.channelManager.done(channel);
},
@@ -337,13 +337,13 @@
if (typeof(attrs.wr) !== 'boolean') {
attrs.wr = true;
}
-
+
// (dataType) by default we expect XML responses from the Ajax behaviors
if (typeof(attrs.dt) !== 'string') {
attrs.dt = 'xml';
}
},
-
+
/**
* Executes or schedules for execution #doAjax()
*
@@ -351,33 +351,33 @@
*/
ajax: function (attrs) {
this._normalizeAttributes(attrs);
-
+
var res = Wicket.channelManager.schedule(attrs.ch, Wicket.bind(function () {
this.doAjax(attrs);
}, this));
return res !== null ? res: true;
},
-
+
/**
* Handles execution of Ajax calls.
*
* @param {Object} attrs - the Ajax request attributes configured at the server side
*/
doAjax: function (attrs) {
-
+
var
// the headers to use for each Ajax request
headers = {
'Wicket-Ajax': 'true',
'Wicket-Ajax-BaseURL': getAjaxBaseUrl()
},
-
+
// the request (extra) parameters
data = attrs.ep || {},
-
+
// keep a reference to the current context
self = this,
-
+
/**
* A helper function that executes an array of handlers (before, success, failure)
* @param {Array} handlers - the handlers to execute
@@ -385,10 +385,10 @@
*/
executeHandlers = function (handlers, context) {
if (jQuery.isArray(handlers)) {
-
+
// cut the handlers argument
- var args = Array.prototype.slice.call(arguments).slice(1);
-
+ var args = Array.prototype.slice.call(arguments).slice(1);
+
for (var i = 0; i < handlers.length; i++) {
var handler = handlers[i];
if (jQuery.isFunction(handler)) {
@@ -399,7 +399,7 @@
}
}
},
-
+
// the precondition to use if there are no explicit ones
defaultPrecondition = [ function () {
if (attrs.c) {
@@ -410,11 +410,11 @@
}
}
}];
-
+
if (Wicket.Focus.lastFocusId) {
- headers["Wicket-FocusedElementId"] = Wicket.Focus.lastFocusId;
+ headers["Wicket-FocusedElementId"] = Wicket.Focus.lastFocusId;
}
-
+
// collect the dynamic extra parameters
if (jQuery.isArray(attrs.dep)) {
var deps = attrs.dep;
@@ -440,33 +440,33 @@
// serialize the form with id == attrs.f
var form = Wicket.$(attrs.f);
data = jQuery.extend({}, data, Wicket.Form.serializeForm(form));
-
+
// set the submitting component input name
if (attrs.sc) {
var scName = attrs.sc;
data = jQuery.extend({}, data, {scName: 1});
}
-
+
} else if (attrs.c) {
// serialize just the form component with id == attrs.c
var el = Wicket.$(attrs.c);
data = jQuery.extend({}, data, Wicket.Form.serializeElement(el));
}
-
+
// convert to URL encoded string
data = jQuery.param(data, true);
-
+
// execute the request
jQuery.ajax({
url: attrs.u,
type: attrs.m || 'GET',
context: self,
beforeSend: function () {
-
+
var preconditions = attrs.pre || defaultPrecondition;
if (jQuery.isArray(preconditions)) {
for (var p = 0; p < preconditions.length; p++) {
-
+
var precondition = preconditions[p];
var result;
if (jQuery.isFunction(precondition)) {
@@ -483,7 +483,7 @@
}
executeHandlers(attrs.bh);
-
+
if (attrs.i) {
// show the indicator
Wicket.DOM.show(attrs.i);
@@ -499,9 +499,9 @@
if (attrs.wr) {
self.stateChangeCallback(data, textStatus, jqXHR, attrs);
}
-
+
executeHandlers(attrs.sh, data, textStatus, jqXHR);
-
+
},
error: function(jqXHR, textStatus, errorThrown) {
@@ -516,13 +516,13 @@
this.done(attrs.ch);
}
});
-
+
var allowDefault = attrs.ad || false;
-
+
if (!allowDefault && attrs.event) {
Wicket.Event.fix(attrs.event).preventDefault();
}
-
+
return allowDefault;
},
@@ -535,7 +535,7 @@
calculatedRedirect;
if (jqXHR.readyState === 4) {
-
+
// response came without error
responseAsText = jqXHR.responseText;
@@ -552,39 +552,39 @@
// A file download popup will appear but the page in the browser won't change.
this.done(attrs.ch);
- // support/check for non-relative redirectUrl like as provided and needed in a portlet context
+ // support/check for non-relative redirectUrl like as provided and needed in a portlet context
if (redirectUrl.charAt(0) === ('/') || redirectUrl.match("^http://") === "http://" || redirectUrl.match("^https://") === "https://") {
- window.location = redirectUrl;
+ window.location = redirectUrl;
}
else {
- urlDepth = 0;
- while (redirectUrl.substring(0, 3) === "../") {
- urlDepth++;
- redirectUrl = redirectUrl.substring(3);
- }
- // Make this a string.
- calculatedRedirect = window.location.pathname;
- while (urlDepth > -1) {
- urlDepth--;
- var i = calculatedRedirect.lastIndexOf("/");
- if (i > -1) {
+ urlDepth = 0;
+ while (redirectUrl.substring(0, 3) === "../") {
+ urlDepth++;
+ redirectUrl = redirectUrl.substring(3);
+ }
+ // Make this a string.
+ calculatedRedirect = window.location.pathname;
+ while (urlDepth > -1) {
+ urlDepth--;
+ var i = calculatedRedirect.lastIndexOf("/");
+ if (i > -1) {
calculatedRedirect = calculatedRedirect.substring(0, i);
- }
- }
+ }
+ }
calculatedRedirect += "/" + redirectUrl;
- if (Wicket.Browser.isGecko()) {
+ if (Wicket.Browser.isGecko()) {
// firefox 3 has problem with window.location setting relative url
calculatedRedirect = window.location.protocol + "//" + window.location.host + calculatedRedirect;
- }
+ }
- window.location = calculatedRedirect;
+ window.location = calculatedRedirect;
}
}
else {
// no redirect, just regular response
Wicket.Log.info("Received ajax response (" + responseAsText.length + " characters)");
- if (this.debugContent !== false) {
+ if (this.debugContent) {
Wicket.Log.info("\n" + responseAsText);
}
@@ -617,7 +617,7 @@
}
var submittingAttribute = 'data-wicket-submitting';
-
+
if (form.onsubmit && !form.getAttribute(submittingAttribute)) {
form.setAttribute(submittingAttribute, submittingAttribute);
var retValue = form.onsubmit();
@@ -685,7 +685,7 @@
handleMultipartComplete: function (event) {
var iframe = event.target;
-
+
var envelope = iframe.contentWindow.document;
if (envelope.XMLDocument) {
envelope = envelope.XMLDocument;
@@ -719,13 +719,13 @@
var root = envelope.getElementsByTagName("ajax-response")[0];
// the root element must be <ajax-response
- if (isUndef(root) || root.tagName !== "ajax-response") {
+ if (isUndef(root) || root.tagName !== "ajax-response") {
this.failure("Could not find root <ajax-response> element");
return;
- }
+ }
// initialize the array for steps (closures that execute each action)
- var steps = [];
+ var steps = [];
// start it a bit later so that the browser does handle the next event
// before the component is or can be replaced. We could do (if (!posponed))
@@ -745,24 +745,24 @@
// go through the ajax response and for every action (component, js evaluation, header contribution)
// ad the proper closure to steps
var stepIndexOfLastReplacedComponent = -1;
- for (var i = 0; i < root.childNodes.length; ++i) {
+ for (var i = 0; i < root.childNodes.length; ++i) {
var node = root.childNodes[i];
- if (node.tagName === "component") {
+ if (node.tagName === "component") {
if (stepIndexOfLastReplacedComponent === -1) {
this.processFocusedComponentMark(steps);
}
stepIndexOfLastReplacedComponent = steps.length;
this.processComponent(steps, node);
- } else if (node.tagName === "evaluate") {
+ } else if (node.tagName === "evaluate") {
this.processEvaluation(steps, node, attrs);
- } else if (node.tagName === "header-contribution") {
+ } else if (node.tagName === "header-contribution") {
this.processHeaderContribution(steps, node);
- } else if (node.tagName === "redirect") {
+ } else if (node.tagName === "redirect") {
this.processRedirect(steps, node);
- }
+ }
- }
+ }
if (stepIndexOfLastReplacedComponent !== -1) {
this.processFocusedComponentReplaceCheck(steps, stepIndexOfLastReplacedComponent);
}
@@ -771,8 +771,8 @@
this.success(steps);
Wicket.Log.info("Response parsed. Now invoking steps...");
- var executer = new FunctionsExecuter(steps);
- executer.start();
+ var executer = new FunctionsExecuter(steps);
+ executer.start();
} catch (e) {
this.failure(e.message);
}
@@ -832,20 +832,20 @@
processEvaluation: function (steps, node, attrs) {
steps.push(function (notify) {
// get the javascript body
- var text = jQuery(node).text();
+ var text = jQuery(node).text();
- // unescape it if necessary
- var encoding = node.getAttribute("encoding");
- if (encoding) {
- text = Wicket.Head.Contributor.decode(encoding, text);
- }
+ // unescape it if necessary
+ var encoding = node.getAttribute("encoding");
+ if (encoding) {
+ text = Wicket.Head.Contributor.decode(encoding, text);
+ }
- // test if the javascript is in form of identifier|code
- // if it is, we allow for letting the javascript decide when the rest of processing will continue
- // by invoking identifier();
- var res = text.match(new RegExp("^([a-z|A-Z_][a-z|A-Z|0-9_]*)\\|((.|\\n)*)$"));
+ // test if the javascript is in form of identifier|code
+ // if it is, we allow for letting the javascript decide when the rest of processing will continue
+ // by invoking identifier();
+ var res = text.match(new RegExp("^([a-z|A-Z_][a-z|A-Z|0-9_]*)\\|((.|\\n)*)$"));
- if (res !== null) {
+ if (res !== null) {
var f = jQuery.noop;
text = "f = function(" + res[1] + ") {" + res[2] + "};";
@@ -853,9 +853,9 @@
// do the evaluation
eval(text);
f(notify);
- } catch (exception) {
+ } catch (exception) {
Wicket.Log.error("Wicket.Ajax.Call.processEvaluation: Exception evaluating javascript: " + exception + ", text: " + text);
- }
+ }
} else {
// just evaluate the javascript
@@ -864,8 +864,8 @@
eval(text);
} catch (exception) {
Wicket.Log.error("Wicket.Ajax.Call.processEvaluation: Exception evaluating javascript: " + exception + ", text: " + text);
- }
- // continue to next step
+ }
+ // continue to next step
notify();
}
});
@@ -932,28 +932,28 @@
},
getTimeoutVar: function () {
- return this.timeoutVar;
+ return this.timeoutVar;
},
setTimeoutVar: function (timeoutVar) {
- this.timeoutVar = timeoutVar;
+ this.timeoutVar = timeoutVar;
}
};
Wicket.Throttler = Wicket.Class.create();
Wicket.Throttler.prototype = {
- /* "postponeTimerOnUpdate" is an optional parameter. If it is set to true, then the timer is
- reset each time the throttle function gets called. Use this behaviour if you want something
- to happen at X milliseconds after the *last* call to throttle.
- If the parameter is not set, or set to false, then the timer is not reset. */
+ /* "postponeTimerOnUpdate" is an optional parameter. If it is set to true, then the timer is
+ reset each time the throttle function gets called. Use this behaviour if you want something
+ to happen at X milliseconds after the *last* call to throttle.
+ If the parameter is not set, or set to false, then the timer is not reset. */
initialize: function (postponeTimerOnUpdate) {
this.entries = [];
if (postponeTimerOnUpdate !== undefined) {
- this.postponeTimerOnUpdate = postponeTimerOnUpdate;
+ this.postponeTimerOnUpdate = postponeTimerOnUpdate;
}
- else {
- this.postponeTimerOnUpdate = false;
+ else {
+ this.postponeTimerOnUpdate = false;
}
},
@@ -966,11 +966,11 @@
this.entries[id] = entry;
} else {
entry.setFunc(func);
- if (this.postponeTimerOnUpdate === true)
- {
- window.clearTimeout(entry.getTimeoutVar());
- entry.setTimeoutVar(window.setTimeout(function() { me.execute(id); }, millis));
- }
+ if (this.postponeTimerOnUpdate === true)
+ {
+ window.clearTimeout(entry.getTimeoutVar());
+ entry.setTimeoutVar(window.setTimeout(function() { me.execute(id); }, millis));
+ }
}
},
@@ -978,7 +978,7 @@
var entry = this.entries[id];
if (typeof(entry) !== 'undefined') {
var func = entry.getFunc();
- this.entries[id] = undefined;
+ this.entries[id] = undefined;
var tmp = func();
}
}
@@ -1003,7 +1003,7 @@
$$: function (element) {
return Wicket.DOM.inDoc(element);
},
-
+
/**
* Takes a function and returns a new one that will always have a particular context, i.e. 'this' will be the passed context.
*
@@ -1028,7 +1028,7 @@
Wicket.Log.error("Error while parsing to XML: " + text);
}
}
-
+
return xmldoc;
}
},
@@ -1042,11 +1042,11 @@
Form: {
encode: function (text) {
- if (window.encodeURIComponent) {
- return window.encodeURIComponent(text);
- } else {
- return window.escape(text);
- }
+ if (window.encodeURIComponent) {
+ return window.encodeURIComponent(text);
+ } else {
+ return window.escape(text);
+ }
},
/**
@@ -1065,7 +1065,7 @@
result[name] = $select.val();
}
}
- return result;
+ return result;
},
/**
@@ -1078,13 +1078,13 @@
serializeInput: function (input) {
var result = {};
if (input && input.type && !(input.type === 'image' || input.type === 'submit')) {
- var $input = jQuery(input);
- if ($input.length > 0 && $input.prop('disabled') === false) {
- var name = $input.attr('name');
- result[name] = $input.val();
- }
- }
- return result;
+ var $input = jQuery(input);
+ if ($input.length > 0 && $input.prop('disabled') === false) {
+ var name = $input.attr('name');
+ result[name] = $input.val();
+ }
+ }
+ return result;
},
//list of item to exclude from serialization
@@ -1102,33 +1102,33 @@
return {};
}
- var tag = element.tagName.toLowerCase();
- if (tag === "select") {
- return Wicket.Form.serializeSelect(element);
- } else if (tag === "input" || tag === "textarea") {
- return Wicket.Form.serializeInput(element);
- } else {
+ var tag = element.tagName.toLowerCase();
+ if (tag === "select") {
+ return Wicket.Form.serializeSelect(element);
+ } else if (tag === "input" || tag === "textarea") {
+ return Wicket.Form.serializeInput(element);
+ } else {
return {};
- }
+ }
},
serializeForm: function (form) {
- var result = {},
- elements = form.elements;
- for (var i = 0; i < elements.length; ++i) {
- var el = elements[i];
- if (el.name && el.name !== "") {
- result = jQuery.extend({}, result, Wicket.Form.serializeElement(el));
- }
- }
- return result;
+ var result = {},
+ elements = form.elements;
+ for (var i = 0; i < elements.length; ++i) {
+ var el = elements[i];
+ if (el.name && el.name !== "") {
+ result = jQuery.extend({}, result, Wicket.Form.serializeElement(el));
+ }
+ }
+ return result;
},
serialize: function (element, dontTryToFindRootForm) {
if (typeof(element) === 'string') {
element = Wicket.$(element);
}
-
+
if (element.tagName.toLowerCase() === "form") {
return Wicket.Form.serializeForm(element);
} else {
@@ -1170,17 +1170,17 @@
/** shows an element */
show: function (e) {
- e = Wicket.$(e);
- if (e !== null) {
- e.style.display = "";
+ e = Wicket.$(e);
+ if (e !== null) {
+ e.style.display = "";
}
},
/** hides an element */
hide: function (e) {
- e = Wicket.$(e);
- if (e !== null) {
- e.style.display = "none";
+ e = Wicket.$(e);
+ if (e !== null) {
+ e.style.display = "none";
}
},
@@ -1239,7 +1239,7 @@
element = Wicket.$(element);
}
if (isUndef(element) || isUndef(element.tagName)) {
- return true;
+ return true;
}
var id = element.getAttribute('id');
@@ -1278,7 +1278,7 @@
var $newElement = jQuery(text);
jQuery(element).replaceWith($newElement);
}
-
+
var newElement = Wicket.$(element.id);
Wicket.Event.publish('/dom/node/added', newElement);
},
@@ -1463,17 +1463,17 @@
* component body itself contains a CDATA section, Wicket needs to escape it properly.
*/
decode: function (encoding, text) {
-
+
var decode1 = function (text) {
- return replaceAll(text, "]^", "]");
+ return replaceAll(text, "]^", "]");
};
-
- if (encoding === "wicket1") {
- text = decode1(text);
- }
- return text;
+
+ if (encoding === "wicket1") {
+ text = decode1(text);
+ }
+ return text;
},
-
+
// Parses the header contribution element (returns a DOM tree with the contribution)
parse: function (headerNode) {
// the header contribution is stored as CDATA section in the header-contribution element.
@@ -1481,61 +1481,61 @@
// contribution needs to be treated separately. The reason for this is that
// Konqueror crashes when it there is a <script element in the parsed string. So we
// need to replace that first
-
+
// get the header contribution text and unescape it if necessary
var text = jQuery(headerNode).text();
- var encoding = headerNode.getAttribute("encoding");
-
- if (encoding !== null && encoding !== "") {
- text = this.decode(encoding, text);
- }
-
- if (Wicket.Browser.isKHTML()) {
+ var encoding = headerNode.getAttribute("encoding");
+
+ if (encoding !== null && encoding !== "") {
+ text = this.decode(encoding, text);
+ }
+
+ if (Wicket.Browser.isKHTML()) {
// konqueror crashes if there is a <script element in the xml, but <SCRIPT is fine.
text = text.replace(/<script/g, "<SCRIPT");
text = text.replace(/<\/script>/g, "</SCRIPT>");
}
-
+
// build a DOM tree of the contribution
var xmldoc = Wicket.Xml.parse(text);
return xmldoc;
},
-
+
// checks whether the passed node is the special "parsererror"
// created by DOMParser if there is a error in XML parsing
// TODO: move out of the API section
_checkParserError: function (node) {
var result = false;
-
+
if (!isUndef(node.tagName) && node.tagName.toLowerCase() === "parsererror") {
Wicket.Log.error("Error in parsing: " + node.textContent);
result = true;
}
return result;
},
-
+
// Processes the parsed header contribution
processContribution: function (steps, headerNode) {
var xmldoc = this.parse(headerNode);
var rootNode = xmldoc.documentElement;
-
+
// Firefox and Opera reports the error in the documentElement
if (this._checkParserError(rootNode)) {
return;
}
-
+
// go through the individual elements and process them according to their type
for (var i = 0; i < rootNode.childNodes.length; i++) {
var node = rootNode.childNodes[i];
-
+
// Chromium reports the error as a child node
if (this._checkParserError(node)) {
return;
}
-
+
if (!isUndef(node.tagName)) {
var name = node.tagName.toLowerCase();
-
+
// it is possible that a reference is surrounded by a <wicket:link
// in that case, we need to find the inner element
if (name === "wicket:link") {
@@ -1549,9 +1549,9 @@
}
}
}
-
+
// process the element
- if (name === "link") {
+ if (name === "link") {
this.processLink(steps, node);
} else if (name === "script") {
this.processScript(steps, node);
@@ -1563,7 +1563,7 @@
}
}
},
-
+
// Process an external stylesheet element
processLink: function (steps, node) {
steps.push(function (notify) {
@@ -1574,16 +1574,16 @@
}
// create link element
var css = Wicket.Head.createElement("link");
-
+
// copy required attributes
css.id = node.getAttribute("id");
css.rel = node.getAttribute("rel");
css.href = node.getAttribute("href");
css.type = node.getAttribute("type");
-
+
// add element to head
Wicket.Head.addElement(css);
-
+
// cross browser way to check when the css is loaded
// taked from http://www.backalleycoder.com/2011/03/20/link-tag-css-stylesheet-load-event/
// this makes a second GET request to the css but it gets it either from the cache or
@@ -1598,14 +1598,14 @@
}
img.src = css.href;
if (img.complete) {
- if (!notifyCalled) {
+ if (!notifyCalled) {
notifyCalled = true;
notify();
}
- }
+ }
});
},
-
+
// Process an inline style element
processStyle: function (steps, node) {
steps.push(function (notify) {
@@ -1616,13 +1616,13 @@
}
// serialize the style to string
var content = Wicket.DOM.serializeNodeChildren(node);
-
+
// create style element
var style = Wicket.Head.createElement("style");
-
+
// copy id attribute
style.id = node.getAttribute("id");
-
+
// create stylesheet
if (Wicket.Browser.isIE()) {
try {
@@ -1644,12 +1644,12 @@
style.appendChild(textNode);
}
Wicket.Head.addElement(style);
-
+
// continue to next step
notify();
});
},
-
+
// Process a script element (both inline and external)
processScript: function (steps, node) {
steps.push(function (notify) {
@@ -1660,28 +1660,28 @@
notify();
return;
}
-
+
// determine whether it is external javascript (has src attribute set)
var src = node.getAttribute("src");
-
+
if (src !== null && src !== "") {
-
+
// convert the XML node to DOM node
var scriptDomNode = document.createElement("script");
-
+
var attrs = node.attributes;
for (var a = 0; a < attrs.length; a++) {
var attr = attrs[a];
scriptDomNode[attr.name] = attr.value;
}
-
+
var onScriptReady = function () {
- notify();
+ notify();
};
-
+
// first check for feature support
if (typeof(scriptDomNode.onload) !== 'undefined') {
- scriptDomNode.onload = onScriptReady;
+ scriptDomNode.onload = onScriptReady;
} else if (typeof(scriptDomNode.onreadystatechange) !== 'undefined') {
scriptDomNode.onreadystatechange = function () {
if (scriptDomNode.readyState === 'loaded' || scriptDomNode.readyState === 'complete') {
@@ -1689,24 +1689,24 @@
}
};
} else if (Wicket.Browser.isGecko()) {
- // Firefox doesn't react on the checks above but still supports 'onload'
- scriptDomNode.onload = onScriptReady;
+ // Firefox doesn't react on the checks above but still supports 'onload'
+ scriptDomNode.onload = onScriptReady;
} else {
- // as a final resort notify after the current function execution
- window.setTimeout(onScriptReady, 10);
+ // as a final resort notify after the current function execution
+ window.setTimeout(onScriptReady, 10);
}
-
+
Wicket.Head.addElement(scriptDomNode);
-
+
} else {
// serialize the element content to string
var text = Wicket.DOM.serializeNodeChildren(node);
// get rid of prefix and suffix, they are not eval-d correctly
text = text.replace(/^<!--\/\*--><!\[CDATA\[\/\*><!--\*\//, "");
text = text.replace(/\/\*-->\]\]>\*\/$/, "");
-
+
var id = node.getAttribute("id");
-
+
if (typeof(id) === "string" && id.length > 0) {
// add javascript to document head
Wicket.Head.addJavascript(text, id);
@@ -1717,13 +1717,13 @@
Wicket.Log.error("Wicket.Head.Contributor.processScript: " + e + ": eval -> " + text);
}
}
-
+
// continue to next step
notify();
}
});
},
-
+
// process (conditional) comments
processComment: function (steps, node) {
steps.push(function (notify) {
@@ -1784,7 +1784,7 @@
var loadedUrl_ = Wicket.Head._stripJSessionId(
node.getAttribute(mandatoryAttribute+"_"));
if (loadedUrl === attr || loadedUrl_ === attr) {
- return true;
+ return true;
}
}
}
@@ -1879,8 +1879,8 @@
}
}
if (typeof(element) !== "undefined" &&
- typeof(element.tagName) !== "undefined" &&
- element.tagName.toLowerCase() === "script") {
+ typeof(element.tagName) !== "undefined" &&
+ element.tagName.toLowerCase() === "script") {
add(element);
} else {
// we need to check if there are any children, because Safari
@@ -2075,10 +2075,10 @@
setFocus: function (event) {
event = Wicket.Event.fix(event);
- // IE doesn't have the property "target".
- // Use "srcElement" instead.
- var target = event.target ? event.target : event.srcElement;
- if (target) {
+ // IE doesn't have the property "target".
+ // Use "srcElement" instead.
+ var target = event.target ? event.target : event.srcElement;
+ if (target) {
Wicket.Focus.refocusLastFocusedComponentAfterResponse = false;
Wicket.Focus.lastFocusId = target.id;
Wicket.Log.info("focus set on " + Wicket.Focus.lastFocusId);
@@ -2088,10 +2088,10 @@
blur: function (event) {
event = Wicket.Event.fix(event);
- // IE doesn't have the property "target".
- // Use "srcElement" instead.
- var target = event.target ? event.target : event.srcElement;
- if (target && Wicket.Focus.lastFocusId === target.id) {
+ // IE doesn't have the property "target".
+ // Use "srcElement" instead.
+ var target = event.target ? event.target : event.srcElement;
+ if (target && Wicket.Focus.lastFocusId === target.id) {
if (Wicket.Focus.refocusLastFocusedComponentAfterResponse) {
// replaced components seem to blur when replaced only on Safari - so do not modify lastFocusId so it gets refocused
Wicket.Log.info("focus removed from " + target.id + " but ignored because of component replacement");
@@ -2207,12 +2207,12 @@
var len = elements.length;
for (var i = 0; i < len; i++)
{
- if (elements[i].wicketFocusSet !== true)
- {
- Wicket.Event.add(elements[i], 'focus', Wicket.Focus.setFocus);
- Wicket.Event.add(elements[i], 'blur', Wicket.Focus.blur);
- elements[i].wicketFocusSet = true;
- }
+ if (elements[i].wicketFocusSet !== true)
+ {
+ Wicket.Event.add(elements[i], 'focus', Wicket.Focus.setFocus);
+ Wicket.Event.add(elements[i], 'blur', Wicket.Focus.blur);
+ elements[i].wicketFocusSet = true;
+ }
}
},
@@ -2230,61 +2230,61 @@
* A special event that is used to listen for immediate changes in input fields.
*/
jQuery.event.special.inputchange = {
-
+
keys : {
BACKSPACE : 8,
- TAB : 9,
- ENTER : 13,
- ESC : 27,
- LEFT : 37,
- UP : 38,
- RIGHT : 39,
- DOWN : 40,
- SHIFT : 16,
- CTRL : 17,
- ALT : 18,
- END : 35,
- HOME : 36
+ TAB : 9,
+ ENTER : 13,
+ ESC : 27,
+ LEFT : 37,
+ UP : 38,
+ RIGHT : 39,
+ DOWN : 40,
+ SHIFT : 16,
+ CTRL : 17,
+ ALT : 18,
+ END : 35,
+ HOME : 36
},
-
+
keyDownPressed : false,
-
- setup: function () {
- if (Wicket.Browser.isIE()) {
-
- jQuery(this).on('keydown', function (event) {
- jQuery.event.special.inputchange.keyDownPressed = true;
- });
-
- jQuery(this).on("cut paste", function (event) {
+ setup: function () {
+
+ if (Wicket.Browser.isIE()) {
+
+ jQuery(this).on('keydown', function (event) {
+ jQuery.event.special.inputchange.keyDownPressed = true;
+ });
+
+ jQuery(this).on("cut paste", function (event) {
var self = this;
- if (false === jQuery.event.special.inputchange.keyDownPressed) {
- setTimeout(function() {
- jQuery.event.special.inputchange.handler.apply(self, arguments)
- }, 10);
- }
- });
-
- jQuery(this).on("keyup", function (event) {
- jQuery.event.special.inputchange.keyDownPressed = false; // reset
- jQuery.event.special.inputchange.handler.apply(this, arguments);
- });
-
- } else {
-
- jQuery(this).on("input", jQuery.event.special.inputchange.handler);
- }
- },
-
- teardown: function() {
- jQuery(this).off("input keyup cut paste", jQuery.event.special.inputchange.handler);
- },
-
- handler: function( event ) {
- var WE = Wicket.Event;
+ if (false === jQuery.event.special.inputchange.keyDownPressed) {
+ setTimeout(function() {
+ jQuery.event.special.inputchange.handler.apply(self, arguments)
+ }, 10);
+ }
+ });
+
+ jQuery(this).on("keyup", function (event) {
+ jQuery.event.special.inputchange.keyDownPressed = false; // reset
+ jQuery.event.special.inputchange.handler.apply(this, arguments);
+ });
+
+ } else {
+
+ jQuery(this).on("input", jQuery.event.special.inputchange.handler);
+ }
+ },
+
+ teardown: function() {
+ jQuery(this).off("input keyup cut paste", jQuery.event.special.inputchange.handler);
+ },
+
+ handler: function( event ) {
+ var WE = Wicket.Event;
var k = jQuery.event.special.inputchange.keys;
var kc = WE.keyCode(WE.fix(event));
switch (kc) {
@@ -2302,11 +2302,11 @@
case k.END:
return WE.stop(event);
default:
- event.type = "inputchange";
- var args = Array.prototype.slice.call( arguments, 0 );
- return jQuery.event.handle.apply( event.target, args );
- }
- }
+ event.type = "inputchange";
+ var args = Array.prototype.slice.call( arguments, 0 );
+ return jQuery.event.handle.apply( event.target, args );
+ }
+ }
};
// MISC FUNCTIONS
@@ -2315,28 +2315,28 @@
Wicket.Ajax.registerPreCallHandler(function () {
if (typeof(window.wicketGlobalPreCallHandler) !== "undefined") {
- var global = window.wicketGlobalPreCallHandler;
- if (global !== null) {
+ var global = window.wicketGlobalPreCallHandler;
+ if (global !== null) {
global();
- }
+ }
}
});
Wicket.Ajax.registerPostCallHandler(function () {
if (typeof(window.wicketGlobalPostCallHandler) !== "undefined") {
- var global = window.wicketGlobalPostCallHandler;
- if (global !== null) {
+ var global = window.wicketGlobalPostCallHandler;
+ if (global !== null) {
global();
- }
+ }
}
});
Wicket.Ajax.registerFailureHandler(function () {
if (typeof(window.wicketGlobalFailureHandler) !== "undefined") {
- var global = window.wicketGlobalFailureHandler;
- if (global !== null) {
+ var global = window.wicketGlobalFailureHandler;
+ if (global !== null) {
global();
- }
+ }
}
});