X-Git-Url: https://git.heureux-cyclage.org/?p=lhc%2Fweb%2Fwiklou.git;a=blobdiff_plain;f=resources%2Fsrc%2Fmediawiki.special%2Fmediawiki.special.block.js;h=8d8841099be336b878b363871af6298142d14a4b;hp=8579e0545e754d0cdf33dd7278fc2f2005375db4;hb=24ebca2251f94a20acee53e583d65aa7fac2c15d;hpb=c0cdf0e91186728c8e283bbcc977d6831f4b93d1 diff --git a/resources/src/mediawiki.special/mediawiki.special.block.js b/resources/src/mediawiki.special/mediawiki.special.block.js index 8579e0545e..8d8841099b 100644 --- a/resources/src/mediawiki.special/mediawiki.special.block.js +++ b/resources/src/mediawiki.special/mediawiki.special.block.js @@ -7,19 +7,30 @@ $anonOnlyRow = $( '#mw-input-wpHardBlock' ).closest( 'tr' ), $enableAutoblockRow = $( '#mw-input-wpAutoBlock' ).closest( 'tr' ), $hideUser = $( '#mw-input-wpHideUser' ).closest( 'tr' ), - $watchUser = $( '#mw-input-wpWatch' ).closest( 'tr' ); + $watchUser = $( '#mw-input-wpWatch' ).closest( 'tr' ), + $expiry = $( '#mw-input-wpExpiry' ), + $otherExpiry = $( '#mw-input-wpExpiry-other' ); function updateBlockOptions( instant ) { var blocktarget = $.trim( $blockTarget.val() ), isEmpty = blocktarget === '', - isIp = mw.util.isIPv4Address( blocktarget, true ) || mw.util.isIPv6Address( blocktarget, true ), - isIpRange = isIp && blocktarget.match( /\/\d+$/ ); + isIp = mw.util.isIPAddress( blocktarget, true ), + isIpRange = isIp && blocktarget.match( /\/\d+$/ ), + isNonEmptyIp = isIp && !isEmpty, + expiryValue = $expiry.val(), + // infinityValues are the values the SpecialBlock class accepts as infinity (sf. wfIsInfinity) + infinityValues = [ 'infinite', 'indefinite', 'infinity', 'never' ], + isIndefinite = $.inArray( expiryValue, infinityValues ) !== -1 || + ( expiryValue === 'other' && $.inArray( $otherExpiry.val(), infinityValues ) !== -1 ); - if ( isIp && !isEmpty ) { + if ( isNonEmptyIp ) { $enableAutoblockRow.goOut( instant ); - $hideUser.goOut( instant ); } else { $enableAutoblockRow.goIn( instant ); + } + if ( isNonEmptyIp || !isIndefinite ) { + $hideUser.goOut( instant ); + } else { $hideUser.goIn( instant ); } if ( !isIp && !isEmpty ) { @@ -37,6 +48,8 @@ if ( $blockTarget.length ) { // Bind functions so they're checked whenever stuff changes $blockTarget.keyup( updateBlockOptions ); + $expiry.change( updateBlockOptions ); + $otherExpiry.keyup( updateBlockOptions ); // Call them now to set initial state (ie. Special:Block/Foobar?wpBlockExpiry=2+hours) updateBlockOptions( /* instant= */ true );