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/09 06:33:01 UTC

[wicket] 08/11: JS removed Wicket.Browser.isIE..()

This is an automated email from the ASF dual-hosted git repository.

svenmeier pushed a commit to branch wicket-js-cleanup
in repository https://gitbox.apache.org/repos/asf/wicket.git

commit 36623746f761d19204e7700a0d93fabd5bfe30d1
Author: Sven Meier <sv...@apache.org>
AuthorDate: Tue May 7 07:47:38 2019 +0200

    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&auml;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();
-	});
 });