From d1c4163ffad97900ec3da4e041a7749aafeca6a7 Mon Sep 17 00:00:00 2001 From: Ed Sanders Date: Sun, 1 Oct 2017 13:15:38 +0100 Subject: [PATCH] TitleWidget: Perform diacritic-insensitive highlighting Change-Id: Ib92877e4afa45f73bb086c04946f5c1d0c99ed6f --- .../src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js | 3 ++- resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js | 7 ++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js b/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js index 638f461ba7..7d49a09b5e 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js @@ -23,6 +23,7 @@ * @cfg {boolean} [redirect] Page is a redirect * @cfg {boolean} [disambiguation] Page is a disambiguation page * @cfg {string} [query] Matching query string to highlight + * @cfg {string} [compare] String comparison function for query highlighting */ mw.widgets.TitleOptionWidget = function MwWidgetsTitleOptionWidget( config ) { var icon; @@ -69,7 +70,7 @@ // Highlight matching parts of link suggestion if ( config.query ) { - this.setHighlightedQuery( config.data, config.query ); + this.setHighlightedQuery( config.data, config.query, config.compare ); } this.$label.attr( 'title', config.data ); diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js b/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js index 5fe094ff63..db56bd3f2e 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.TitleWidget.js @@ -48,6 +48,10 @@ this.validateTitle = config.validateTitle !== undefined ? config.validateTitle : true; this.cache = config.cache; this.api = config.api || new mw.Api(); + // Supports: IE10, FF28, Chrome23 + this.compare = window.Intl && Intl.Collator ? + new Intl.Collator( mw.config.get( 'wgContentLanguage' ), { sensitivity: 'base' } ).compare : + null; // Initialization this.$element.addClass( 'mw-widget-titleWidget' ); @@ -335,7 +339,8 @@ missing: data.missing, redirect: data.redirect, disambiguation: data.disambiguation, - query: this.getQueryValue() + query: this.getQueryValue(), + compare: this.compare }; }; -- 2.20.1