mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-10-31 02:04:53 +00:00 
			
		
		
		
	Connected menuBar login form to login page
This commit is contained in:
		| @@ -10,6 +10,11 @@ var ComunicWeb = { | |||||||
| 	 */ | 	 */ | ||||||
| 	__config: ComunicConfig, | 	__config: ComunicConfig, | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * List of available pages | ||||||
|  | 	 */ | ||||||
|  | 	pagesList:{}, | ||||||
|  |  | ||||||
| 	/** | 	/** | ||||||
| 	 * Common functions | 	 * Common functions | ||||||
| 	 */ | 	 */ | ||||||
| @@ -386,6 +391,13 @@ var ComunicWeb = { | |||||||
| 			 * Perform user login | 			 * Perform user login | ||||||
| 			 */ | 			 */ | ||||||
| 			loginSubmit: function(){}, | 			loginSubmit: function(){}, | ||||||
|  |  | ||||||
|  | 			/** | ||||||
|  | 			 * Display login error message | ||||||
|  | 			 *  | ||||||
|  | 			 * @return {Boolean} True for a success | ||||||
|  | 			 */ | ||||||
|  | 			displayLoginError: function(){}, | ||||||
| 		}, | 		}, | ||||||
|  |  | ||||||
| 		/** | 		/** | ||||||
| @@ -399,4 +411,4 @@ var ComunicWeb = { | |||||||
| 		}, | 		}, | ||||||
|  |  | ||||||
| 	}, | 	}, | ||||||
| } | }; | ||||||
| @@ -24,6 +24,11 @@ ComunicWeb.components.menuBar.notAuthenticated = { | |||||||
|  |  | ||||||
|         loginForm.onsubmit = function(){ |         loginForm.onsubmit = function(){ | ||||||
|             //Try to login user; in case of failure redirect to login page |             //Try to login user; in case of failure redirect to login page | ||||||
|  |             //TODO : implement | ||||||
|  |             //In case of error | ||||||
|  |             ComunicWeb.common.page.openPage("login", { | ||||||
|  |                 loginFailedMessage: true, | ||||||
|  |             }); | ||||||
|  |  | ||||||
|             return false; |             return false; | ||||||
|         } |         } | ||||||
| @@ -37,6 +42,7 @@ ComunicWeb.components.menuBar.notAuthenticated = { | |||||||
|         emailInput.className = "form-control"; |         emailInput.className = "form-control"; | ||||||
|         emailInput.placeholder = "Email address"; |         emailInput.placeholder = "Email address"; | ||||||
|         emailInput.type = "email"; |         emailInput.type = "email"; | ||||||
|  |         emailInput.value = ComunicWeb.components.mailCaching.get(); | ||||||
|  |  | ||||||
|         //Add password formGroup |         //Add password formGroup | ||||||
|         var passwordFormGroup = createElem("div", loginForm); |         var passwordFormGroup = createElem("div", loginForm); | ||||||
|   | |||||||
| @@ -5,113 +5,140 @@ | |||||||
|  */ |  */ | ||||||
|  |  | ||||||
| ComunicWeb.pages.login = { | ComunicWeb.pages.login = { | ||||||
|     /** | 	/** | ||||||
|      * Open login page | 	 * Open login page | ||||||
|      *  | 	 *  | ||||||
|      * @param {Object} additionnalData Additionnal data passed in the method | 	 * @param {Object} additionnalData Additionnal data passed in the method | ||||||
|      * @param {element} targetElement Where the template will be applied | 	 * @param {element} targetElement Where the template will be applied | ||||||
|      * @returns {Boolean} False if it fails  | 	 * @returns {Boolean} False if it fails  | ||||||
|      */ | 	 */ | ||||||
|     openLoginPage: function(additionnalData, targetElement){ | 	openLoginPage: function(additionnalData, targetElement){ | ||||||
|         //First, check if user is already logged in or not | 		//First, check if user is already logged in or not | ||||||
|         if(ComunicWeb.user.userLogin.getUserLoginState() === true){ | 		if(ComunicWeb.user.userLogin.getUserLoginState() === true){ | ||||||
|             //Log message | 			//Log message | ||||||
|             ComunicWeb.debug.logMessage("Couldn't open login page because user is already logged in !"); | 			ComunicWeb.debug.logMessage("Couldn't open login page because user is already logged in !"); | ||||||
|  |  | ||||||
|             //Open home page | 			//Open home page | ||||||
|             ComunicWeb.common.page.openPage("home"); | 			ComunicWeb.common.page.openPage("home"); | ||||||
|  |  | ||||||
|             //Quit page | 			//Quit page | ||||||
|             return false; | 			return false; | ||||||
|         } | 		} | ||||||
|  |  | ||||||
|         //Prepare additional data | 		//Prepare additional data | ||||||
|         var additionalData = {}; | 		var additionalTemplateData = {}; | ||||||
|  |  | ||||||
|         //Preparing next actions | 		//Preparing next actions | ||||||
|         var afterParsingTemplate = function(){ | 		var afterParsingTemplate = function(){ | ||||||
|             //Change body class name | 			//Change body class name | ||||||
|             document.body.className = "login-page hold-transition"; | 			document.body.className = "login-page hold-transition"; | ||||||
|  |  | ||||||
|             //Enable iCheck | 			//Enable iCheck | ||||||
|             $(function () { | 			$(function () { | ||||||
|                 $('input').iCheck({ | 				$('input').iCheck({ | ||||||
|                 checkboxClass: 'icheckbox_square-blue', | 				checkboxClass: 'icheckbox_square-blue', | ||||||
|                 radioClass: 'iradio_square-blue', | 				radioClass: 'iradio_square-blue', | ||||||
|                 increaseArea: '20%' // optional | 				increaseArea: '20%' // optional | ||||||
|                 }); | 				}); | ||||||
|             }); | 			}); | ||||||
|  |  | ||||||
|             //Get login form element | 			//Define email address (if possible) | ||||||
|             var loginBody = document.getElementById("loginForm"); | 			byId("usermail").value = ComunicWeb.components.mailCaching.get(); | ||||||
|  |  | ||||||
|             //Get login button | 			//Get login form element | ||||||
|             var loginButton = loginBody.getElementsByClassName("btn-login")[0]; | 			var loginBody = document.getElementById("loginForm"); | ||||||
|  |  | ||||||
|             //Make the login action accessible | 			//Get login button | ||||||
|             //loginButton.onclick = ComunicWeb.pages.login.loginSubmit; | 			var loginButton = loginBody.getElementsByClassName("btn-login")[0]; | ||||||
|             loginBody.onsubmit = ComunicWeb.pages.login.loginSubmit; |  | ||||||
|         }; |  | ||||||
|  |  | ||||||
|         //Apply template | 			//Make the login action accessible | ||||||
|         ComunicWeb.common.page.getAndShowTemplate(targetElement, additionalData, "pages/login/loginPage.tpl", afterParsingTemplate, true); | 			//loginButton.onclick = ComunicWeb.pages.login.loginSubmit; | ||||||
|     }, | 			loginBody.onsubmit = ComunicWeb.pages.login.loginSubmit; | ||||||
|  |  | ||||||
|     /** | 			//Check if additionnal data were specified | ||||||
|      * Perform user login | 			if(additionnalData){ | ||||||
|      *  | 				//Check if we have to display a login failed message | ||||||
|      * @return {Boolean} False if it fails | 				if(additionnalData.loginFailedMessage) | ||||||
|      */ | 					ComunicWeb.pages.login.displayLoginError(); | ||||||
|     loginSubmit: function(){ | 			} | ||||||
|         //Get inputs | 		}; | ||||||
|         var usermailInput = document.getElementById("usermail"); //Usermail |  | ||||||
|         var userpasswordInput = document.getElementById("userpassword"); //Password |  | ||||||
|         var rememberLoginInput = document.getElementById("rememberLogin"); //Remember login |  | ||||||
|  |  | ||||||
|         //Check inputs | 		//Apply template | ||||||
|         if(!( | 		ComunicWeb.common.page.getAndShowTemplate(targetElement, additionalTemplateData, "pages/login/loginPage.tpl", afterParsingTemplate, true); | ||||||
|             ComunicWeb.common.formChecker.checkInput(usermailInput, true) && //Check usermail input | 	}, | ||||||
|             ComunicWeb.common.formChecker.checkInput(userpasswordInput, true) //Check password input |  | ||||||
|         )){ |  | ||||||
|            //Error notification |  | ||||||
|            ComunicWeb.common.notificationSystem.showNotification("Please check what you've typed !", "error"); |  | ||||||
|  |  | ||||||
|            //Stop function execution | 	/** | ||||||
|            return false; | 	 * Perform user login | ||||||
|         } | 	 *  | ||||||
|         | 	 * @return {Boolean} False if it fails | ||||||
|         //Enable overlay (use .remove() to remove) | 	 */ | ||||||
|         var screenOverlay = ComunicWeb.common.page.showTransparentWaitSplashScreen(); | 	loginSubmit: function(){ | ||||||
|          | 		//Get inputs | ||||||
|         //Retrieve values | 		var usermailInput = byId("usermail"); //Usermail | ||||||
|         var usermail = usermailInput.value;  | 		var userpasswordInput = byId("userpassword"); //Password | ||||||
|         var userpassword = userpasswordInput.value; | 		var rememberLoginInput = document.getElementById("rememberLogin"); //Remember login | ||||||
|         var permanentLogin = rememberLoginInput.checked; |  | ||||||
|  |  | ||||||
|         //What to do once user is logged in (or not) | 		//Check inputs | ||||||
|         var afterTryLogin = function(loginResult){ | 		if(!( | ||||||
|  | 			ComunicWeb.common.formChecker.checkInput(usermailInput, true) && //Check usermail input | ||||||
|  | 			ComunicWeb.common.formChecker.checkInput(userpasswordInput, true) //Check password input | ||||||
|  | 		)){ | ||||||
|  | 		   //Error notification | ||||||
|  | 		   ComunicWeb.common.notificationSystem.showNotification("Please check what you've typed !", "error"); | ||||||
|  |  | ||||||
|             //First, remove overlay | 		   //Stop function execution | ||||||
|             screenOverlay.remove(); | 		   return false; | ||||||
|  | 		} | ||||||
|  | 	    | ||||||
|  | 		//Enable overlay (use .remove() to remove) | ||||||
|  | 		var screenOverlay = ComunicWeb.common.page.showTransparentWaitSplashScreen(); | ||||||
|  | 		 | ||||||
|  | 		//Retrieve values | ||||||
|  | 		var usermail = usermailInput.value;  | ||||||
|  | 		var userpassword = userpasswordInput.value; | ||||||
|  | 		var permanentLogin = rememberLoginInput.checked; | ||||||
|  |  | ||||||
|             //Check if login failed | 		//What to do once user is logged in (or not) | ||||||
|             if(!loginResult){ | 		var afterTryLogin = function(loginResult){ | ||||||
|                 //Create error modal |  | ||||||
|                 errorMessageElem = ComunicWeb.common.messages.createCalloutElem("Login failed", "Please check your usermail and password", "danger"); |  | ||||||
|  |  | ||||||
|                 //Apply error modal | 			//First, remove overlay | ||||||
|                 document.getElementById('loginMessagesTarget').innerHTML = ""; | 			screenOverlay.remove(); | ||||||
|                 document.getElementById('loginMessagesTarget').appendChild(errorMessageElem); |  | ||||||
|  |  | ||||||
|                 //Return false | 			//Save email address | ||||||
|                 return false; | 			ComunicWeb.components.mailCaching.set(usermail); | ||||||
|            } |  | ||||||
|  |  | ||||||
|            //Open home page | 			//Check if login failed | ||||||
|            ComunicWeb.common.page.openPage("home"); | 			if(!loginResult){ | ||||||
|         }; | 				 | ||||||
|  | 				//Display error | ||||||
|  | 				ComunicWeb.pages.login.displayLoginError(); | ||||||
|  |  | ||||||
|         //Try to login user | 				//Return false | ||||||
|         ComunicWeb.user.userLogin.loginUser(usermail, userpassword, permanentLogin, afterTryLogin); | 				return false; | ||||||
|     }, | 		   } | ||||||
|  |  | ||||||
|  | 		   //Open home page | ||||||
|  | 		   ComunicWeb.common.page.openPage("home"); | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		//Try to login user | ||||||
|  | 		ComunicWeb.user.userLogin.loginUser(usermail, userpassword, permanentLogin, afterTryLogin); | ||||||
|  | 	}, | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Display login error message | ||||||
|  | 	 *  | ||||||
|  | 	 * @return {Boolean} True for a success | ||||||
|  | 	 */ | ||||||
|  | 	displayLoginError: function(){ | ||||||
|  | 		//Create error modal | ||||||
|  | 		errorMessageElem = ComunicWeb.common.messages.createCalloutElem("Login failed", "Please check your usermail and password", "danger"); | ||||||
|  |  | ||||||
|  | 		//Apply error modal | ||||||
|  | 		document.getElementById('loginMessagesTarget').innerHTML = ""; | ||||||
|  | 		document.getElementById('loginMessagesTarget').appendChild(errorMessageElem); | ||||||
|  |  | ||||||
|  | 		//Success | ||||||
|  | 		return true; | ||||||
|  | 	}, | ||||||
| }; | }; | ||||||
		Reference in New Issue
	
	Block a user
	 Pierre
					Pierre