X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.special.block.js;h=255b878adf4b31070163f123c71e823b4240ffca;hb=508c30e38fe1db714f3bd99478c811b4094a9f7f;hp=1852231e50adf938f0f408add1c753b5ad4a47c4;hpb=28aebf8e06c58a9ee99f9434e3382caf3e4c7ae7;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/src/mediawiki.special.block.js b/resources/src/mediawiki.special.block.js index 1852231e50..255b878adf 100644 --- a/resources/src/mediawiki.special.block.js +++ b/resources/src/mediawiki.special.block.js @@ -3,25 +3,25 @@ */ ( 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' ) ), + preventTalkPageEdit = infuseIfExists( $( '#mw-input-wpDisableUTEdit' ) ), + pageRestrictionsWidget = infuseIfExists( $( '#mw-input-wpPageRestrictions' ) ); function updateBlockOptions() { var blocktarget = blockTargetWidget.getValue().trim(), @@ -50,6 +50,17 @@ if ( pageRestrictionsWidget ) { pageRestrictionsWidget.setDisabled( editingRestrictionValue === 'sitewide' ); } + if ( preventTalkPageEdit ) { + // TODO: (T210475) this option is disabled for partial blocks unless + // a namespace restriction for User_talk namespace is in place. + // This needs to be updated once Namespace restrictions is available + if ( editingRestrictionValue === 'partial' ) { + preventTalkPageEdit.setDisabled( true ); + } else { + preventTalkPageEdit.setDisabled( false ); + } + } + } if ( blockTargetWidget ) {