/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* main.js :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: edbernar { if (userMeInfo.id !== -1) { nodeText = document.createTextNode(userMeInfo.username); loginButton.replaceChild(nodeText, pLoginButton); // loginButton.addEventListener('click', showMenu); } else { loginButton.addEventListener('click', showLoginDiv); } }); form.addEventListener('submit', connect); registerForm.addEventListener('submit', createAccount); } static dispose() { const loginButton = document.getElementById('loginButton'); const form = document.getElementById('loginForm'); const registerButton = document.getElementById('new-player'); const loginBackButton = document.getElementById('old-player'); const button42 = document.getElementsByClassName('login-42-btn')[0]; const registerForm = document.getElementById('registerForm'); registerButton.removeEventListener('click', redirection); loginButton.removeEventListener('click', showLoginDiv); form.removeEventListener('submit', connect); registerButton.removeEventListener('click', changeWindowLogin); registerForm.removeEventListener('submit', createAccount); loginBackButton.removeEventListener('click', changeWindowLoginBack); } } function redirection(e) { e.preventDefault(); window.location.replace('https://api.intra.42.fr/oauth/authorize?client_id=u-s4t2ud-d9d6d46bd0be36dc13718981df4bfcf37e574ea364a07fcb5c39658be0f5706c&redirect_uri=https://localhost:8000/login42&response_type=code&scope=public'); } function createAccount(e) { e.preventDefault(); const username = document.getElementById('username'); const email = document.getElementById('email-register'); const password = document.getElementById('password-register'); const password_confirm = document.getElementById('password-confirm'); if (password.value != password_confirm.value) { CN.new("Error", "Passwords do not match", CN.defaultIcon.error); return ; } sendRequest("create_account", {username: username.value, mail: email.value, password: password.value}); } function changeWindowLogin(e) { const registerWindow = document.getElementsByClassName('right-side-register')[0]; const loginWindow = document.getElementsByClassName('right-side')[0]; e.preventDefault(); loginWindow.style.display = 'none'; registerWindow.style.display = 'flex'; } function changeWindowLoginBack(e) { const registerWindow = document.getElementsByClassName('right-side-register')[0]; const loginWindow = document.getElementsByClassName('right-side')[0]; loginWindow.style.display = 'flex'; registerWindow.style.display = 'none'; } function showLoginDiv() { const popout = document.getElementById('loginPopup'); if (popout.style.display === 'flex') popout.style.display = 'none'; else popout.style.display = 'flex'; } function connect(e) { const loginButton = document.getElementById('loginButton'); const pLoginButton = loginButton.getElementsByTagName('p')[0]; const popout = document.getElementById('loginPopup'); const mail = document.getElementById('email').value; let usernameNode = null; e.preventDefault(); sendRequest("login", {type: "byPass", mail: mail, password: e.target.password.value}); waitForLogin().then((isConnected) => { if (isConnected) { usernameNode = document.createTextNode(userMeInfo.username); loginButton.replaceChild(usernameNode, pLoginButton); CN.new("Connected successfully", "Welcome " + userMeInfo.username, CN.defaultIcon.success); popout.style.display = 'none'; } }).catch((err) => { console.error(err); CN.new("Error", "An error occured while trying to connect", CN.defaultIcon.error); }); } export { Login };