Temp handling of JSON error and other fixes
This commit is contained in:
parent
7d7e681107
commit
38da2bb68d
7 changed files with 47 additions and 21 deletions
|
@ -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%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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">
|
||||||
|
|
|
@ -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 () {
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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()))
|
||||||
|
|
|
@ -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");
|
||||||
|
|
|
@ -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);
|
||||||
|
|
Loading…
Reference in a new issue