From: Moriel Schottlender Date: Thu, 7 Dec 2017 00:40:36 +0000 (-0800) Subject: RCFilters: Set up conditional views for RCLinked X-Git-Tag: 1.31.0-rc.0~1261^2 X-Git-Url: http://git.cyclocoop.org/%22.%24h.%22?a=commitdiff_plain;h=0ae591b0bb2add60801be1e21228fff050abb520;p=lhc%2Fweb%2Fwiklou.git RCFilters: Set up conditional views for RCLinked The views that are only meant for specific pages should be set up conditionally only when we are in that specific page, to prevent issues with saved queries or param overload. Change-Id: Id0bf89ce397ff8a54ce0a30d1ba7d8f9bbdd14a3 --- diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js b/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js index eec4f4b28e..7b5e11528c 100644 --- a/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js +++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.Controller.js @@ -43,13 +43,14 @@ * @param {Array} filterStructure Filter definition and structure for the model * @param {Object} [namespaceStructure] Namespace definition * @param {Object} [tagList] Tag definition + * @param {Object} [conditionalViews] Conditional view definition */ - mw.rcfilters.Controller.prototype.initialize = function ( filterStructure, namespaceStructure, tagList ) { + mw.rcfilters.Controller.prototype.initialize = function ( filterStructure, namespaceStructure, tagList, conditionalViews ) { var parsedSavedQueries, pieces, displayConfig = mw.config.get( 'StructuredChangeFiltersDisplayConfig' ), defaultSavedQueryExists = mw.config.get( 'wgStructuredChangeFiltersDefaultSavedQueryExists' ), controller = this, - views = {}, + views = $.extend( true, {}, conditionalViews ), items = [], uri = new mw.Uri(); @@ -188,37 +189,6 @@ ] }; - views.recentChangesLinked = { - groups: [ - { - name: 'page', - type: 'any_value', - title: '', - hidden: true, - sticky: true, - filters: [ - { - name: 'target', - 'default': '' - } - ] - }, - { - name: 'toOrFrom', - type: 'boolean', - title: '', - hidden: true, - sticky: true, - filters: [ - { - name: 'showlinkedto', - 'default': false - } - ] - } - ] - }; - // Before we do anything, we need to see if we require additional items in the // groups that have 'AllowArbitrary'. For the moment, those are only single_option // groups; if we ever expand it, this might need further generalization: diff --git a/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js b/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js index 2744b8bbcc..40b8bd2bb3 100644 --- a/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js +++ b/resources/src/mediawiki.rcfilters/mw.rcfilters.init.js @@ -12,6 +12,7 @@ topSection, $watchlistDetails, namespaces, + conditionalViews = {}, savedQueriesPreferenceName = mw.config.get( 'wgStructuredChangeFiltersSavedQueriesPreferenceName' ), daysPreferenceName = mw.config.get( 'wgStructuredChangeFiltersDaysPreferenceName' ), limitPreferenceName = mw.config.get( 'wgStructuredChangeFiltersLimitPreferenceName' ), @@ -41,6 +42,40 @@ '.mw-changeslist-notargetpage' ].join( ', ' ) ); + if ( specialPage === 'Recentchangeslinked' ) { + conditionalViews.recentChangesLinked = { + groups: [ + { + name: 'page', + type: 'any_value', + title: '', + hidden: true, + isSticky: false, + filters: [ + { + name: 'target', + 'default': '' + } + ] + }, + { + name: 'toOrFrom', + type: 'boolean', + title: '', + hidden: true, + isSticky: false, + filters: [ + { + name: 'showlinkedto', + 'default': false + } + ] + } + ] + }; + + } + // TODO: The changesListWrapperWidget should be able to initialize // after the model is ready. @@ -60,7 +95,8 @@ controller.initialize( mw.config.get( 'wgStructuredChangeFilters' ), namespaces, - mw.config.get( 'wgRCFiltersChangeTags' ) + mw.config.get( 'wgRCFiltersChangeTags' ), + conditionalViews ); // eslint-disable-next-line no-new