Santhosh has uploaded a new change for review.
https://gerrit.wikimedia.org/r/58287
Change subject: Fix text change detection in IE
......................................................................
Fix text change detection in IE
Introduce textchange event that get triggered when something changed
on input fields.
Bug: 47019
Change-Id: Ib5a7fecdf3cc42c7f5463bb03cae2326e1a3afbc
---
M Resources.php
M resources/js/ext.translate.editor.js
M resources/js/ext.translate.messagetable.js
A resources/js/jquery.textchange.js
4 files changed, 52 insertions(+), 4 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Translate
refs/changes/87/58287/1
diff --git a/Resources.php b/Resources.php
index c8bdce0..e8fd0dc 100644
--- a/Resources.php
+++ b/Resources.php
@@ -52,6 +52,7 @@
'mediawiki.jqueryMsg',
'jquery.makeCollapsible',
'jquery.tipsy',
+ 'jquery.textchange',
),
'messages' => array(
'tux-status-translated',
@@ -142,6 +143,7 @@
'mediawiki.jqueryMsg',
'ext.translate.parsers',
'ext.translate.loader',
+ 'jquery.textchange',
),
'messages' => array(
'translate-messagereview-submit',
@@ -349,3 +351,7 @@
$wgResourceModules['jquery.autoresize'] = array(
'scripts' => 'resources/js/jquery.autoresize.js',
) + $resourcePaths;
+
+$wgResourceModules['jquery.textchange'] = array(
+ 'scripts' => 'resources/js/jquery.textchange.js',
+) + $resourcePaths;
diff --git a/resources/js/ext.translate.editor.js
b/resources/js/ext.translate.editor.js
index 5b6bd98..610b864 100644
--- a/resources/js/ext.translate.editor.js
+++ b/resources/js/ext.translate.editor.js
@@ -376,7 +376,7 @@
lang: $messageList.data(
'targetlangcode' ),
dir: $messageList.data( 'targetlangdir'
)
} )
- .on( 'input propertychange', function () {
+ .on( 'textchange', function () {
var $this = $( this );
if ( originalTranslation !== null ) {
@@ -396,7 +396,7 @@
}
} );
- $textArea.on( 'input propertychange', function () {
+ $textArea.on( 'textchange', function () {
var $textArea = $( this ),
$saveButton =
translateEditor.$editor.find( '.tux-editor-save-button' ),
$pasteSourceButton =
translateEditor.$editor.find( '.tux-editor-paste-original-button' ),
@@ -670,7 +670,7 @@
.attr( {
placeholder:
mw.msg( 'tux-editor-doc-editor-placeholder' )
} )
- .on( 'input
propertychange', function () {
+ .on( 'textchange',
function () {
$messageDescSaveButton.prop( 'disabled', false );
} ),
$( '<div>' )
diff --git a/resources/js/ext.translate.messagetable.js
b/resources/js/ext.translate.messagetable.js
index 143e59b..3aae108 100644
--- a/resources/js/ext.translate.messagetable.js
+++ b/resources/js/ext.translate.messagetable.js
@@ -83,7 +83,7 @@
$( '.tux-action-bar' ).width( $(
'.tux-messagelist' ).width() );
} );
- $( '.tux-message-filter-box' ).on( 'input
propertychange', function () {
+ $( '.tux-message-filter-box' ).on( 'textchange',
function () {
delay( messageTable.search( $( this ).val() ),
300 );
} );
diff --git a/resources/js/jquery.textchange.js
b/resources/js/jquery.textchange.js
new file mode 100644
index 0000000..266e060
--- /dev/null
+++ b/resources/js/jquery.textchange.js
@@ -0,0 +1,42 @@
+/*
+ * Trigger a textchange event text change in input fields.
+ * And make it cross browser compatible
+ * @author Santhosh Thottingal, 2013
+ * @see https://gist.github.com/mkelly12/424774
+ */
+( function ( $ ) {
+ 'use strict';
+
+ $.event.special.textchange = {
+
+ setup: function () {
+ $( this ).data( 'lastValue', $( this ).val() );
+ $( this ).on( 'keyup.textchange',
$.event.special.textchange.handler );
+ $( this ).on( 'cut.textchange paste.textchange
input.textchange', $.event.special.textchange.delayedHandler );
+ },
+
+ teardown: function () {
+ $( this ).unbind( '.textchange' );
+ },
+
+ handler: function () {
+ $.event.special.textchange.triggerIfChanged( $( this )
);
+ },
+
+ delayedHandler: function () {
+ var element = $( this );
+ setTimeout( function () {
+ $.event.special.textchange.triggerIfChanged(
element );
+ }, 25 );
+ },
+
+ triggerIfChanged: function ( element ) {
+ var current = element.val();
+ if ( current !== element.data( 'lastValue' ) ) {
+ element.trigger( 'textchange', [ element.data(
'lastValue' ) ] );
+ element.data( 'lastValue', current );
+ }
+ }
+ };
+
+} )( jQuery );
--
To view, visit https://gerrit.wikimedia.org/r/58287
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib5a7fecdf3cc42c7f5463bb03cae2326e1a3afbc
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Santhosh <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits