aboutsummaryrefslogtreecommitdiffstats
path: root/skins/common/protect.js
diff options
context:
space:
mode:
Diffstat (limited to 'skins/common/protect.js')
-rw-r--r--skins/common/protect.js20
1 files changed, 20 insertions, 0 deletions
diff --git a/skins/common/protect.js b/skins/common/protect.js
index 896860737177..f10c810a16f3 100644
--- a/skins/common/protect.js
+++ b/skins/common/protect.js
@@ -33,16 +33,36 @@ function protectInitialize(tableId, labelText) {
check.checked = true;
protectEnable(true);
}
+
+ allowCascade();
return true;
}
return false;
}
+function allowCascade() {
+ var pr_types = document.getElementsByTagName("select");
+ for (var i = 0; i < pr_types.length; i++) {
+ if (pr_types[i].id.match(/^mwProtect-level-/)) {
+ var selected_level = pr_types[i].getElementsByTagName("option")[pr_types[i].selectedIndex].value;
+ for (var k=0; k < wgCascadeableLevels.length; k++) {
+ if ( wgCascadeableLevels[k] != selected_level ) {
+ document.getElementById('mwProtect-cascade').disabled=true;
+ return false;
+ }
+ }
+ }
+ }
+ document.getElementById('mwProtect-cascade').disabled=false;
+ return true;
+}
+
function protectLevelsUpdate(source) {
if (!protectUnchained()) {
protectUpdateAll(source.selectedIndex);
}
+ allowCascade();
}
function protectChainUpdate() {