X-Git-Url: https://git.cyclocoop.org/?a=blobdiff_plain;ds=sidebyside;f=resources%2Fsrc%2Fmediawiki.special.block.js;h=02e380ae596f07ac210b2ba4712e3417bb2d3d1a;hb=d3a4ac1bb6accbaf3be0c0067358b64184a03490;hp=b777c88ba75a9be8d76b0e6d4cf45f2c9563259c;hpb=f374b21f62aa36ce238c485eaa36d728e84e9954;p=lhc%2Fweb%2Fwiklou.git diff --git a/resources/src/mediawiki.special.block.js b/resources/src/mediawiki.special.block.js index b777c88ba7..02e380ae59 100644 --- a/resources/src/mediawiki.special.block.js +++ b/resources/src/mediawiki.special.block.js @@ -16,6 +16,7 @@ var blockTargetWidget = infuseIfExists( $( '#mw-bi-target' ) ), anonOnlyField = infuseIfExists( $( '#mw-input-wpHardBlock' ).closest( '.oo-ui-fieldLayout' ) ), enableAutoblockField = infuseIfExists( $( '#mw-input-wpAutoBlock' ).closest( '.oo-ui-fieldLayout' ) ), + hideUserWidget = infuseIfExists( $( '#mw-input-wpHideUser' ) ), hideUserField = infuseIfExists( $( '#mw-input-wpHideUser' ).closest( '.oo-ui-fieldLayout' ) ), watchUserField = infuseIfExists( $( '#mw-input-wpWatch' ).closest( '.oo-ui-fieldLayout' ) ), expiryWidget = infuseIfExists( $( '#mw-input-wpExpiry' ) ), @@ -23,7 +24,10 @@ editingRestrictionWidget = infuseIfExists( $( '#mw-input-wpEditingRestriction' ) ), preventTalkPageEdit = infuseIfExists( $( '#mw-input-wpDisableUTEdit' ) ), pageRestrictionsWidget = infuseIfExists( $( '#mw-input-wpPageRestrictions' ) ), - namespaceRestrictionsWidget = infuseIfExists( $( '#mw-input-wpNamespaceRestrictions' ) ); + namespaceRestrictionsWidget = infuseIfExists( $( '#mw-input-wpNamespaceRestrictions' ) ), + createAccountWidget = infuseIfExists( $( '#mw-input-wpCreateAccount' ) ), + userChangedCreateAccount = false, + updatingBlockOptions = false; function updateBlockOptions() { var blocktarget = blockTargetWidget.getValue().trim(), @@ -35,14 +39,19 @@ // infinityValues are the values the SpecialBlock class accepts as infinity (sf. wfIsInfinity) infinityValues = [ 'infinite', 'indefinite', 'infinity', 'never' ], isIndefinite = infinityValues.indexOf( expiryValue ) !== -1, - editingRestrictionValue = editingRestrictionWidget ? editingRestrictionWidget.getValue() : undefined, - editingIsSelected = editingWidget ? editingWidget.isSelected() : false; + // editingRestrictionWidget only exists if partial blocks is enabled; if not, block must be sitewide + editingRestrictionValue = editingRestrictionWidget ? editingRestrictionWidget.getValue() : 'sitewide', + editingIsSelected = editingWidget ? editingWidget.isSelected() : false, + isSitewide = editingIsSelected && editingRestrictionValue === 'sitewide'; if ( enableAutoblockField ) { enableAutoblockField.toggle( !isNonEmptyIp ); } if ( hideUserField ) { - hideUserField.toggle( !isNonEmptyIp && isIndefinite ); + hideUserField.toggle( !isNonEmptyIp && isIndefinite && isSitewide ); + if ( !hideUserField.isVisible() ) { + hideUserWidget.setSelected( false ); + } } if ( anonOnlyField ) { anonOnlyField.toggle( isIp || isEmpty ); @@ -54,10 +63,10 @@ editingRestrictionWidget.setDisabled( !editingIsSelected ); } if ( pageRestrictionsWidget ) { - pageRestrictionsWidget.setDisabled( !editingIsSelected || editingRestrictionValue === 'sitewide' ); + pageRestrictionsWidget.setDisabled( !editingIsSelected || isSitewide ); } if ( namespaceRestrictionsWidget ) { - namespaceRestrictionsWidget.setDisabled( !editingIsSelected || editingRestrictionValue === 'sitewide' ); + namespaceRestrictionsWidget.setDisabled( !editingIsSelected || isSitewide ); } if ( preventTalkPageEdit && namespaceRestrictionsWidget ) { // This option is disabled for partial blocks unless a namespace restriction @@ -70,6 +79,11 @@ ) === -1 ); } + if ( !userChangedCreateAccount ) { + updatingBlockOptions = true; + createAccountWidget.setSelected( isSitewide ); + updatingBlockOptions = false; + } } @@ -87,6 +101,12 @@ namespaceRestrictionsWidget.on( 'change', updateBlockOptions ); } + createAccountWidget.on( 'change', function () { + if ( !updatingBlockOptions ) { + userChangedCreateAccount = true; + } + } ); + // Call them now to set initial state (ie. Special:Block/Foobar?wpBlockExpiry=2+hours) updateBlockOptions(); }