summaryrefslogtreecommitdiffstats
path: root/skins/common/block.js
diff options
context:
space:
mode:
Diffstat (limited to 'skins/common/block.js')
-rw-r--r--skins/common/block.js57
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' : '';
+ }
+}