You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2019/05/15 21:24:48 UTC
[wicket] 08/16: WICKET-6667 JS removed Wicket.Browser.isIE..()
This is an automated email from the ASF dual-hosted git repository.
svenmeier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git
commit 022e5f31da9c62cc6e3f8c99d87d3dc7cb36b5aa
Author: Sven Meier <sv...@apache.org>
AuthorDate: Tue May 7 07:47:38 2019 +0200
WICKET-6667 JS removed Wicket.Browser.isIE..()
was used for special event "inputchange" only, which seems to work fine
in IE >=11
---
.../wicket/ajax/form/OnChangeAjaxBehavior.java | 13 +--
.../wicket/ajax/res/js/wicket-ajax-jquery.js | 118 ---------------------
.../wicket/ajax/form/OnChangeAjaxBehaviorTest.java | 2 +-
.../OnChangeAjaxBehaviorTestPage_expected.html | 2 +-
wicket-core/src/test/js/all.html | 2 -
wicket-core/src/test/js/event.js | 18 ----
6 files changed, 7 insertions(+), 148 deletions(-)
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
index f960d29..a730455 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/form/OnChangeAjaxBehavior.java
@@ -30,9 +30,8 @@ import org.danekja.java.util.function.serializable.SerializableConsumer;
* changed.
* <p>
* This behavior uses best available method to track changes on different types of form components.
- * To accomplish this for text input form components it uses a custom event, named 'inputchange',
- * that is handled in the best way for the specific browser. For other form component types the
- * 'change' event is used.
+ * For text input form components it uses event 'input', for other form component types the 'change'
+ * event is used.
* </p>
*
* @author Janne Hietamäki (janne)
@@ -46,11 +45,9 @@ public abstract class OnChangeAjaxBehavior extends AjaxFormComponentUpdatingBeha
private static final long serialVersionUID = 1L;
/**
- * 'inputchange' event delegates to 'input', 'keyup', 'cut' and 'paste' events
- * for text input form component depending on the browser.
- * 'change' is used as a fallback for all other form component types.
+ * 'input' and 'change' used as a fallback for all other form component types.
*/
- public static final String EVENT_NAME = "inputchange change";
+ public static final String EVENT_NAME = "input change";
/**
* the change event
@@ -72,7 +69,7 @@ public abstract class OnChangeAjaxBehavior extends AjaxFormComponentUpdatingBeha
Component component = getComponent();
- // textfiels and textareas will trigger this behavior with either 'inputchange' or 'change' events
+ // textfiels and textareas will trigger this behavior with either 'input' or 'change' events
// all the other components will use just 'change'
if (!(component instanceof TextField || component instanceof TextArea))
{
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 dab6b21..66319bf 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
@@ -2432,39 +2432,6 @@
jQuery.extend(true, Wicket, {
- Browser: {
- _isIE: null,
- isIE: function () {
- var wb = Wicket.Browser;
- if (wb._isIE === null) {
- wb._isIE = (typeof(document.all) !== "undefined" || window.navigator.userAgent.indexOf("Trident/")>-1) && typeof(window.opera) === "undefined";
- }
- return wb._isIE;
- },
-
- _isIEQuirks: null,
- isIEQuirks: function () {
- var wb = Wicket.Browser;
- if (wb._isIEQuirks === null) {
- // is the browser internet explorer in quirks mode (we could use document.compatMode too)
- wb._isIEQuirks = Wicket.Browser.isIE() && window.document.documentElement.clientHeight === 0;
- }
- return wb._isIEQuirks;
- },
-
- _isIE11: null,
- isIE11: function () {
- var wb = Wicket.Browser;
- if (wb._isIE11 === null) {
- var userAgent = window.navigator.userAgent;
- var isTrident = userAgent.indexOf("Trident") > -1;
- var is11 = userAgent.indexOf("rv:11") > -1;
- wb._isIE11 = isTrident && is11;
- }
- return wb._isIE11;
- }
- },
-
/**
* Events related code
* Based on code from Mootools (http://mootools.net)
@@ -2634,91 +2601,6 @@
}
}
});
- /**
- * 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
- },
-
- keyDownPressed : false,
-
- setup: function () {
-
- if (Wicket.Browser.isIE()) {
- // WICKET-5959: IE >= 11 supports "input" events, but triggers too often
- // to be reliable
-
- jQuery(this).on('keydown', function (event) {
- jQuery.event.special.inputchange.keyDownPressed = true;
- });
-
- jQuery(this).on("cut paste", function (evt) {
-
- var self = this;
-
- if (false === jQuery.event.special.inputchange.keyDownPressed) {
- window.setTimeout(function() {
- jQuery.event.special.inputchange.handler.call(self, evt);
- }, 10);
- }
- });
-
- jQuery(this).on("keyup", function (evt) {
- jQuery.event.special.inputchange.keyDownPressed = false; // reset
- jQuery.event.special.inputchange.handler.call(this, evt);
- });
-
- } 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( evt ) {
- var WE = Wicket.Event;
- var k = jQuery.event.special.inputchange.keys;
-
- var kc = WE.keyCode(WE.fix(evt));
- switch (kc) {
- case k.ENTER:
- case k.UP:
- case k.DOWN:
- case k.ESC:
- case k.TAB:
- case k.RIGHT:
- case k.LEFT:
- case k.SHIFT:
- case k.ALT:
- case k.CTRL:
- case k.HOME:
- case k.END:
- return WE.stop(evt);
- default:
- evt.type = "inputchange";
- var args = Array.prototype.slice.call( arguments, 0 );
- return jQuery(this).trigger(evt.type, args);
- }
- }
- };
// MISC FUNCTIONS
diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTest.java b/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTest.java
index 61ac5cb..b3bc3c1 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTest.java
@@ -54,7 +54,7 @@ class OnChangeAjaxBehaviorTest extends WicketTestCase
tester.assertLabel("message",
"If you see this message wicket is properly configured and running");
- tester.executeAjaxEvent("form:select", "inputchange change");
+ tester.executeAjaxEvent("form:select", "input change");
// assert rendered page class
tester.assertRenderedPage(ThirdPage.class);
diff --git a/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html b/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html
index e5ced2e..dd634cd 100644
--- a/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html
+++ b/wicket-core/src/test/java/org/apache/wicket/ajax/form/OnChangeAjaxBehaviorTestPage_expected.html
@@ -14,7 +14,7 @@ Wicket.Ajax.baseUrl="wicket/bookmarkable/org.apache.wicket.ajax.form.OnChangeAja
<script type="text/javascript" >
/*<![CDATA[*/
Wicket.Event.add(window, "domready", function(event) {
-Wicket.Ajax.ajax({"u":"./org.apache.wicket.ajax.form.OnChangeAjaxBehaviorTestPage?0-1.0-form-field","m":"POST","c":"field1","e":"inputchange change"});;
+Wicket.Ajax.ajax({"u":"./org.apache.wicket.ajax.form.OnChangeAjaxBehaviorTestPage?0-1.0-form-field","m":"POST","c":"field1","e":"input change"});;
Wicket.Ajax.ajax({"u":"./org.apache.wicket.ajax.form.OnChangeAjaxBehaviorTestPage?0-1.0-form-dropDown","m":"POST","c":"dropDown2","e":"change"});;
Wicket.Event.publish(Wicket.Event.Topic.AJAX_HANDLERS_BOUND);
;});
diff --git a/wicket-core/src/test/js/all.html b/wicket-core/src/test/js/all.html
index f80bf89..d22e5a9 100644
--- a/wicket-core/src/test/js/all.html
+++ b/wicket-core/src/test/js/all.html
@@ -181,8 +181,6 @@
<div id="usedAsContextWicket5025"></div>
- <input type="text" id="inputChangeInput">
-
<div id="ajaxIndicator"></div>
</div>
</body>
diff --git a/wicket-core/src/test/js/event.js b/wicket-core/src/test/js/event.js
index 25bb050..f611310 100644
--- a/wicket-core/src/test/js/event.js
+++ b/wicket-core/src/test/js/event.js
@@ -322,22 +322,4 @@ jQuery(document).ready(function() {
Wicket.Event.publish('topicName1', "arg1", "arg2");
Wicket.Event.publish('topicName2', "arg1", "arg2");
});
-
- module("Custom events");
-
- test('inputchange', function() {
-
- stop();
-
- expect(1);
-
- var $input = jQuery("#inputChangeInput");
- $input.on("inputchange", function() {
- ok(true, "inputchange event is triggered!");
- });
-
- $input.trigger("input");
-
- start();
- });
});