RCFilters: Merge mediawiki.rcfilters.filters.dm into ui module

The new module retains the name .ui name so that existing
skin style overrides continue to work. We can consider renaming it
to just "mediawiki.rcfilters.filters" in a future patch.

This does not handle file reorganization, since both of the
modules used package files - instead, in the main script we also
require() the old main script for the .dm module so that its
setup code runs. But, we did need to rename the virtual
config file from the .dm module to not clash with the
virtual config file from the .ui module, since the
latter uses a callback instead of retrieving configuration
variables directly. These can be merged later as well.

Bug: T256836
Change-Id: I5ec0af8b8e6bcdba6b7881f946f777b854a33739
This commit is contained in:
DannyS712 2021-09-20 21:33:07 +00:00 committed by Krinkle
parent 35098e1763
commit bad94719a8
5 changed files with 40 additions and 34 deletions

View file

@ -1660,11 +1660,19 @@ return [
],
],
],
'mediawiki.rcfilters.filters.dm' => [
// TODO consider renaming to mediawiki.rcfilters.filters following merge of
// mediawiki.rcfilters.filters.dm into mediawiki.rcfilters.filters.ui, see T256836
'mediawiki.rcfilters.filters.ui' => [
'targets' => [ 'desktop', 'mobile' ],
'localBasePath' => "$IP/resources/src/mediawiki.rcfilters",
'remoteBasePath' => "$wgResourceBasePath/resources/src/mediawiki.rcfilters",
'packageFiles' => [
// This used to be the `main` script for the .dm module, and the .ui module
// had a `main` script mw.rcfilters.init.js - that file depends on mw.rcfilters
// being defined in this one, because module dependencies get executed before
// those that depend on them. The two scripts should probably be merged,
// but for now this simply `require()`s mw.rcfilters.init.js at the end so
// that the setup code there can be run
'mw.rcfilters.js',
'Controller.js',
'UriProcessor.js',
@ -1675,27 +1683,10 @@ return [
'dm/ItemModel.js',
'dm/SavedQueriesModel.js',
'dm/SavedQueryItemModel.js',
[ 'name' => 'config.json', 'config' => [ 'StructuredChangeFiltersLiveUpdatePollingRate' ] ],
],
'dependencies' => [
'mediawiki.String',
'oojs',
'mediawiki.api',
'mediawiki.jqueryMsg',
'mediawiki.Uri',
'mediawiki.user',
'user.options',
],
'messages' => [
'quotation-marks',
'rcfilters-filterlist-title',
],
],
'mediawiki.rcfilters.filters.ui' => [
'targets' => [ 'desktop', 'mobile' ],
'localBasePath' => "$IP/resources/src/mediawiki.rcfilters",
'remoteBasePath' => "$wgResourceBasePath/resources/src/mediawiki.rcfilters",
'packageFiles' => [
// TODO consider merging this with the config.json for the ui code
[ 'name' => 'dmConfig.json', 'config' => [ 'StructuredChangeFiltersLiveUpdatePollingRate' ] ],
// Used to be the `main` script for mediawiki.rcfilters.filters.ui, now
// triggered by mw.rcfilters.js
'mw.rcfilters.init.js',
'HighlightColors.js',
'ui/CheckboxInputWidget.js',
@ -1855,14 +1846,17 @@ return [
'quotation-marks',
],
'dependencies' => [
'oojs-ui-widgets',
'jquery.makeCollapsible',
'mediawiki.String',
'mediawiki.api',
'mediawiki.jqueryMsg',
'mediawiki.language',
'mediawiki.Uri',
'mediawiki.user',
'mediawiki.util',
'mediawiki.widgets',
'mediawiki.rcfilters.filters.dm',
'oojs',
'oojs-ui-widgets',
'oojs-ui.styles.icons-content',
'oojs-ui.styles.icons-moderation',
'oojs-ui.styles.icons-editing-core',
@ -1870,7 +1864,8 @@ return [
'oojs-ui.styles.icons-interactions',
'oojs-ui.styles.icons-layout',
'oojs-ui.styles.icons-media',
'oojs-ui-windows.icons'
'oojs-ui-windows.icons',
'user.options',
],
],
'mediawiki.interface.helpers.styles' => [

View file

@ -32,7 +32,8 @@ Controller = function MwRcfiltersController( filtersModel, changesListModel, sav
this.collapsedPreferenceName = config.collapsedPreferenceName;
this.normalizeTarget = !!config.normalizeTarget;
this.pollingRate = require( './config.json' ).StructuredChangeFiltersLiveUpdatePollingRate;
// TODO merge dmConfig.json and config.json virtual files, see T256836
this.pollingRate = require( './dmConfig.json' ).StructuredChangeFiltersLiveUpdatePollingRate;
this.requestCounter = {};
this.uriProcessor = null;

View file

@ -148,11 +148,13 @@ function init() {
// Import i18n messages from config
mw.messages.set( mw.config.get( 'wgStructuredChangeFiltersMessages' ) );
// Early execute of init
if ( document.readyState === 'interactive' || document.readyState === 'complete' ) {
init();
} else {
$( init );
// Don't try to run init during QUnit tests, some of the code depends on mw.config variables
// that are not set, and the ui code here isn't even being tested.
if ( !window.QUnit ) {
if ( document.readyState === 'interactive' || document.readyState === 'complete' ) {
// Early execute of init
init();
} else {
$( init );
}
}
module.exports = mw.rcfilters;

View file

@ -56,4 +56,12 @@ mw.rcfilters = {
}
};
// This used to be the `main` script for the mediawiki.rcfilters.filters.dm module,
// and the mediawiki.rcfilters.filters.ui module had a `main` script mw.rcfilters.init.js
// that file depends on mw.rcfilters being defined in this one, because module dependencies
// get executed before those that depend on them. The two scripts should probably be merged,
// but for now this simply `require()`s mw.rcfilters.init.js so that the setup code there can
// be run
require( './mw.rcfilters.init.js' );
module.exports = mw.rcfilters;

View file

@ -133,7 +133,7 @@ return [
'mediawiki.util',
'mediawiki.viewport',
'mediawiki.special.recentchanges',
'mediawiki.rcfilters.filters.dm',
'mediawiki.rcfilters.filters.ui',
'mediawiki.language',
'mediawiki.language.testdata',
'mediawiki.cldr',