MediaWiki:Common.js: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
(function () { | (function () { | ||
const KEY = "alphax_age_terms"; | |||
const MAX_AGE = 30 * 24 * 60 * 60 * 1000; | |||
const saved = localStorage.getItem(KEY); | |||
if (saved && (Date.now() - saved < MAX_AGE)) { | |||
return; | |||
} | |||
const style = document.createElement("style"); | |||
style.innerHTML = ` | |||
#age-overlay{ | |||
position:fixed; | |||
inset:0; | |||
background:rgba(0,0,0,0.85); | |||
backdrop-filter:blur(8px); | |||
display:flex; | |||
align-items:center; | |||
justify-content:center; | |||
z-index:999999; | |||
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial; | |||
} | |||
#age-box{ | |||
background:#0f0f12; | |||
border:1px solid rgba(255,255,255,0.08); | |||
border-radius:20px; | |||
padding:40px 34px; | |||
max-width:520px; | |||
width:90%; | |||
color:white; | |||
box-shadow:0 25px 80px rgba(0,0,0,0.6); | |||
text-align:center; | |||
} | |||
#age-box h2{ | |||
margin-top:0; | |||
font-size:32px; | |||
margin-bottom:18px; | |||
} | |||
#age-text{ | |||
color:#cfcfd6; | |||
line-height:1.6; | |||
margin-bottom:28px; | |||
} | |||
#checks{ | |||
text-align:left; | |||
margin-bottom:28px; | |||
} | |||
#checks label{ | |||
display:block; | |||
margin:12px 0; | |||
font-size:15px; | |||
color:#e4e4ea; | |||
cursor:pointer; | |||
} | |||
#checks input{ | |||
margin-right:10px; | |||
} | |||
#buttons{ | |||
display:flex; | |||
gap:14px; | |||
justify-content:center; | |||
margin-top:10px; | |||
} | |||
#enter{ | |||
background:#34d27a; | |||
color:#05110b; | |||
border:none; | |||
padding:14px 26px; | |||
border-radius:10px; | |||
font-size:16px; | |||
font-weight:700; | |||
cursor:pointer; | |||
opacity:0.4; | |||
} | |||
#enter.active{ | |||
opacity:1; | |||
} | |||
#exit{ | |||
background:#e74c3c; | |||
border:none; | |||
color:white; | |||
padding:14px 22px; | |||
border-radius:10px; | |||
font-size:16px; | |||
cursor:pointer; | |||
} | |||
#links{ | |||
margin-top:22px; | |||
font-size:13px; | |||
opacity:0.8; | |||
} | |||
#links a{ | |||
color:#bbb; | |||
margin:0 10px; | |||
text-decoration:none; | |||
} | |||
#links a:hover{ | |||
color:white; | |||
} | |||
`; | |||
document.head.appendChild(style); | |||
const overlay = document.createElement("div"); | |||
overlay.id = "age-overlay"; | |||
overlay.innerHTML = ` | |||
<div id="age-box"> | |||
<h2>18+ Access</h2> | |||
<div id="age-text"> | |||
This website contains adult educational content.<br> | |||
You must confirm the following to enter. | |||
</div> | |||
<div id="checks"> | |||
<label> | |||
<input type="checkbox" id="c1"> | |||
I confirm that I am at least 18 years old | |||
</label> | |||
<label> | |||
<input type="checkbox" id="c2"> | |||
I agree to the Terms & Conditions | |||
</label> | |||
<label> | |||
<input type="checkbox" id="c3"> | |||
I agree to the Privacy Policy | |||
</label> | |||
</div> | |||
<div id="buttons"> | |||
<button id="enter">Enter</button> | |||
<button id="exit">Exit</button> | |||
</div> | |||
<div id="links"> | |||
<a href="/index.php?title=Terms_and_Conditions">T&C</a> | |||
<a href="/index.php?title=Datenschutz">Privacy Policy</a> | |||
</div> | |||
</div> | |||
`; | |||
document.body.appendChild(overlay); | |||
const c1 = document.getElementById("c1"); | |||
const c2 = document.getElementById("c2"); | |||
const c3 = document.getElementById("c3"); | |||
const enter = document.getElementById("enter"); | |||
function checkAll(){ | |||
if(c1.checked && c2.checked && c3.checked){ | |||
enter.classList.add("active"); | |||
enter.disabled=false; | |||
}else{ | |||
enter.classList.remove("active"); | |||
enter.disabled=true; | |||
} | |||
} | |||
c1.onchange=checkAll; | |||
c2.onchange=checkAll; | |||
c3.onchange=checkAll; | |||
enter.disabled=true; | |||
enter.onclick=function(){ | |||
localStorage.setItem(KEY, Date.now()); | |||
overlay.remove(); | |||
}; | |||
document.getElementById("exit").onclick=function(){ | |||
window.location.href="https://google.com"; | |||
}; | |||
})(); | })(); | ||
Revision as of 21:40, 15 March 2026
(function () {
const KEY = "alphax_age_terms";
const MAX_AGE = 30 * 24 * 60 * 60 * 1000;
const saved = localStorage.getItem(KEY);
if (saved && (Date.now() - saved < MAX_AGE)) {
return;
}
const style = document.createElement("style");
style.innerHTML = `
#age-overlay{
position:fixed;
inset:0;
background:rgba(0,0,0,0.85);
backdrop-filter:blur(8px);
display:flex;
align-items:center;
justify-content:center;
z-index:999999;
font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial;
}
#age-box{
background:#0f0f12;
border:1px solid rgba(255,255,255,0.08);
border-radius:20px;
padding:40px 34px;
max-width:520px;
width:90%;
color:white;
box-shadow:0 25px 80px rgba(0,0,0,0.6);
text-align:center;
}
#age-box h2{
margin-top:0;
font-size:32px;
margin-bottom:18px;
}
#age-text{
color:#cfcfd6;
line-height:1.6;
margin-bottom:28px;
}
#checks{
text-align:left;
margin-bottom:28px;
}
#checks label{
display:block;
margin:12px 0;
font-size:15px;
color:#e4e4ea;
cursor:pointer;
}
#checks input{
margin-right:10px;
}
#buttons{
display:flex;
gap:14px;
justify-content:center;
margin-top:10px;
}
#enter{
background:#34d27a;
color:#05110b;
border:none;
padding:14px 26px;
border-radius:10px;
font-size:16px;
font-weight:700;
cursor:pointer;
opacity:0.4;
}
#enter.active{
opacity:1;
}
#exit{
background:#e74c3c;
border:none;
color:white;
padding:14px 22px;
border-radius:10px;
font-size:16px;
cursor:pointer;
}
#links{
margin-top:22px;
font-size:13px;
opacity:0.8;
}
#links a{
color:#bbb;
margin:0 10px;
text-decoration:none;
}
#links a:hover{
color:white;
}
`;
document.head.appendChild(style);
const overlay = document.createElement("div");
overlay.id = "age-overlay";
overlay.innerHTML = `
<div id="age-box">
<h2>18+ Access</h2>
<div id="age-text">
This website contains adult educational content.<br>
You must confirm the following to enter.
</div>
<div id="checks">
<label>
<input type="checkbox" id="c1">
I confirm that I am at least 18 years old
</label>
<label>
<input type="checkbox" id="c2">
I agree to the Terms & Conditions
</label>
<label>
<input type="checkbox" id="c3">
I agree to the Privacy Policy
</label>
</div>
<div id="buttons">
<button id="enter">Enter</button>
<button id="exit">Exit</button>
</div>
<div id="links">
<a href="/index.php?title=Terms_and_Conditions">T&C</a>
<a href="/index.php?title=Datenschutz">Privacy Policy</a>
</div>
</div>
`;
document.body.appendChild(overlay);
const c1 = document.getElementById("c1");
const c2 = document.getElementById("c2");
const c3 = document.getElementById("c3");
const enter = document.getElementById("enter");
function checkAll(){
if(c1.checked && c2.checked && c3.checked){
enter.classList.add("active");
enter.disabled=false;
}else{
enter.classList.remove("active");
enter.disabled=true;
}
}
c1.onchange=checkAll;
c2.onchange=checkAll;
c3.onchange=checkAll;
enter.disabled=true;
enter.onclick=function(){
localStorage.setItem(KEY, Date.now());
overlay.remove();
};
document.getElementById("exit").onclick=function(){
window.location.href="https://google.com";
};
})();