From d0339e8741fb0a8361aed563b92f3fd36fdb3f7b Mon Sep 17 00:00:00 2001 From: Roan Kattouw Date: Fri, 27 Oct 2017 10:37:11 +0530 Subject: [PATCH] RCFilters: Move label prefixes from dm.ItemModel to ui.TagItemWidget Change-Id: I0d463b60ffaa7ab099cb46eeac94b709af325933 --- .../dm/mw.rcfilters.dm.ItemModel.js | 30 ++++++++----------- .../ui/mw.rcfilters.ui.TagItemWidget.js | 12 ++++++-- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ItemModel.js b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ItemModel.js index 2b5d020167..7b54833f77 100644 --- a/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ItemModel.js +++ b/resources/src/mediawiki.rcfilters/dm/mw.rcfilters.dm.ItemModel.js @@ -80,30 +80,24 @@ }; /** - * Get a prefixed label + * Get the message key to use to wrap the label. This message takes the label as a parameter. * - * @param {boolean} inverted This item should be considered inverted - * @return {string} Prefixed label (HTML) + * @param {boolean} inverted Whether this item should be considered inverted + * @return {string|null} Message key, or null if no message */ - mw.rcfilters.dm.ItemModel.prototype.getPrefixedLabel = function ( inverted ) { - var escapedLabel = mw.html.escape( this.getLabel() ); + mw.rcfilters.dm.ItemModel.prototype.getLabelMessageKey = function ( inverted ) { if ( this.labelPrefixKey ) { if ( typeof this.labelPrefixKey === 'string' ) { - return mw.message( this.labelPrefixKey, escapedLabel ).parse(); - } else { - return mw.message( - this.labelPrefixKey[ - // Only use inverted-prefix if the item is selected - // Highlight-only an inverted item makes no sense - inverted && this.isSelected() ? - 'inverted' : 'default' - ], - escapedLabel - ).parse(); + return this.labelPrefixKey; } - } else { - return escapedLabel; + return this.labelPrefixKey[ + // Only use inverted-prefix if the item is selected + // Highlight-only an inverted item makes no sense + inverted && this.isSelected() ? + 'inverted' : 'default' + ]; } + return null; }; /** diff --git a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.TagItemWidget.js b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.TagItemWidget.js index 7e324b6946..13d6b68f3c 100644 --- a/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.TagItemWidget.js +++ b/resources/src/mediawiki.rcfilters/ui/mw.rcfilters.ui.TagItemWidget.js @@ -84,11 +84,17 @@ * Respond to model update event */ mw.rcfilters.ui.TagItemWidget.prototype.updateUiBasedOnState = function () { - this.setCurrentMuteState(); - // Update label if needed - this.setLabel( $( '
' ).html( this.itemModel.getPrefixedLabel( this.invertModel.isSelected() ) ).contents() ); + var labelMsg = this.itemModel.getLabelMessageKey( this.invertModel.isSelected() ); + if ( labelMsg ) { + this.setLabel( $( '
' ).html( + mw.message( labelMsg, mw.html.escape( this.itemModel.getLabel() ) ).parse() + ).contents() ); + } else { + this.setLabel( this.itemModel.getLabel() ); + } + this.setCurrentMuteState(); this.setHighlightColor(); }; -- 2.20.1