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

View file

@ -8,6 +8,11 @@
<script src="js/register.js"></script> <script src="js/register.js"></script>
<meta charset="UTF-8"/> <meta charset="UTF-8"/>
<link rel="stylesheet" href="css/style.css"/> <link rel="stylesheet" href="css/style.css"/>
<script>
$(document).ready(function () {
document.getElementById("channelmessages").lastElementChild.scrollIntoView(false);
});
</script>
</head> </head>
<body> <body>
<div id="errormsg"> <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) { var respfunc = function respfunc(result) {
if (result != "Success") { //on success result is string if (result != "Success") { //on success result is string
var errormsg = document.getElementById("errormsg"); var msginput = document.getElementById("msginput");
errormsg.innerHTML = result.responseText; if (result.responseText == "JSONERROR") {
errormsg.style = "display: block"; 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 else
location.reload(true); location.reload(true);
}; };
var sendmsgonenter = function sendmsgonenter(e) { //TODO: Detect Enter var sendmsgonenter = function sendmsgonenter(e) {
var code = e.keyCode || e.which; var code = e.keyCode || e.which;
if (code != 13 || e.shiftKey) { //Enter keycode if (code != 13 || e.shiftKey) { //Enter keycode
return; return;
@ -17,12 +33,9 @@ var sendmsgonenter = function sendmsgonenter(e) { //TODO: Detect Enter
var textarea = event.target; var textarea = event.target;
if (textarea.value.trim().length == 0) if (textarea.value.trim().length == 0)
return; return;
textarea.disabled = true; textarea.disabled = true; //msginput
window.convid = document.getElementById("convidp").innerText * 1; window.convid = document.getElementById("convidp").innerText * 1;
var json = JSON.stringify({"message": textarea.value, "conversation": window.convid}); sendmsg(textarea);
$.ajax({
url: "/message", data: json, method: "POST", success: respfunc, error: respfunc
});
}; };
$(document).ready(function () { $(document).ready(function () {

View file

@ -91,7 +91,7 @@ public class IOHelper {
if (exchange.getRequestBody().available() == 0) if (exchange.getRequestBody().available() == 0)
return null; return null;
try { 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(); JsonObject obj = new JsonParser().parse(content).getAsJsonObject();
return obj; return obj;
} catch (Exception e) { } catch (Exception e) {

View file

@ -38,7 +38,7 @@ public class Main {
gsonBuilder.registerTypeAdapter(new TypeToken<LoaderCollection<User>>() { gsonBuilder.registerTypeAdapter(new TypeToken<LoaderCollection<User>>() {
}.getType(), new LoaderCollectionSerializer<User>()); }.getType(), new LoaderCollectionSerializer<User>());
gson = gsonBuilder.create(); gson = gsonBuilder.create();
User user = new User(); /*User user = new User();
user.setName("asd"); user.setName("asd");
user.setEmail("test@test.com"); user.setEmail("test@test.com");
User user2 = new User(); User user2 = new User();
@ -79,9 +79,9 @@ public class Main {
DataManager.save(user); DataManager.save(user);
DataManager.save(user2); DataManager.save(user2);
DataManager.save(loggedinuser); 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); HttpServer server = HttpServer.create(new InetSocketAddress(InetAddress.getLocalHost(), 8080), 10);
Reflections rf = new Reflections( Reflections rf = new Reflections(
new ConfigurationBuilder().setUrls(ClasspathHelper.forClassLoader(Page.class.getClassLoader())) 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())); cide.text(Long.toString(conv.getId()));
LogManager.getLogger().log(Level.INFO, "Messages: " + conv.getMesssages().size()); LogManager.getLogger().log(Level.INFO, "Messages: " + conv.getMesssages().size());
for (Message message : conv.getMesssages()) { 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"); Element header = msgelement.appendElement("p");
header.text(message.getSender().getName() + " - " + message.getTime()); header.text(message.getSender().getName() + " - " + message.getTime());
Element body = msgelement.appendElement("p"); Element body = msgelement.appendElement("p");

View file

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