jenkins-bot has submitted this change and it was merged.
Change subject: jquery.suggestions, mediawiki.searchSuggest: Fix form submission
......................................................................
jquery.suggestions, mediawiki.searchSuggest: Fix form submission
Don't override form submission behavior (by capturing the Enter key on
search box, preventing default behavior, and then manually submitting
the form); just let it happen if it's wanted.
Then swap out a few unjustified stopImmediatePropagation() calls to
stopPropagation() so that the event can be actually fired. Add some
comments while we're at it.
This allows the user to use Ctrl+Enter (or Shift+Enter) to submit the
form into a new tab (or new window) on browsers that support this
(currently Opera and Chrome).
Bug: 34756
Bug: 35974
Change-Id: I49ef7cc89400032505bc444f21d522d5b5d47586
---
M resources/jquery/jquery.suggestions.js
M resources/mediawiki/mediawiki.searchSuggest.js
2 files changed, 21 insertions(+), 15 deletions(-)
Approvals:
Yuvipanda: Looks good to me, approved
jenkins-bot: Verified
diff --git a/resources/jquery/jquery.suggestions.js
b/resources/jquery/jquery.suggestions.js
index c4e95a4..f967a1d 100644
--- a/resources/jquery/jquery.suggestions.js
+++ b/resources/jquery/jquery.suggestions.js
@@ -421,20 +421,26 @@
selected = context.data.$container.find(
'.suggestions-result-current' );
$.suggestions.hide( context );
if ( selected.length === 0 ||
context.data.selectedWithMouse ) {
- // if nothing is selected OR if
something was selected with the mouse,
- // cancel any current requests and
submit the form
+ // If nothing is selected or if
something was selected with the mouse
+ // cancel any current requests and
allow the form to be submitted
+ // (simply don't prevent default
behavior).
$.suggestions.cancel( context );
- context.config.$region.closest( 'form'
).submit();
+ preventDefault = false;
} else if ( selected.is( '.suggestions-special'
) ) {
if ( typeof
context.config.special.select === 'function' ) {
-
context.config.special.select.call( selected, context.data.$textbox );
+ // Allow the callback to decide
whether to prevent default or not
+ if (
context.config.special.select.call( selected, context.data.$textbox ) === true
) {
+ preventDefault = false;
+ }
}
} else {
+ $.suggestions.highlight( context,
selected, true );
+
if ( typeof
context.config.result.select === 'function' ) {
- $.suggestions.highlight(
context, selected, true );
-
context.config.result.select.call( selected, context.data.$textbox );
- } else {
- $.suggestions.highlight(
context, selected, true );
+ // Allow the callback to decide
whether to prevent default or not
+ if (
context.config.result.select.call( selected, context.data.$textbox ) === true )
{
+ preventDefault = false;
+ }
}
}
break;
@@ -444,7 +450,7 @@
}
if ( preventDefault ) {
e.preventDefault();
- e.stopImmediatePropagation();
+ e.stopPropagation();
}
}
};
diff --git a/resources/mediawiki/mediawiki.searchSuggest.js
b/resources/mediawiki/mediawiki.searchSuggest.js
index 8d950a0..e22a3d3 100644
--- a/resources/mediawiki/mediawiki.searchSuggest.js
+++ b/resources/mediawiki/mediawiki.searchSuggest.js
@@ -153,8 +153,8 @@
},
result: {
render: renderFunction,
- select: function ( $input ) {
- $input.closest( 'form'
).submit();
+ select: function () {
+ return true; // allow the form
to be submitted
}
},
delay: 120,
@@ -178,16 +178,16 @@
$searchInput.suggestions( {
result: {
render: renderFunction,
- select: function ( $input ) {
- $input.closest( 'form' ).submit();
+ select: function () {
+ return true; // allow the form to be
submitted
}
},
special: {
render: specialRenderFunction,
select: function ( $input ) {
$input.closest( 'form' )
- .append( $( '<input
type="hidden" name="fulltext" value="1"/>' ) )
- .submit();
+ .append( $( '<input
type="hidden" name="fulltext" value="1"/>' ) );
+ return true; // allow the form to be
submitted
}
},
$region: $searchRegion
--
To view, visit https://gerrit.wikimedia.org/r/48252
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I49ef7cc89400032505bc444f21d522d5b5d47586
Gerrit-PatchSet: 10
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Bartosz Dziewoński <[email protected]>
Gerrit-Reviewer: Bartosz Dziewoński <[email protected]>
Gerrit-Reviewer: Brion VIBBER <[email protected]>
Gerrit-Reviewer: Krinkle <[email protected]>
Gerrit-Reviewer: Mattflaschen <[email protected]>
Gerrit-Reviewer: Matthias Mullie <[email protected]>
Gerrit-Reviewer: Ori.livneh <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: Yuvipanda <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits