X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki%2Fmediawiki.searchSuggest.js;h=7c7aca39fa3a6e9d1ca8b2bf24ba5c3c2904de71;hb=7dd1914e734ccd7c2842bb2e18bf4866a4ecbf63;hp=17a3b21eeb11edfb638d32857925206872455400;hpb=036fbcc72c20633eaa786f9035576805b337ee72;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/src/mediawiki/mediawiki.searchSuggest.js b/resources/src/mediawiki/mediawiki.searchSuggest.js index 17a3b21eeb..7c7aca39fa 100644 --- a/resources/src/mediawiki/mediawiki.searchSuggest.js +++ b/resources/src/mediawiki/mediawiki.searchSuggest.js @@ -138,7 +138,7 @@ mw.track( 'mediawiki.searchSuggest', { action: 'render-one', formData: formData, - index: context.config.suggestions.indexOf( text ) + 1 + index: context.config.suggestions.indexOf( text ) } ); // this is the container
, jQueryfied @@ -156,15 +156,19 @@ } // The function used when the user makes a selection - function selectFunction( $input ) { + function selectFunction( $input, source ) { var context = $input.data( 'suggestionsContext' ), text = $input.val(); - mw.track( 'mediawiki.searchSuggest', { - action: 'click-result', - numberOfResults: context.config.suggestions.length, - clickIndex: context.config.suggestions.indexOf( text ) + 1 - } ); + // Selecting via keyboard triggers a form submission. That will fire + // the submit-form event in addition to this click-result event. + if ( source !== 'keyboard' ) { + mw.track( 'mediawiki.searchSuggest', { + action: 'click-result', + numberOfResults: context.config.suggestions.length, + index: context.config.suggestions.indexOf( text ) + } ); + } // allow the form to be submitted return true; @@ -177,6 +181,12 @@ // linkParams object is modified and reused formData.linkParams[ formData.textParam ] = query; + mw.track( 'mediawiki.searchSuggest', { + action: 'render-one', + formData: formData, + index: context.config.suggestions.indexOf( query ) + } ); + if ( $el.children().length === 0 ) { $el .append( @@ -208,9 +218,6 @@ searchboxesSelectors = [ // Primary searchbox on every page in standard skins '#searchInput', - // Special:Search - '#powerSearchText', - '#searchText', // Generic selector for skins with multiple searchboxes (used by CologneBlue) // and for MediaWiki itself (special pages with page title inputs) '.mw-searchInput' @@ -283,9 +290,20 @@ }, special: { render: specialRenderFunction, - select: function ( $input ) { - $input.closest( 'form' ) - .append( $( '' ) ); + select: function ( $input, source ) { + var context = $input.data( 'suggestionsContext' ), + text = $input.val(); + if ( source === 'mouse' ) { + // mouse click won't trigger form submission, so we need to send a click event + mw.track( 'mediawiki.searchSuggest', { + action: 'click-result', + numberOfResults: context.config.suggestions.length, + index: context.config.suggestions.indexOf( text ) + } ); + } else { + $input.closest( 'form' ) + .append( $( '' ) ); + } return true; // allow the form to be submitted } }, @@ -300,7 +318,10 @@ action: 'submit-form', numberOfResults: context.config.suggestions.length, $form: context.config.$region.closest( 'form' ), - inputLocation: getInputLocation( context ) + inputLocation: getInputLocation( context ), + index: context.config.suggestions.indexOf( + context.data.$textbox.val() + ) } ); } ) // If the form includes any fallback fulltext search buttons, remove them