mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-04 04:04:20 +00:00 
			
		
		
		
	Conversation messages are sent over the network
This commit is contained in:
		@@ -564,11 +564,94 @@ ComunicWeb.components.conversations.chatWindows = {
 | 
				
			|||||||
		
 | 
							
 | 
				
			||||||
		//Log action
 | 
							//Log action
 | 
				
			||||||
		ComunicWeb.debug.logMessage("Send a new message in a conversation system.");
 | 
							ComunicWeb.debug.logMessage("Send a new message in a conversation system.");
 | 
				
			||||||
		console.log(convInfos);
 | 
							
 | 
				
			||||||
 | 
							//Extract main fields
 | 
				
			||||||
 | 
							var form = convInfos.box.sendMessageForm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//Check if message is empty
 | 
							//Check if message is empty
 | 
				
			||||||
		if(!checkString(convInfos.box.sendMessageForm.inputText.value))
 | 
							if(!checkString(form.inputText.value) && !form.inputImage.files[0]){
 | 
				
			||||||
			ComunicWeb.common.notificationSystem.showNotification("Please type a valid message before trying to send it !", "danger", 2);
 | 
								ComunicWeb.common.notificationSystem.showNotification("Please type a valid message before trying to send it !", "danger", 2);
 | 
				
			||||||
 | 
								return false;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//Lock send button
 | 
				
			||||||
 | 
							form.sendButton.value = "Sending";
 | 
				
			||||||
 | 
							form.sendButton.disabled = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Prepare what to do next
 | 
				
			||||||
 | 
							var onceSent = function(result){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//Check for errors
 | 
				
			||||||
 | 
								if(result.error){
 | 
				
			||||||
 | 
									ComunicWeb.common.notificationSystem.showNotification("An error occured while trying to send message! Please try again...", "danger", 2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									//Unlock send button
 | 
				
			||||||
 | 
									form.sendButton.value = "Send";
 | 
				
			||||||
 | 
									form.sendButton.disabled = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									return false;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//Reset the form
 | 
				
			||||||
 | 
								ComunicWeb.components.conversations.chatWindows.resetCreateMessageForm(convInfos);
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Check if an image is included with the message or not
 | 
				
			||||||
 | 
							if(form.inputImage.files[0]){
 | 
				
			||||||
 | 
								//Include the image with the request (export the image as URL)
 | 
				
			||||||
 | 
								var reader = new FileReader();
 | 
				
			||||||
 | 
								reader.readAsDataURL(form.inputImage.files[0]);
 | 
				
			||||||
 | 
								var sendImage = reader.result;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								//The function will resume once the image is fully converted
 | 
				
			||||||
 | 
								reader.addEventListener("load", function() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
									//Send the message throught the interface
 | 
				
			||||||
 | 
									ComunicWeb.components.conversations.interface.sendMessage({
 | 
				
			||||||
 | 
										conversationID: convInfos.infos.ID,
 | 
				
			||||||
 | 
										message: form.inputText.value,
 | 
				
			||||||
 | 
										image: reader.result,
 | 
				
			||||||
 | 
										callback: onceSent
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								}, false);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
							else {
 | 
				
			||||||
 | 
								//Send the message throught the interface
 | 
				
			||||||
 | 
								ComunicWeb.components.conversations.interface.sendMessage({
 | 
				
			||||||
 | 
									conversationID: convInfos.infos.ID,
 | 
				
			||||||
 | 
									message: form.inputText.value,
 | 
				
			||||||
 | 
									callback: onceSent
 | 
				
			||||||
 | 
								});
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
								
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//Success
 | 
				
			||||||
 | 
							return true;
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Reset a create a message form
 | 
				
			||||||
 | 
						 * 
 | 
				
			||||||
 | 
						 * @param {Object} infos Informations about the conversation
 | 
				
			||||||
 | 
						 * @return {Boolean} True for a success
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						resetCreateMessageForm: function(infos){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Extract form informations
 | 
				
			||||||
 | 
							var form = infos.box.sendMessageForm;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Unlock send button and reset its value
 | 
				
			||||||
 | 
							form.sendButton.value = "Send";
 | 
				
			||||||
 | 
							form.sendButton.disabled = false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Empty textarea
 | 
				
			||||||
 | 
							form.inputText.value = "";
 | 
				
			||||||
 | 
							form.textarea2.resetHeight();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Remove image from image input
 | 
				
			||||||
 | 
							form.inputImage.value = "";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		//Success
 | 
							//Success
 | 
				
			||||||
		return true;
 | 
							return true;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -236,6 +236,34 @@ ComunicWeb.components.conversations.interface = {
 | 
				
			|||||||
		return true;
 | 
							return true;
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/**
 | 
				
			||||||
 | 
						 * Send a new message
 | 
				
			||||||
 | 
						 * 
 | 
				
			||||||
 | 
						 * @param {Object} infos Informations about the message to send
 | 
				
			||||||
 | 
						 * @info {Integer} conversationID The ID of the conversation
 | 
				
			||||||
 | 
						 * @info {String} message The message to send
 | 
				
			||||||
 | 
						 * @info {String} image Optionnal, base64-encoded image
 | 
				
			||||||
 | 
						 * @info {function} callback What to do once the image was successfully sent
 | 
				
			||||||
 | 
						 * @return {Boolean} true for a success
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						sendMessage: function(infos){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Perform an API request
 | 
				
			||||||
 | 
							var apiURI = "/conversations/sendMessage";
 | 
				
			||||||
 | 
							var params = {
 | 
				
			||||||
 | 
								message: infos.message,
 | 
				
			||||||
 | 
								conversationID: infos.conversationID,
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							//Add an image (if any specified)
 | 
				
			||||||
 | 
							if(infos.image)
 | 
				
			||||||
 | 
								params.image = infos.image;
 | 
				
			||||||
 | 
							
 | 
				
			||||||
 | 
							//Perform an API request
 | 
				
			||||||
 | 
							ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, infos.callback);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
	 * Empty conversations cache
 | 
						 * Empty conversations cache
 | 
				
			||||||
	 * 
 | 
						 * 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -55,5 +55,12 @@ textArea2.prototype.getValue = function(){
 | 
				
			|||||||
	return this.element.innerText;
 | 
						return this.element.innerText;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 * Reset textarea height to its minimal height
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					textArea2.prototype.resetHeight = function(){
 | 
				
			||||||
 | 
						this.element.style.height = this.element.style.minHeight;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//Save the function in the system
 | 
					//Save the function in the system
 | 
				
			||||||
ComunicWeb.components.textarea = textArea2;
 | 
					ComunicWeb.components.textarea = textArea2;
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user