diff --git a/pages/css/style.css b/pages/css/style.css index 3f825f9..ccb3f05 100644 --- a/pages/css/style.css +++ b/pages/css/style.css @@ -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%; } diff --git a/pages/index.html b/pages/index.html index da8bce9..a03ab85 100644 --- a/pages/index.html +++ b/pages/index.html @@ -8,6 +8,11 @@ +
diff --git a/pages/js/message.js b/pages/js/message.js index 055b3c0..5b26814 100644 --- a/pages/js/message.js +++ b/pages/js/message.js @@ -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 () { diff --git a/src/io/github/norbipeti/chat/server/IOHelper.java b/src/io/github/norbipeti/chat/server/IOHelper.java index 3a6a7b0..dcf5d87 100644 --- a/src/io/github/norbipeti/chat/server/IOHelper.java +++ b/src/io/github/norbipeti/chat/server/IOHelper.java @@ -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) { diff --git a/src/io/github/norbipeti/chat/server/Main.java b/src/io/github/norbipeti/chat/server/Main.java index 07d5e2e..81fa82a 100644 --- a/src/io/github/norbipeti/chat/server/Main.java +++ b/src/io/github/norbipeti/chat/server/Main.java @@ -38,7 +38,7 @@ public class Main { gsonBuilder.registerTypeAdapter(new TypeToken>() { }.getType(), new LoaderCollectionSerializer()); 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())) diff --git a/src/io/github/norbipeti/chat/server/page/IndexPage.java b/src/io/github/norbipeti/chat/server/page/IndexPage.java index d38feec..be7962a 100644 --- a/src/io/github/norbipeti/chat/server/page/IndexPage.java +++ b/src/io/github/norbipeti/chat/server/page/IndexPage.java @@ -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"); diff --git a/src/io/github/norbipeti/chat/server/page/MessageAjaxPage.java b/src/io/github/norbipeti/chat/server/page/MessageAjaxPage.java index 805c51a..368cba5 100644 --- a/src/io/github/norbipeti/chat/server/page/MessageAjaxPage.java +++ b/src/io/github/norbipeti/chat/server/page/MessageAjaxPage.java @@ -30,9 +30,12 @@ public class MessageAjaxPage extends Page { } JsonObject obj = IOHelper.GetPOSTJSON(exchange); if (obj == null) { - IOHelper.SendResponse(400, - "

400 Bad request

Not a JSON string!

" + IOHelper.GetPOST(exchange) + "

", - exchange); + /* + * IOHelper.SendResponse(400, + * "

400 Bad request

Not a JSON string!

" + + * IOHelper.GetPOST(exchange) + "

", 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, "

400 Bad request

The message cannot be empty.

", exchange);