mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-10-31 02:04:53 +00:00 
			
		
		
		
	Send a request to create an account on the server
This commit is contained in:
		| @@ -21,6 +21,10 @@ | |||||||
| 	text-align: center; | 	text-align: center; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | .create-account-form .callout p { | ||||||
|  | 	text-align: justify; | ||||||
|  | } | ||||||
|  |  | ||||||
| .create-account-form .submit-form { | .create-account-form .submit-form { | ||||||
| 	text-align: center; | 	text-align: center; | ||||||
| } | } | ||||||
| @@ -441,6 +441,20 @@ var ComunicWeb = { | |||||||
| 	 */ | 	 */ | ||||||
| 	components: { | 	components: { | ||||||
|  |  | ||||||
|  | 		/** | ||||||
|  | 		 * Account component | ||||||
|  | 		 */ | ||||||
|  | 		account: { | ||||||
|  |  | ||||||
|  | 			/** | ||||||
|  | 			 * Interface | ||||||
|  | 			 */ | ||||||
|  | 			interface: { | ||||||
|  | 				//TODO : implement | ||||||
|  | 			}, | ||||||
|  |  | ||||||
|  | 		}, | ||||||
|  |  | ||||||
| 		/** | 		/** | ||||||
| 		 * Menubar | 		 * Menubar | ||||||
| 		 */ | 		 */ | ||||||
|   | |||||||
| @@ -112,3 +112,15 @@ function openConversation(id){ | |||||||
|         conversationID: id |         conversationID: id | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * Display a notification | ||||||
|  |  *  | ||||||
|  |  * @param {string} message The message of the notification | ||||||
|  |  * @param {string} type The type of the notification (danger, info, success, primary) | ||||||
|  |  * @param {number} duration The notification duration | ||||||
|  |  * @param {string} title The title of the notification | ||||||
|  |  */ | ||||||
|  | function notify(message, type, duration, title){ | ||||||
|  |     ComunicWeb.common.notificationSystem.showNotification(message, type, duration, title) | ||||||
|  | } | ||||||
							
								
								
									
										34
									
								
								assets/js/components/account/interface.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								assets/js/components/account/interface.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | |||||||
|  | /** | ||||||
|  |  * Account interface | ||||||
|  |  *  | ||||||
|  |  * @author Pierre HUBERT | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | ComunicWeb.components.account.interface = { | ||||||
|  |  | ||||||
|  | 	/** | ||||||
|  | 	 * Send a request on the server to create an account | ||||||
|  | 	 *  | ||||||
|  | 	 * @param {string} firstName The first name of the user | ||||||
|  | 	 * @param {string} lastName The last name of the user | ||||||
|  | 	 * @param {email} emailAddress The email adress of the user | ||||||
|  | 	 * @param {password} password The password of the user | ||||||
|  | 	 * @param {callback} callback The callback function | ||||||
|  | 	 */ | ||||||
|  | 	createAccount: function(firstName, lastName, emailAddress, password, callback){ | ||||||
|  |  | ||||||
|  | 		//Make an API request | ||||||
|  | 		var apiURI = "account/create"; | ||||||
|  | 		var params = { | ||||||
|  | 			"firstName": firstName, | ||||||
|  | 			"lastName": lastName, | ||||||
|  | 			"emailAddress": emailAddress, | ||||||
|  | 			"password": password | ||||||
|  | 		}; | ||||||
|  |  | ||||||
|  | 		//Perform an API request | ||||||
|  | 		ComunicWeb.common.api.makeAPIrequest(apiURI, params, false, callback); | ||||||
|  |  | ||||||
|  | 	}, | ||||||
|  |  | ||||||
|  | } | ||||||
| @@ -47,6 +47,12 @@ ComunicWeb.pages.createAccount = { | |||||||
| 			innerHTML: "Use the following form to create an account and join the network : " | 			innerHTML: "Use the following form to create an account and join the network : " | ||||||
| 		}); | 		}); | ||||||
|  |  | ||||||
|  | 		//Create the message target | ||||||
|  | 		var messagesTarget = createElem2({ | ||||||
|  | 			appendTo: formRoot, | ||||||
|  | 			type: "div" | ||||||
|  | 		}); | ||||||
|  |  | ||||||
| 		//Input user first name | 		//Input user first name | ||||||
| 		var firstNameInput = createFormGroup({ | 		var firstNameInput = createFormGroup({ | ||||||
| 			target: formRoot, | 			target: formRoot, | ||||||
| @@ -99,6 +105,59 @@ ComunicWeb.pages.createAccount = { | |||||||
| 			class: "btn btn-primary", | 			class: "btn btn-primary", | ||||||
| 			innerHTML: "Create the account" | 			innerHTML: "Create the account" | ||||||
| 		}); | 		}); | ||||||
| 	}, |  | ||||||
|  |  | ||||||
|  | 		//Make the form lives | ||||||
|  | 		submitButton.onclick = function(){ | ||||||
|  |  | ||||||
|  | 			//Empty the message target | ||||||
|  | 			emptyElem(messagesTarget); | ||||||
|  |  | ||||||
|  | 			//Check the first name | ||||||
|  | 			if(!ComunicWeb.common.formChecker.checkInput(firstNameInput, true)) | ||||||
|  | 				return notify("Please check your first name !", "danger"); | ||||||
|  | 			 | ||||||
|  | 			//Check the last name | ||||||
|  | 			if(!ComunicWeb.common.formChecker.checkInput(lastNameInput, true)) | ||||||
|  | 				return notify("Please check your last name !", "danger"); | ||||||
|  |  | ||||||
|  | 			//Check the email address | ||||||
|  | 			if(!ComunicWeb.common.formChecker.checkInput(emailInput, true)) | ||||||
|  | 				return notify("Please check your email address !", "danger"); | ||||||
|  | 			 | ||||||
|  | 			//Check the password | ||||||
|  | 			if(!ComunicWeb.common.formChecker.checkInput(passwordInput, true)) | ||||||
|  | 				return notify("Please check your password !", "danger"); | ||||||
|  | 			 | ||||||
|  | 			//Check the confirmation password | ||||||
|  | 			if(passwordInput.value != confirmPasswordInput.value) | ||||||
|  | 				return notify("The two passwords are not the same !", "danger"); | ||||||
|  | 			 | ||||||
|  | 			//Lock create account button | ||||||
|  | 			submitButton.disabled = true; | ||||||
|  | 			 | ||||||
|  | 			//Try to create the account | ||||||
|  | 			if(ComunicWeb.components.account.interface.createAccount( | ||||||
|  | 				firstNameInput.value, | ||||||
|  | 				lastNameInput.value, | ||||||
|  | 				emailInput.value, | ||||||
|  | 				passwordInput.value, | ||||||
|  | 				function(response){ | ||||||
|  |  | ||||||
|  | 					//Unlock button | ||||||
|  | 					submitButton.disabled = false; | ||||||
|  |  | ||||||
|  | 					//Check for error | ||||||
|  | 					if(response.error){ | ||||||
|  | 						//Display an error | ||||||
|  | 						messagesTarget.appendChild(ComunicWeb.common.messages.createCalloutElem( | ||||||
|  | 							"Account creation failed", | ||||||
|  | 							"An error occured while trying to create your account. It is most likely to be a server error, or the given email address is already associated with an account.", | ||||||
|  | 							"danger" | ||||||
|  | 						)); | ||||||
|  | 						return; | ||||||
|  | 					} | ||||||
|  | 				} | ||||||
|  | 			)); | ||||||
|  | 		}; | ||||||
|  | 	}, | ||||||
| } | } | ||||||
| @@ -207,6 +207,9 @@ class Dev { | |||||||
| 		"js/langs/fr.inc.js", | 		"js/langs/fr.inc.js", | ||||||
|  |  | ||||||
| 		//Components | 		//Components | ||||||
|  | 			//Account component | ||||||
|  | 			"js/components/account/interface.js", | ||||||
|  |  | ||||||
| 			//Mail caching | 			//Mail caching | ||||||
| 			"js/components/mailCaching.js", | 			"js/components/mailCaching.js", | ||||||
| 			 | 			 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Pierre
					Pierre