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 <[email protected]> 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" > /*<