mirror of
https://github.com/pierre42100/ComunicWeb
synced 2025-02-20 12:52:39 +00:00
Generated form data from post content
This commit is contained in:
parent
8e1610d84e
commit
6f51c34120
@ -37,6 +37,7 @@ ComunicWeb.components.posts.form = {
|
|||||||
appendTo: boxBody,
|
appendTo: boxBody,
|
||||||
type: "div",
|
type: "div",
|
||||||
class: "new-message",
|
class: "new-message",
|
||||||
|
innerHTML: ""
|
||||||
});
|
});
|
||||||
|
|
||||||
//Enable bootstrap-wysiwyg
|
//Enable bootstrap-wysiwyg
|
||||||
@ -285,6 +286,161 @@ ComunicWeb.components.posts.form = {
|
|||||||
class: "btn btn-primary",
|
class: "btn btn-primary",
|
||||||
innerHTML: "Send"
|
innerHTML: "Send"
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//Make send button lives
|
||||||
|
sendButton.onclick = function(){
|
||||||
|
|
||||||
|
//Generate request
|
||||||
|
var datas = new FormData();
|
||||||
|
|
||||||
|
//Get the message content
|
||||||
|
var message_content = inputMessageDiv.innerHTML;
|
||||||
|
datas.append("content", message_content);
|
||||||
|
|
||||||
|
//Check if the message includes an image
|
||||||
|
if(message_content.includes("data:image/")){
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("Please do not drag images directly in the message !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check the text value
|
||||||
|
if(textType.checked){
|
||||||
|
|
||||||
|
//Check message content
|
||||||
|
if(!ComunicWeb.components.posts.form._check_message(message_content)){
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("The specified message is invalid !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Specify it is a text
|
||||||
|
datas.append("kind", "text");
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check for image
|
||||||
|
else if(imageType.checked){
|
||||||
|
|
||||||
|
//Check for image
|
||||||
|
if(imgFileInput.files.length == 0){
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("Please choose an image !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Append values
|
||||||
|
datas.append("kind", "image");
|
||||||
|
datas.append("image", imgFileInput.files[0], imgFileInput.files[0].name);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check for YouTube video
|
||||||
|
else if(youtubeType.checked){
|
||||||
|
|
||||||
|
//Get the video ID
|
||||||
|
var videoID = ComunicWeb.components.posts.form._get_youtube_video_id(youtubeLinkInput.value);
|
||||||
|
|
||||||
|
//Check its validity
|
||||||
|
if(!videoID){
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("The specified Youtube link seems to be invalid !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Append values
|
||||||
|
datas.append("kind", "youtube");
|
||||||
|
datas.append("youtube_id", videoID);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check for movie
|
||||||
|
else if(movieType.checked){
|
||||||
|
|
||||||
|
var movieID = movieIDInput.value;
|
||||||
|
|
||||||
|
if(movieID == 0){
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("Please choose a movie !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Append values
|
||||||
|
datas.append("kind", "movie");
|
||||||
|
datas.append("movieID", movieID);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check for PDF
|
||||||
|
else if(pdfType.checked){
|
||||||
|
|
||||||
|
//Check for image
|
||||||
|
if(pdfFileInput.files.length == 0){
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("Please pick a PDF !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Append values
|
||||||
|
datas.append("kind", "pdf");
|
||||||
|
datas.append("image", pdfFileInput.files[0], pdfFileInput.files[0].name);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check for weblink
|
||||||
|
else if(linkType.checked){
|
||||||
|
|
||||||
|
//Check the given url
|
||||||
|
if(!check_url(linkInput.value)){
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("Please check the given URL !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Append values
|
||||||
|
datas.append("kind", "weblink");
|
||||||
|
datas.append("url", linkInput.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check for timer
|
||||||
|
else if(countdownType.checked){
|
||||||
|
|
||||||
|
//Check the given time
|
||||||
|
if(timeEndInput.value.length < 10){
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("Please specify a date for the countdown timer !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Append values
|
||||||
|
datas.append("kind", "countdown");
|
||||||
|
datas.append("date-end", timeEndInput.value);
|
||||||
|
}
|
||||||
|
|
||||||
|
//Check for survey
|
||||||
|
else if(surveyType.checked){
|
||||||
|
|
||||||
|
//Check the given question
|
||||||
|
if(surveyQuestionInput.value.length < 5){
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("Please specify a question for the survey !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Get the answers
|
||||||
|
if(surveyAnswerInput.children.length < 2){
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("Please specify at least two options for the survey !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
//Process the list of answers
|
||||||
|
var answerData = $(surveyAnswerInput).select2("data");
|
||||||
|
var answers = [];
|
||||||
|
for(i = 0; i < answerData.length; i++){
|
||||||
|
answers.push(removeHtmlTags(answerData[i].text));
|
||||||
|
}
|
||||||
|
|
||||||
|
//Append values
|
||||||
|
datas.append("kind", "survey");
|
||||||
|
datas.append("question", surveyQuestionInput.value);
|
||||||
|
datas.append("answers", answers.join("<>"));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//The post type is not supported
|
||||||
|
else {
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("Please check you have chosen a post type !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -355,4 +511,62 @@ ComunicWeb.components.posts.form = {
|
|||||||
|
|
||||||
return visibilityInput;
|
return visibilityInput;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Check a given message content
|
||||||
|
*
|
||||||
|
* @param {string} message The message to check
|
||||||
|
* @return {boolean} TRUE if the message is valid / false else
|
||||||
|
*/
|
||||||
|
_check_message(message){
|
||||||
|
|
||||||
|
//Remove break line tags
|
||||||
|
message = message.replace("<br>", "")
|
||||||
|
.replace("<br/>", "")
|
||||||
|
.replace("<br />", "")
|
||||||
|
.replace("<p>", "")
|
||||||
|
.replace("</p>", "")
|
||||||
|
.replace("<b>", "")
|
||||||
|
.replace("</b>", "");
|
||||||
|
|
||||||
|
//Check if the message is too short
|
||||||
|
if(message.length < 5)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
//The message is valid
|
||||||
|
return true;
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Try to get a youtube video ID from a given URL
|
||||||
|
*
|
||||||
|
* @param {string} url The string to get
|
||||||
|
* @return {boolean|string} False if the URL is invalid / The video
|
||||||
|
* ID else
|
||||||
|
*/
|
||||||
|
_get_youtube_video_id: function(url){
|
||||||
|
|
||||||
|
//Check if the youtube domain is included in the URL
|
||||||
|
if(!url.includes("youtube.com/"))
|
||||||
|
return false; //The link is considered as invalid
|
||||||
|
|
||||||
|
//Check for ID specification
|
||||||
|
if(!url.includes("v="))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
//Extract video ID
|
||||||
|
var videoID = url.split("v=")[1];
|
||||||
|
|
||||||
|
//Check if there are other parametres after the video ID
|
||||||
|
if(videoID.includes("&"))
|
||||||
|
videoID = videoID.split("&")[0];
|
||||||
|
|
||||||
|
//Check if the videoID is valid
|
||||||
|
if(videoID.includes("/"))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
//Return video ID
|
||||||
|
return videoID;
|
||||||
|
},
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user