mirror of
https://gerrit.wikimedia.org/r/mediawiki/skins/MinervaNeue
synced 2024-11-23 13:56:51 +00:00
Remove redundant closure for all modules with packageFiles
Modules loaded with packageFiles are always executed in module scope (with a closure), even in debug mode. The behaviour of non-packageFiles debug mode is the only reason files have closures. https://www.mediawiki.org/wiki/Manual:Coding_conventions/JavaScript#Closure Change-Id: I14ac680eb67d892618bbc13be9298ec9b8e0e2e9
This commit is contained in:
parent
02f9430b69
commit
bc81b04ecd
|
@ -1,34 +1,32 @@
|
|||
( function () {
|
||||
const
|
||||
checkboxHack = require( ( 'mediawiki.page.ready' ) ).checkboxHack,
|
||||
CHECKBOX_HACK_CONTAINER_SELECTOR = '.toggle-list',
|
||||
CHECKBOX_HACK_CHECKBOX_SELECTOR = '.toggle-list__checkbox',
|
||||
CHECKBOX_HACK_BUTTON_SELECTOR = '.toggle-list__toggle',
|
||||
CHECKBOX_HACK_TARGET_SELECTOR = '.toggle-list__list';
|
||||
|
||||
/**
|
||||
* Automatically dismiss the list when clicking or focusing elsewhere and update the
|
||||
* aria-expanded attribute based on list visibility.
|
||||
*
|
||||
* @param {Window} window
|
||||
* @param {HTMLElement} component
|
||||
*/
|
||||
function bind( window, component ) {
|
||||
const
|
||||
checkboxHack = require( ( 'mediawiki.page.ready' ) ).checkboxHack,
|
||||
CHECKBOX_HACK_CONTAINER_SELECTOR = '.toggle-list',
|
||||
CHECKBOX_HACK_CHECKBOX_SELECTOR = '.toggle-list__checkbox',
|
||||
CHECKBOX_HACK_BUTTON_SELECTOR = '.toggle-list__toggle',
|
||||
CHECKBOX_HACK_TARGET_SELECTOR = '.toggle-list__list';
|
||||
checkbox = /** @type {HTMLInputElement} */ (
|
||||
component.querySelector( CHECKBOX_HACK_CHECKBOX_SELECTOR )
|
||||
),
|
||||
button = component.querySelector( CHECKBOX_HACK_BUTTON_SELECTOR ),
|
||||
target = component.querySelector( CHECKBOX_HACK_TARGET_SELECTOR ).parentNode;
|
||||
|
||||
/**
|
||||
* Automatically dismiss the list when clicking or focusing elsewhere and update the
|
||||
* aria-expanded attribute based on list visibility.
|
||||
*
|
||||
* @param {Window} window
|
||||
* @param {HTMLElement} component
|
||||
*/
|
||||
function bind( window, component ) {
|
||||
const
|
||||
checkbox = /** @type {HTMLInputElement} */ (
|
||||
component.querySelector( CHECKBOX_HACK_CHECKBOX_SELECTOR )
|
||||
),
|
||||
button = component.querySelector( CHECKBOX_HACK_BUTTON_SELECTOR ),
|
||||
target = component.querySelector( CHECKBOX_HACK_TARGET_SELECTOR ).parentNode;
|
||||
|
||||
if ( !( checkbox && button && target ) ) {
|
||||
return;
|
||||
}
|
||||
checkboxHack.bind( window, checkbox, button, target );
|
||||
if ( !( checkbox && button && target ) ) {
|
||||
return;
|
||||
}
|
||||
checkboxHack.bind( window, checkbox, button, target );
|
||||
}
|
||||
|
||||
module.exports = Object.freeze( {
|
||||
selector: CHECKBOX_HACK_CONTAINER_SELECTOR,
|
||||
bind
|
||||
} );
|
||||
}() );
|
||||
module.exports = Object.freeze( {
|
||||
selector: CHECKBOX_HACK_CONTAINER_SELECTOR,
|
||||
bind
|
||||
} );
|
||||
|
|
|
@ -15,6 +15,7 @@
|
|||
"jsdoc/no-undefined-types": "off",
|
||||
"max-len": "error",
|
||||
"mediawiki/class-doc": "off",
|
||||
"no-implicit-globals": "off",
|
||||
"no-restricted-properties": [
|
||||
"error",
|
||||
{
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
( function () {
|
||||
/**
|
||||
* Creates a "read more" button with given text.
|
||||
*
|
||||
* @param {string} msg
|
||||
* @return {jQuery}
|
||||
*/
|
||||
function newPageIssueLearnMoreLink( msg ) {
|
||||
return $( '<span>' )
|
||||
.addClass( 'ambox-learn-more' )
|
||||
.text( msg );
|
||||
}
|
||||
/**
|
||||
* Creates a "read more" button with given text.
|
||||
*
|
||||
* @internal
|
||||
* @ignore
|
||||
* @param {string} msg
|
||||
* @return {jQuery}
|
||||
*/
|
||||
function newPageIssueLearnMoreLink( msg ) {
|
||||
return $( '<span>' )
|
||||
.addClass( 'ambox-learn-more' )
|
||||
.text( msg );
|
||||
}
|
||||
|
||||
module.exports = newPageIssueLearnMoreLink;
|
||||
}() );
|
||||
module.exports = newPageIssueLearnMoreLink;
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
( function () {
|
||||
/**
|
||||
* Create a link element that opens the issues overlay.
|
||||
*
|
||||
* @param {string} labelText The text value of the element
|
||||
* @return {jQuery}
|
||||
*/
|
||||
function newPageIssueLink( labelText ) {
|
||||
return $( '<a>' ).addClass( 'cleanup mw-mf-cleanup' ).text( labelText );
|
||||
}
|
||||
/**
|
||||
* Create a link element that opens the issues overlay.
|
||||
*
|
||||
* @internal
|
||||
* @ignore
|
||||
* @param {string} labelText The text value of the element
|
||||
* @return {jQuery}
|
||||
*/
|
||||
function newPageIssueLink( labelText ) {
|
||||
return $( '<a>' ).addClass( 'cleanup mw-mf-cleanup' ).text( labelText );
|
||||
}
|
||||
|
||||
module.exports = newPageIssueLink;
|
||||
}() );
|
||||
module.exports = newPageIssueLink;
|
||||
|
|
|
@ -1,50 +1,52 @@
|
|||
( function () {
|
||||
const newPageIssueLink = require( './PageIssueLink.js' );
|
||||
const newPageIssueLearnMoreLink = require( './PageIssueLearnMoreLink.js' );
|
||||
const newPageIssueLink = require( './PageIssueLink.js' );
|
||||
const newPageIssueLearnMoreLink = require( './PageIssueLearnMoreLink.js' );
|
||||
|
||||
/**
|
||||
* Modifies the `issue` DOM to create a banner designed for single / multiple issue templates,
|
||||
* and handles event-binding for that issues overlay.
|
||||
*
|
||||
* @param {IssueSummary} issue
|
||||
* @param {string} msg
|
||||
* @param {string} overlayUrl
|
||||
* @param {Object} overlayManager
|
||||
* @param {boolean} [multiple]
|
||||
*/
|
||||
function insertPageIssueBanner( issue, msg, overlayUrl, overlayManager, multiple ) {
|
||||
const $learnMoreEl = newPageIssueLearnMoreLink( msg );
|
||||
const $issueContainer = multiple ?
|
||||
issue.$el.parents( '.mbox-text-span, .mbox-text-div' ) :
|
||||
issue.$el.find( '.mbox-text' );
|
||||
const $clickContainer = multiple ? issue.$el.parents( '.mbox-text' ) : issue.$el;
|
||||
/**
|
||||
* Modifies the `issue` DOM to create a banner designed for single / multiple issue templates,
|
||||
* and handles event-binding for that issues overlay.
|
||||
*
|
||||
* @internal
|
||||
* @ignore
|
||||
* @param {IssueSummary} issue
|
||||
* @param {string} msg
|
||||
* @param {string} overlayUrl
|
||||
* @param {Object} overlayManager
|
||||
* @param {boolean} [multiple]
|
||||
*/
|
||||
function insertPageIssueBanner( issue, msg, overlayUrl, overlayManager, multiple ) {
|
||||
const $learnMoreEl = newPageIssueLearnMoreLink( msg );
|
||||
const $issueContainer = multiple ?
|
||||
issue.$el.parents( '.mbox-text-span, .mbox-text-div' ) :
|
||||
issue.$el.find( '.mbox-text' );
|
||||
const $clickContainer = multiple ? issue.$el.parents( '.mbox-text' ) : issue.$el;
|
||||
|
||||
$issueContainer.prepend( issue.issue.iconElement );
|
||||
$issueContainer.prepend( $learnMoreEl );
|
||||
$issueContainer.prepend( issue.issue.iconElement );
|
||||
$issueContainer.prepend( $learnMoreEl );
|
||||
|
||||
$clickContainer.on( 'click', () => {
|
||||
overlayManager.router.navigate( overlayUrl );
|
||||
return false;
|
||||
} );
|
||||
}
|
||||
$clickContainer.on( 'click', () => {
|
||||
overlayManager.router.navigate( overlayUrl );
|
||||
return false;
|
||||
} );
|
||||
}
|
||||
|
||||
/**
|
||||
* Modifies the page DOM to insert a page-issue notice below the title of the page,
|
||||
* containing a link with a message like "this page has issues".
|
||||
* Used on category namespaces, or when page-issue banners have been disabled.
|
||||
*
|
||||
* @param {string} labelText
|
||||
* @param {string} section
|
||||
*/
|
||||
function insertPageIssueNotice( labelText, section ) {
|
||||
const $link = newPageIssueLink( labelText );
|
||||
$link.attr( 'href', '#/issues/' + section );
|
||||
// eslint-disable-next-line no-jquery/no-global-selector
|
||||
$link.insertAfter( $( 'h1.mw-first-heading' ) );
|
||||
}
|
||||
/**
|
||||
* Modifies the page DOM to insert a page-issue notice below the title of the page,
|
||||
* containing a link with a message like "this page has issues".
|
||||
* Used on category namespaces, or when page-issue banners have been disabled.
|
||||
*
|
||||
* @internal
|
||||
* @ignore
|
||||
* @param {string} labelText
|
||||
* @param {string} section
|
||||
*/
|
||||
function insertPageIssueNotice( labelText, section ) {
|
||||
const $link = newPageIssueLink( labelText );
|
||||
$link.attr( 'href', '#/issues/' + section );
|
||||
// eslint-disable-next-line no-jquery/no-global-selector
|
||||
$link.insertAfter( $( 'h1.mw-first-heading' ) );
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
insertPageIssueBanner,
|
||||
insertPageIssueNotice
|
||||
};
|
||||
}() );
|
||||
module.exports = {
|
||||
insertPageIssueBanner,
|
||||
insertPageIssueNotice
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue