From ceda6e1b8a5f663ad8464dde0c3bf7104c6fcb95 Mon Sep 17 00:00:00 2001 From: Ed Sanders Date: Tue, 4 Dec 2018 16:36:37 -0500 Subject: [PATCH] Rewrite infuseOrNull to not suppress useful errors Wrapping infuse in try/catch suppressed errors about missing dependencies. Instead only return null if the selector is empty. Rename to infuseIfExists for clarity. This exposed some missing dependencies which have been added. Change-Id: I7f6005b983a70f953550216a6483a9fe1e5699dd --- resources/Resources.php | 4 +++- resources/src/mediawiki.special.block.js | 23 +++++++++++------------ 2 files changed, 14 insertions(+), 13 deletions(-) diff --git a/resources/Resources.php b/resources/Resources.php index 0385d8000b..5af7783d5f 100644 --- a/resources/Resources.php +++ b/resources/Resources.php @@ -2062,8 +2062,10 @@ return [ 'oojs-ui-core', 'oojs-ui.styles.icons-editing-core', 'oojs-ui.styles.icons-editing-advanced', - 'mediawiki.widgets.SelectWithInputWidget', 'mediawiki.widgets.DateInputWidget', + 'mediawiki.widgets.SelectWithInputWidget', + 'mediawiki.widgets.TitlesMultiselectWidget', + 'mediawiki.widgets.UserInputWidget', 'mediawiki.util', 'mediawiki.htmlform', 'moment', diff --git a/resources/src/mediawiki.special.block.js b/resources/src/mediawiki.special.block.js index 1852231e50..441b1d6073 100644 --- a/resources/src/mediawiki.special.block.js +++ b/resources/src/mediawiki.special.block.js @@ -3,25 +3,24 @@ */ ( function () { // Like OO.ui.infuse(), but if the element doesn't exist, return null instead of throwing an exception. - function infuseOrNull( elem ) { - try { - return OO.ui.infuse( elem ); - } catch ( er ) { + function infuseIfExists( $el ) { + if ( !$el.length ) { return null; } + return OO.ui.infuse( $el ); } $( function () { // This code is also loaded on the "block succeeded" page where there is no form, // so username and expiry fields might also be missing. - var blockTargetWidget = infuseOrNull( 'mw-bi-target' ), - anonOnlyField = infuseOrNull( $( '#mw-input-wpHardBlock' ).closest( '.oo-ui-fieldLayout' ) ), - enableAutoblockField = infuseOrNull( $( '#mw-input-wpAutoBlock' ).closest( '.oo-ui-fieldLayout' ) ), - hideUserField = infuseOrNull( $( '#mw-input-wpHideUser' ).closest( '.oo-ui-fieldLayout' ) ), - watchUserField = infuseOrNull( $( '#mw-input-wpWatch' ).closest( '.oo-ui-fieldLayout' ) ), - expiryWidget = infuseOrNull( 'mw-input-wpExpiry' ), - editingRestrictionWidget = infuseOrNull( 'mw-input-wpEditingRestriction' ), - pageRestrictionsWidget = infuseOrNull( 'mw-input-wpPageRestrictions' ); + var blockTargetWidget = infuseIfExists( $( '#mw-bi-target' ) ), + anonOnlyField = infuseIfExists( $( '#mw-input-wpHardBlock' ).closest( '.oo-ui-fieldLayout' ) ), + enableAutoblockField = infuseIfExists( $( '#mw-input-wpAutoBlock' ).closest( '.oo-ui-fieldLayout' ) ), + hideUserField = infuseIfExists( $( '#mw-input-wpHideUser' ).closest( '.oo-ui-fieldLayout' ) ), + watchUserField = infuseIfExists( $( '#mw-input-wpWatch' ).closest( '.oo-ui-fieldLayout' ) ), + expiryWidget = infuseIfExists( $( '#mw-input-wpExpiry' ) ), + editingRestrictionWidget = infuseIfExists( $( '#mw-input-wpEditingRestriction' ) ), + pageRestrictionsWidget = infuseIfExists( $( '#mw-input-wpPageRestrictions' ) ); function updateBlockOptions() { var blocktarget = blockTargetWidget.getValue().trim(), -- 2.20.1