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

Reply via email to