jenkins-bot has submitted this change and it was merged.
Change subject: Support for search operators.
......................................................................
Support for search operators.
Use search operators to get more specific search results.
Examples:
wiki language:hi
wiki language:hi group:mediawiki
Bug: T97943
Change-Id: I861934132cabce80cef6d69fb8f8c61057439662
---
M resources/js/ext.translate.special.searchtranslations.js
M specials/SpecialSearchTranslations.php
2 files changed, 64 insertions(+), 1 deletion(-)
Approvals:
Nikerabbit: Looks good to me, approved
jenkins-bot: Verified
diff --git a/resources/js/ext.translate.special.searchtranslations.js
b/resources/js/ext.translate.special.searchtranslations.js
index f5e4613..08bb3c1 100644
--- a/resources/js/ext.translate.special.searchtranslations.js
+++ b/resources/js/ext.translate.special.searchtranslations.js
@@ -23,6 +23,29 @@
$messages.last().addClass( 'last-message' );
+ $( '.tux-searchpage .button' ).click( function () {
+ var query = $( '.tux-searchpage .searchinputbox'
).val(),
+ result = lexOperators( query ),
+ $form = $( '.tux-searchpage
form[name=searchform]' );
+
+ $.each( result, function ( index, value ) {
+ var $input = $( '<input>')
+ .prop( 'type', 'hidden' ),
+ $elem = $form.find( 'input[name=' +
index + ']' );
+
+ if ( $elem.length ) {
+ $elem.val( value );
+ } else {
+ $form.append( $input
+ .prop( {
+ value: value,
+ name: index
+ } )
+ );
+ }
+ } );
+ } );
+
buildSelectedBox();
showLanguages();
showMessageGroups();
@@ -299,6 +322,46 @@
}
}
+ function lexOperators( str ) {
+ var string = str.split( ' ' ),
+ result= {},
+ query = '';
+
+ $.each( string, function ( index, value ) {
+ matchOperators( value, function( obj ) {
+ if ( obj === false ) {
+ query = query + ' ' + value;
+ } else {
+ result[ obj.operator ] = obj.value;
+ }
+ } );
+ } );
+ result.query = query.trim();
+
+ return result;
+ }
+
+ function matchOperators( str, callback ) {
+ var matches,
+ counter = false,
+ // Add operators for different filters
+ operatorRegex = [ 'language' , 'group' ];
+
+ $.each( operatorRegex, function ( index, value ) {
+ var regex = new RegExp( value + ':(\\S+)', 'i' );
+ if ( ( matches = regex.exec( str ) ) !== null ) {
+ counter = true;
+ callback( {
+ operator: value,
+ value: matches[1]
+ } );
+ }
+ } );
+ if ( !counter ) {
+ callback( false );
+ }
+ }
+
function sortGroups( groupIdA, groupIdB ) {
var groupAName = mw.translate.findGroup( groupIdA, resultGroups
).count,
groupBName = mw.translate.findGroup( groupIdB,
resultGroups ).count;
diff --git a/specials/SpecialSearchTranslations.php
b/specials/SpecialSearchTranslations.php
index b3023f4..c0912ee 100644
--- a/specials/SpecialSearchTranslations.php
+++ b/specials/SpecialSearchTranslations.php
@@ -517,7 +517,7 @@
$lang = $this->getRequest()->getVal( 'language' );
$language = is_null( $lang ) ? '' : Html::hidden( 'language',
$lang );
- $form = Html::rawElement( 'form', array( 'action' => wfScript()
),
+ $form = Html::rawElement( 'form', array( 'action' =>
wfScript(), 'name' => 'searchform' ),
$title . $input . $submit . $checkLabel . $language
);
--
To view, visit https://gerrit.wikimedia.org/r/211084
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I861934132cabce80cef6d69fb8f8c61057439662
Gerrit-PatchSet: 16
Gerrit-Project: mediawiki/extensions/Translate
Gerrit-Branch: master
Gerrit-Owner: Phoenix303 <[email protected]>
Gerrit-Reviewer: Nemo bis <[email protected]>
Gerrit-Reviewer: Nikerabbit <[email protected]>
Gerrit-Reviewer: Phoenix303 <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits