mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-26 13:59:23 +00:00
Conversation messages are sent over the network
This commit is contained in:
parent
8e89549fc5
commit
48e7109db4
@ -564,11 +564,94 @@ ComunicWeb.components.conversations.chatWindows = {
|
||||
|
||||
//Log action
|
||||
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
|
||||
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);
|
||||
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
|
||||
return true;
|
||||
|
@ -236,6 +236,34 @@ ComunicWeb.components.conversations.interface = {
|
||||
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
|
||||
*
|
||||
|
@ -55,5 +55,12 @@ textArea2.prototype.getValue = function(){
|
||||
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
|
||||
ComunicWeb.components.textarea = textArea2;
|
||||
|
Loading…
Reference in New Issue
Block a user