Convert modules to use packageFiles

ext.MassMessage.autocomplete.js and ext.MassMessage.badhtml.js are now module exports

Also fix missing message documentation for content.js

Bug: T235944
Change-Id: I1c4b81885457db4146574fc08a0140c5362eea5d
这个提交包含在:
DannyS712 2020-06-30 09:12:34 +00:00 提交者 DannyS712
父节点 bdef9a8e66
当前提交 673f66a74a
共有 7 个文件被更改,包括 75 次插入53 次删除

查看文件

@ -9,6 +9,7 @@
"Promise": "readonly"
},
"rules": {
"no-jquery/no-global-selector": "off"
"no-jquery/no-global-selector": "off",
"no-implicit-globals": "off"
}
}

查看文件

@ -87,7 +87,7 @@
]
},
"ext.MassMessage.special.js": {
"scripts": [
"packageFiles": [
"ext.MassMessage.special.js",
"ext.MassMessage.badhtml.js",
"ext.MassMessage.autocomplete.js"
@ -105,7 +105,7 @@
]
},
"ext.MassMessage.content.js": {
"scripts": [
"packageFiles": [
"ext.MassMessage.content.js",
"ext.MassMessage.autocomplete.js"
],
@ -132,7 +132,7 @@
]
},
"ext.MassMessage.create": {
"scripts": [
"packageFiles": [
"ext.MassMessage.create.js",
"ext.MassMessage.autocomplete.js"
],

查看文件

@ -2,41 +2,44 @@
* Functions for autocomplete of titles and sites
* Mainly from from http://jqueryui.com/autocomplete/
* and resources/mediawiki/mediawiki.searchSuggest.js
*
* Warning: This file may be executed multiple times in the same request, since it is
* used by multiple modules.
*
* TODO convert to packageFiles to avoid multiple executions
*/
( function () {
'use strict';
mw.massmessage = mw.massmessage || {};
'use strict';
mw.massmessage.enableTitleComplete = function ( $selector ) {
$selector.autocomplete( {
source: function ( request, response ) {
var api = new mw.Api();
api.get( {
action: 'opensearch',
search: request.term
} ).done( function ( data ) {
response( data[ 1 ] );
} );
}
} );
};
/**
* @param {jQuery} $selector
*/
function enableTitleComplete( $selector ) {
$selector.autocomplete( {
source: function ( request, response ) {
var api = new mw.Api();
api.get( {
action: 'opensearch',
search: request.term
} ).done( function ( data ) {
response( data[ 1 ] );
} );
}
} );
}
mw.massmessage.enableSiteComplete = function ( $selector ) {
$selector.autocomplete( {
source: function ( request, response ) {
( new mw.Api() ).get( {
action: 'query',
list: 'mmsites',
term: request.term
} ).done( function ( data ) {
response( data.query.mmsites );
} );
}
} );
};
}() );
/**
* @param {jQuery} $selector
*/
function enableSiteComplete( $selector ) {
$selector.autocomplete( {
source: function ( request, response ) {
( new mw.Api() ).get( {
action: 'query',
list: 'mmsites',
term: request.term
} ).done( function ( data ) {
response( data.query.mmsites );
} );
}
} );
}
module.exports = {
enableTitleComplete: enableTitleComplete,
enableSiteComplete: enableSiteComplete
};

查看文件

@ -3,9 +3,13 @@
* Based on http://www.raymondcamden.com/index.cfm/2012/1/23/Detecting-invalid-HTML-with-JavaScript
* Similar PHP method that checks on preview in SpecialMassMessage.php
*/
$( function () {
'use strict';
var voidElements, $msg, $warnings;
'use strict';
/**
* @param {jQuery} $msg
*/
function badHtml( $msg ) {
var voidElements, $warnings;
// Construct a set containing HTML singleton elements (do not need an end tag).
// List obtained from http://www.w3.org/TR/html-markup/syntax.html#syntax-elements
@ -13,7 +17,6 @@ $( function () {
embed: 1, hr: 1, img: 1, input: 1, keygen: 1, link: 1,
meta: 1, param: 1, source: 1, track: 1, wbr: 1 };
$msg = $( '#mw-massmessage-form-message' );
$warnings = $( '<div>' )
.attr( 'id', 'mw-massmessage-form-warnings' )
.addClass( 'warningbox' );
@ -77,4 +80,6 @@ $( function () {
$warnings.hide();
}
} ) );
} );
}
module.exports = badHtml;

查看文件

@ -1,7 +1,8 @@
$( function () {
'use strict';
var listShown = false,
var autocomplete = require( './ext.MassMessage.autocomplete.js' ),
listShown = false,
appendAdded, getApiParam, removeHandler, confirmableParams, showAddError;
// Append an added page to the displayed list.
@ -129,9 +130,16 @@ $( function () {
showAddError = function ( msgKey, errorCode ) {
var message;
if ( errorCode === undefined ) {
// eslint-disable-next-line mediawiki/msg-doc
// The following messages are used here:
// * massmessage-content-alreadyinlist
// * massmessage-content-invalidtitlesite
// * massmessage-content-invalidtitle
// * massmessage-content-invalidsite
message = mw.message( msgKey ).escaped();
} else {
// The following messages are used here:
// * massmessage-content-adderror
// Since only 1 key is used, the lint rule fails
// eslint-disable-next-line mediawiki/msg-doc
message = mw.message( msgKey, errorCode ).escaped();
}
@ -143,10 +151,10 @@ $( function () {
};
// Autocomplete for page titles
mw.massmessage.enableTitleComplete( $( '#mw-massmessage-addtitle' ) );
autocomplete.enableTitleComplete( $( '#mw-massmessage-addtitle' ) );
// Autocomplete for sites
mw.massmessage.enableSiteComplete( $( '#mw-massmessage-addsite' ) );
autocomplete.enableSiteComplete( $( '#mw-massmessage-addsite' ) );
// Register handler for remove links.
$( '.mw-massmessage-removelink a' ).confirmable( confirmableParams );

查看文件

@ -1,7 +1,8 @@
$( function () {
'use strict';
var checkTitle, checkSource, pageIsValidSource,
var autocomplete = require( './ext.MassMessage.autocomplete.js' ),
checkTitle, checkSource, pageIsValidSource,
checkSourceTimeout = -1,
queryTitleApiRequest,
$titleStatus = OO.ui.infuse( $( '#mw-input-wptitle' ).closest( '.oo-ui-fieldLayout' ) ),
@ -108,5 +109,5 @@ $( function () {
checkSourceTimeout = setTimeout( checkSource, 300 );
} );
mw.massmessage.enableTitleComplete( $formSource.$input );
autocomplete.enableTitleComplete( $formSource.$input );
} );

查看文件

@ -2,12 +2,16 @@ $( function () {
'use strict';
// Dynamic page title validation
var $spamlist = $( '#mw-massmessage-form-spamlist' ),
var autocomplete = require( './ext.MassMessage.autocomplete.js' ),
badHtml = require( './ext.MassMessage.badhtml.js' ),
$spamlist = $( '#mw-massmessage-form-spamlist' ),
$massmessagepage = $( '#mw-massmessage-form-page' );
// Limit edit summaries to 240 bytes
$( '#mw-massmessage-form-subject' ).byteLimit();
badHtml( $( '#mw-massmessage-form-message' ) );
/**
* Fetch pages with a given title.
*
@ -97,8 +101,8 @@ $( function () {
} );
// Autocomplete for spamlist titles
mw.massmessage.enableTitleComplete( $spamlist );
autocomplete.enableTitleComplete( $spamlist );
// Autocomplete for pages to send as message
mw.massmessage.enableTitleComplete( $massmessagepage );
autocomplete.enableTitleComplete( $massmessagepage );
} );