diff options
Diffstat (limited to 'skins/common/block.js')
-rw-r--r-- | skins/common/block.js | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/skins/common/block.js b/skins/common/block.js new file mode 100644 index 0000000..ad04f81 --- /dev/null +++ b/skins/common/block.js @@ -0,0 +1,57 @@ +addOnloadHook( considerChangingExpiryFocus ); + +function considerChangingExpiryFocus() { + if ( !document.getElementById ) { + return; + } + var drop = document.getElementById( 'wpBlockExpiry' ); + if ( !drop ) { + return; + } + var field = document.getElementById( 'wpBlockOther' ); + if ( !field ) { + return; + } + var opt = drop.value; + if ( opt == 'other' ) { + field.style.display = ''; + } else { + field.style.display = 'none'; + } +} + +function updateBlockOptions() { + if ( !document.getElementById ) { + return; + } + + var target = document.getElementById( 'mw-bi-target' ); + if ( !target ) { + return; + } + + var addy = target.value; + var isEmpty = addy.match(/^\s*$/); + var isIp = addy.match(/^(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|:(:[0-9A-Fa-f]{1,4}){1,7}|[0-9A-Fa-f]{1,4}(:{1,2}[0-9A-Fa-f]{1,4}|::$){1,7})(\/\d+)?$/); + var isIpRange = isIp && addy.match(/\/\d+$/); + + var anonymousRow = document.getElementById( 'wpAnonOnlyRow' ); + if( anonymousRow ) { + anonymousRow.style.display = ( !isIp && !isEmpty ) ? 'none' : ''; + } + + var autoblockRow = document.getElementById( 'wpEnableAutoblockRow' ); + if( autoblockRow ) { + autoblockRow.style.display = isIp && !isEmpty ? 'none' : ''; + } + + var hideuserRow = document.getElementById( 'wpEnableHideUser' ); + if( hideuserRow ) { + hideuserRow.style.display = isIp && !isEmpty ? 'none' : ''; + } + + var watchuserRow = document.getElementById( 'wpEnableWatchUser' ); + if( watchuserRow ) { + watchuserRow.style.display = isIpRange && !isEmpty ? 'none' : ''; + } +} |