Temp handling of JSON error and other fixes

This commit is contained in:
Norbi Peti 2016-08-03 14:59:48 +02:00
parent 7d7e681107
commit 38da2bb68d
7 changed files with 47 additions and 21 deletions

View file

@ -12,6 +12,10 @@ body {
border-style: solid;
border-width: 2px;
color: #ff0000;
position: absolute;
top: 0px;
left: 0px;
width: 100%;
}
#successmsg {
@ -24,7 +28,7 @@ body {
#sidebar {
float: right;
width: 300px;
width: 20%;
}
#loginregisterbox {
@ -34,9 +38,10 @@ body {
#usercontent {
margin: auto;
width: -moz-calc(100% - 600px);
/*width: -moz-calc(100% - 600px);
width: -webkit-calc(100% - 600px);
width: calc(100% - 600px);
width: calc(100% - 600px);*/
width: 60%;
height: 100%;
}

View file

@ -8,6 +8,11 @@
<script src="js/register.js"></script>
<meta charset="UTF-8"/>
<link rel="stylesheet" href="css/style.css"/>
<script>
$(document).ready(function () {
document.getElementById("channelmessages").lastElementChild.scrollIntoView(false);
});
</script>
</head>
<body>
<div id="errormsg">

View file

@ -1,14 +1,30 @@
var sendmsg = function sendmsg(msginputta) {
window.jsonobj = JSON.stringify({"message": msginputta.value, "conversation": window.convid});
console.log(window.jsonobj);
$.ajax({
url: "/message", data: window.jsonobj, method: "POST", success: respfunc, error: respfunc
});
};
var respfunc = function respfunc(result) {
if (result != "Success") { //on success result is string
var errormsg = document.getElementById("errormsg");
errormsg.innerHTML = result.responseText;
errormsg.style = "display: block";
var msginput = document.getElementById("msginput");
if (result.responseText == "JSONERROR") {
console.log("Got JSON error. Retrying...");
sendmsg(msginput);
}
else {
var errormsg = document.getElementById("errormsg");
errormsg.innerHTML = result.responseText;
errormsg.style = "display: block";
msginput.disabled = false;
}
}
else
location.reload(true);
};
var sendmsgonenter = function sendmsgonenter(e) { //TODO: Detect Enter
var sendmsgonenter = function sendmsgonenter(e) {
var code = e.keyCode || e.which;
if (code != 13 || e.shiftKey) { //Enter keycode
return;
@ -17,12 +33,9 @@ var sendmsgonenter = function sendmsgonenter(e) { //TODO: Detect Enter
var textarea = event.target;
if (textarea.value.trim().length == 0)
return;
textarea.disabled = true;
textarea.disabled = true; //msginput
window.convid = document.getElementById("convidp").innerText * 1;
var json = JSON.stringify({"message": textarea.value, "conversation": window.convid});
$.ajax({
url: "/message", data: json, method: "POST", success: respfunc, error: respfunc
});
sendmsg(textarea);
};
$(document).ready(function () {

View file

@ -91,7 +91,7 @@ public class IOHelper {
if (exchange.getRequestBody().available() == 0)
return null;
try {
String content = IOUtils.toString(exchange.getRequestBody(), StandardCharsets.ISO_8859_1).trim();
String content = IOUtils.toString(exchange.getRequestBody(), StandardCharsets.ISO_8859_1);
JsonObject obj = new JsonParser().parse(content).getAsJsonObject();
return obj;
} catch (Exception e) {

View file

@ -38,7 +38,7 @@ public class Main {
gsonBuilder.registerTypeAdapter(new TypeToken<LoaderCollection<User>>() {
}.getType(), new LoaderCollectionSerializer<User>());
gson = gsonBuilder.create();
User user = new User();
/*User user = new User();
user.setName("asd");
user.setEmail("test@test.com");
User user2 = new User();
@ -79,9 +79,9 @@ public class Main {
DataManager.save(user);
DataManager.save(user2);
DataManager.save(loggedinuser);
DataManager.save(conversation);
DataManager.save(conversation);*/
LogManager.getLogger().log(Level.INFO, "Starting webserver...");
LogManager.getLogger().log(Level.INFO, "Starting webserver..."); //TODO: Separate IDs for conversations and users
HttpServer server = HttpServer.create(new InetSocketAddress(InetAddress.getLocalHost(), 8080), 10);
Reflections rf = new Reflections(
new ConfigurationBuilder().setUrls(ClasspathHelper.forClassLoader(Page.class.getClassLoader()))

View file

@ -47,7 +47,7 @@ public class IndexPage extends Page {
cide.text(Long.toString(conv.getId()));
LogManager.getLogger().log(Level.INFO, "Messages: " + conv.getMesssages().size());
for (Message message : conv.getMesssages()) {
Element msgelement = channelmessages.appendElement("div");
Element msgelement = channelmessages.appendElement("div"); //TODO: Save messages in conversation files
Element header = msgelement.appendElement("p");
header.text(message.getSender().getName() + " - " + message.getTime());
Element body = msgelement.appendElement("p");

View file

@ -30,9 +30,12 @@ public class MessageAjaxPage extends Page {
}
JsonObject obj = IOHelper.GetPOSTJSON(exchange);
if (obj == null) {
IOHelper.SendResponse(400,
"<h1>400 Bad request</h1><p>Not a JSON string!</p><p>" + IOHelper.GetPOST(exchange) + "</p>",
exchange);
/*
* IOHelper.SendResponse(400,
* "<h1>400 Bad request</h1><p>Not a JSON string!</p><p>" +
* IOHelper.GetPOST(exchange) + "</p>", exchange);
*/
IOHelper.SendResponse(400, "JSONERROR", exchange);
return;
}
if (!obj.has("message") || !obj.has("conversation")) {
@ -42,7 +45,7 @@ public class MessageAjaxPage extends Page {
exchange);
return;
}
String message = obj.get("message").getAsString();
String message = obj.get("message").getAsString().trim();
int conversation = obj.get("conversation").getAsInt();
if (message.trim().length() == 0) {
IOHelper.SendResponse(400, "<h1>400 Bad request</h1><p>The message cannot be empty.</p>", exchange);