feat: Add invite token-based user registration and an admin interface for token management.
This commit is contained in:
@@ -2204,7 +2204,7 @@ body[type='login'] {
|
||||
align-items: center;
|
||||
padding: 20px 20px;
|
||||
background: rgba(0, 0, 0, 0.8);
|
||||
border-radius: 10px;
|
||||
border-radius: 0;
|
||||
border: 1px solid var(--accent);
|
||||
}
|
||||
|
||||
@@ -3365,7 +3365,8 @@ input#s_avatar {
|
||||
}
|
||||
|
||||
/* Login Modal */
|
||||
#login-modal {
|
||||
#login-modal,
|
||||
#register-modal {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
@@ -3437,7 +3438,8 @@ input#s_avatar {
|
||||
filter: brightness(1.1);
|
||||
}
|
||||
|
||||
#login-modal-close {
|
||||
#login-modal-close,
|
||||
#register-modal-close {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
right: 15px;
|
||||
@@ -3449,7 +3451,8 @@ input#s_avatar {
|
||||
opacity: 0.7;
|
||||
}
|
||||
|
||||
#login-modal-close:hover {
|
||||
#login-modal-close:hover,
|
||||
#register-modal-close:hover {
|
||||
opacity: 1;
|
||||
color: var(--accent);
|
||||
}
|
||||
@@ -71,6 +71,38 @@ window.requestAnimFrame = (function () {
|
||||
});
|
||||
}
|
||||
|
||||
// Register Modal Logic
|
||||
const registerBtn = document.getElementById('nav-register-btn');
|
||||
const registerModal = document.getElementById('register-modal');
|
||||
const registerClose = document.getElementById('register-modal-close');
|
||||
|
||||
if (registerBtn && registerModal) {
|
||||
registerBtn.addEventListener('click', (e) => {
|
||||
e.preventDefault();
|
||||
registerModal.style.display = 'flex';
|
||||
// Close dropdown
|
||||
if (visitorMenu) visitorMenu.classList.remove('show');
|
||||
});
|
||||
|
||||
if (registerClose) {
|
||||
registerClose.addEventListener('click', () => {
|
||||
registerModal.style.display = 'none';
|
||||
});
|
||||
}
|
||||
|
||||
registerModal.addEventListener('click', (e) => {
|
||||
if (e.target === registerModal) {
|
||||
registerModal.style.display = 'none';
|
||||
}
|
||||
});
|
||||
|
||||
document.addEventListener('keydown', (e) => {
|
||||
if (e.key === 'Escape' && registerModal.style.display === 'flex') {
|
||||
registerModal.style.display = 'none';
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Initialize background preference
|
||||
if (localStorage.getItem('background') == undefined) {
|
||||
localStorage.setItem('background', 'true');
|
||||
|
||||
Reference in New Issue
Block a user