X-Git-Url: http://git.heureux-cyclage.org/?a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.widgets%2Fmw.widgets.TitleOptionWidget.js;h=76d4bfbac6b542b147d1ea23c985359466b4122c;hb=193b6f8d2ebd5dee97946c3fc6358f4f0e7e26fd;hp=37e6e1afa2a9f0c60a33d090ff14f2069f78c4ac;hpb=3eebaaffcf25c3779725309570de924ad5bea766;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js b/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js index 37e6e1afa2..76d4bfbac6 100644 --- a/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js +++ b/resources/src/mediawiki.widgets/mw.widgets.TitleOptionWidget.js @@ -16,17 +16,21 @@ * @param {Object} config Configuration options * @cfg {string} data Label to display * @cfg {string} url URL of page + * @cfg {boolean} [showImages] Whether to attempt to show images * @cfg {string} [imageUrl] Thumbnail image URL with URL encoding * @cfg {string} [description] Page description * @cfg {boolean} [missing] Page doesn't exist * @cfg {boolean} [redirect] Page is a redirect * @cfg {boolean} [disambiguation] Page is a disambiguation page - * @cfg {string} [query] Matching query string + * @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; - if ( config.missing ) { + if ( !config.showImages ) { + icon = null; + } else if ( config.missing ) { icon = 'page-not-found'; } else if ( config.redirect ) { icon = 'page-redirect'; @@ -47,6 +51,9 @@ // Parent constructor mw.widgets.TitleOptionWidget.parent.call( this, config ); + // Remove check icon + this.checkIcon.$element.remove(); + // Initialization this.$label.attr( 'href', config.url ); this.$element.addClass( 'mw-widget-titleOptionWidget' ); @@ -65,13 +72,20 @@ } ); // Highlight matching parts of link suggestion - this.$label.autoEllipsis( { hasSpan: false, tooltip: true, matchText: config.query } ); + if ( config.query ) { + this.setHighlightedQuery( config.data, config.query, config.compare ); + } + this.$label.attr( 'title', config.data ); if ( config.missing ) { this.$label.addClass( 'new' ); + } else if ( config.redirect ) { + this.$label.addClass( 'mw-redirect' ); + } else if ( config.disambiguation ) { + this.$label.addClass( 'mw-disambig' ); } - if ( config.imageUrl ) { + if ( config.showImages && config.imageUrl ) { this.$icon .addClass( 'mw-widget-titleOptionWidget-hasImage' ) .css( 'background-image', 'url(' + config.imageUrl + ')' );