jenkins-bot has submitted this change and it was merged.

Change subject: Consolidate language suggesters across repo special pages
......................................................................


Consolidate language suggesters across repo special pages

New generic module 'wikibase.special.languageSuggester' that replaces
'wikibase.special.itemDisambiguation' and 'wikibase.special.entitiesWithout'.

Change-Id: I51da1f47dda63c9fb2352d953048c509a1e4d996
---
M repo/Wikibase.hooks.php
M repo/includes/specials/SpecialEntitiesWithoutPage.php
M repo/includes/specials/SpecialItemDisambiguation.php
D repo/resources/wikibase.special/wikibase.special.entitiesWithout.js
D repo/resources/wikibase.special/wikibase.special.itemDisambiguation.js
A repo/resources/wikibase.special/wikibase.special.languageSuggester.js
6 files changed, 49 insertions(+), 84 deletions(-)

Approvals:
  Thiemo Mättig (WMDE): Looks good to me, but someone else must approve
  Addshore: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/repo/Wikibase.hooks.php b/repo/Wikibase.hooks.php
index e90f2d9..be51cbe 100644
--- a/repo/Wikibase.hooks.php
+++ b/repo/Wikibase.hooks.php
@@ -1154,18 +1154,9 @@
                                        'wikibase',
                                ),
                        ),
-                       'wikibase.special.itemDisambiguation' => 
$moduleTemplate + array(
+                       'wikibase.special.languageSuggester' => $moduleTemplate 
+ array(
                                'scripts' => array(
-                                       
'resources/wikibase.special/wikibase.special.itemDisambiguation.js',
-                               ),
-                               'dependencies' => array(
-                                       'wikibase.special',
-                                       'jquery.ui.suggester',
-                               ),
-                       ),
-                       'wikibase.special.entitiesWithout' => $moduleTemplate + 
array(
-                               'scripts' => array(
-                                       
'resources/wikibase.special/wikibase.special.entitiesWithout.js',
+                                       
'resources/wikibase.special/wikibase.special.languageSuggester.js',
                                ),
                                'dependencies' => array(
                                        'wikibase.special',
@@ -1177,8 +1168,7 @@
                $isUlsLoaded = ExtensionRegistry::getInstance()->isLoaded( 
'UniversalLanguageSelector' );
                if ( $isUlsLoaded ) {
                        
$modules['wikibase.WikibaseContentLanguages']['dependencies'][] = 
'ext.uls.languagenames';
-                       
$modules['wikibase.special.itemDisambiguation']['dependencies'][] = 
'ext.uls.mediawiki';
-                       
$modules['wikibase.special.entitiesWithout']['dependencies'][] = 
'ext.uls.mediawiki';
+                       
$modules['wikibase.special.languageSuggester']['dependencies'][] = 
'ext.uls.mediawiki';
                }
 
                $resourceLoader->register( $modules );
diff --git a/repo/includes/specials/SpecialEntitiesWithoutPage.php 
b/repo/includes/specials/SpecialEntitiesWithoutPage.php
index 123911e..6648fa4 100644
--- a/repo/includes/specials/SpecialEntitiesWithoutPage.php
+++ b/repo/includes/specials/SpecialEntitiesWithoutPage.php
@@ -139,7 +139,7 @@
                        $typeSelect->addOption( $this->msg( 'wikibase-entity-' 
. $type )->text(), $type );
                }
 
-               $this->getOutput()->addModules( 
'wikibase.special.entitiesWithout' );
+               $this->getOutput()->addModules( 
'wikibase.special.languageSuggester' );
 
                $this->getOutput()->addHTML(
                        Html::openElement(
@@ -175,7 +175,8 @@
                                $this->language,
                                'text',
                                array(
-                                       'id' => 
'wb-entitieswithoutpage-language'
+                                       'id' => 
'wb-entitieswithoutpage-language',
+                                       'class' => 'wb-language-suggester'
                                )
                        ) . ' ' .
                        Html::element(
diff --git a/repo/includes/specials/SpecialItemDisambiguation.php 
b/repo/includes/specials/SpecialItemDisambiguation.php
index 3f9ddde..dca4a8a 100644
--- a/repo/includes/specials/SpecialItemDisambiguation.php
+++ b/repo/includes/specials/SpecialItemDisambiguation.php
@@ -190,7 +190,7 @@
         * @param string|null $label
         */
        private function switchForm( $languageCode, $label ) {
-               $this->getOutput()->addModules( 
'wikibase.special.itemDisambiguation' );
+               $this->getOutput()->addModules( 
'wikibase.special.languageSuggester' );
 
                $this->getOutput()->addHTML(
                        Html::openElement(
@@ -220,7 +220,7 @@
                                array(
                                        'id' => 
'wb-itemdisambiguation-languagename',
                                        'size' => 12,
-                                       'class' => 'wb-input-text'
+                                       'class' => 'wb-input-text 
wb-language-suggester'
                                )
                        )
                        . ' '
diff --git 
a/repo/resources/wikibase.special/wikibase.special.entitiesWithout.js 
b/repo/resources/wikibase.special/wikibase.special.entitiesWithout.js
deleted file mode 100644
index 8ad9b6f..0000000
--- a/repo/resources/wikibase.special/wikibase.special.entitiesWithout.js
+++ /dev/null
@@ -1,30 +0,0 @@
-/**
- * JavaScript for 'wikibase' extension special page 'EntitiesWithout*'
- *
- * @licence GNU GPL v2+
- */
-( function( $ ) {
-       'use strict';
-
-       $( document ).ready( function() {
-               var languages = [];
-
-               if( $.uls ) {
-                       $.each( $.uls.data.getAutonyms(), function( key, value 
) {
-                               languages.push( value + ' (' + key + ')' );
-                       } );
-               }
-
-               var $languageSelector = $( '#wb-entitieswithoutpage-language' );
-               $languageSelector.attr( 'autocomplete', 'off' );
-               $languageSelector.suggester( { source: languages } );
-
-               $( '#wb-entitieswithoutpage-form' ).submit( function() {
-                       // Replace human readable value like "English (en)" 
with actual language name ("en"):
-                       var languageCode = String( 
$languageSelector.val().replace( /.*\(|\).*/gi, '' ) );
-                       $languageSelector.val( languageCode );
-               } );
-
-       } );
-
-} )( jQuery );
diff --git 
a/repo/resources/wikibase.special/wikibase.special.itemDisambiguation.js 
b/repo/resources/wikibase.special/wikibase.special.itemDisambiguation.js
deleted file mode 100644
index 4a54fab..0000000
--- a/repo/resources/wikibase.special/wikibase.special.itemDisambiguation.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * JavaScript for 'wikibase' extension special page 'ItemDisambiguation'
- *
- * @since 0.1
- *
- * @licence GNU GPL v2+
- * @author Jens Ohlig
- */
-( function( $, mw, wb, undefined ) {
-       'use strict';
-
-       $( document ).ready( function() {
-               if( ( mw.config.get( 'wgCanonicalSpecialPageName' ) !== 
'ItemDisambiguation' ) ) {
-                       return; // not the right special page
-               }
-
-               // TODO: Migth want to use the siteselector jquery widget or 
some other suggester derivate
-               var langList = [];
-               if ( $.uls !== undefined ) {
-                       var languages = $.uls.data.getAutonyms();
-                       $.each( languages, function( key, value ) {
-                               langList.push( value + ' (' + key + ')' );
-                       } );
-               }
-               $( '#wb-itemdisambiguation-languagename' )
-               .attr( 'autocomplete', 'off' )
-               .suggester( { source: langList } );
-
-               // On submit, replace human readable value like "English (en)" 
with actual language name ("en")
-               $( '#wb-itemdisambiguation-form1' ).submit( function() {
-                       var $input = $( '#wb-itemdisambiguation-languagename' );
-                       var langID = String( $input.val().replace( 
/.*\(|\).*/gi, '' ) );
-                       $input.val( langID );
-               } );
-       } );
-
-} )( jQuery, mediaWiki, wikibase );
diff --git 
a/repo/resources/wikibase.special/wikibase.special.languageSuggester.js 
b/repo/resources/wikibase.special/wikibase.special.languageSuggester.js
new file mode 100644
index 0000000..4a839b3
--- /dev/null
+++ b/repo/resources/wikibase.special/wikibase.special.languageSuggester.js
@@ -0,0 +1,41 @@
+/**
+ * JavaScript for suggesting language names in Wikibase special pages
+ *
+ * @licence GNU GPL v2+
+ * @author Jens Ohlig
+ */
+( function ( $ ) {
+       'use strict';
+
+       $( document ).ready( function () {
+               var $inputs,
+                       languages = [];
+
+               if ( !$.uls ) {
+                       return;
+               }
+
+               $inputs = $( '.wb-language-suggester' );
+               if ( $inputs.length === 0 ) {
+                       return;
+               }
+
+               $.each( $.uls.data.getAutonyms(), function ( key, value ) {
+                       languages.push( value + ' (' + key + ')' );
+               } );
+
+               $inputs.each( function () {
+                       var $languageSelector = $( this );
+                       $languageSelector.attr( 'autocomplete', 'off' );
+                       // TODO: Might want to use the siteselector jQuery 
widget or some other suggester derivate
+                       $languageSelector.suggester( { source: languages } );
+
+                       $languageSelector.closest( 'form' ).submit( function () 
{
+                               // Replace human readable value like "English 
(en)" with actual language name ("en"):
+                               var languageCode = String( 
$languageSelector.val().replace( /.*\(|\).*/gi, '' ) );
+                               $languageSelector.val( languageCode );
+                       } );
+               } );
+       } );
+
+} )( jQuery );

-- 
To view, visit https://gerrit.wikimedia.org/r/233115
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I51da1f47dda63c9fb2352d953048c509a1e4d996
Gerrit-PatchSet: 5
Gerrit-Project: mediawiki/extensions/Wikibase
Gerrit-Branch: master
Gerrit-Owner: Ricordisamoa <[email protected]>
Gerrit-Reviewer: Addshore <[email protected]>
Gerrit-Reviewer: Jonas Kress (WMDE) <[email protected]>
Gerrit-Reviewer: Ricordisamoa <[email protected]>
Gerrit-Reviewer: Thiemo Mättig (WMDE) <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to