Fixed sending messages and CSS improvements
This commit is contained in:
parent
8062fbee9e
commit
d64b615020
7 changed files with 126 additions and 110 deletions
|
@ -10,7 +10,7 @@
|
||||||
</File>
|
</File>
|
||||||
</Appenders>
|
</Appenders>
|
||||||
<Loggers>
|
<Loggers>
|
||||||
<Root level="debug">
|
<Root level="info">
|
||||||
<AppenderRef ref="Console" />
|
<AppenderRef ref="Console" />
|
||||||
<AppenderRef ref="MyFile" />
|
<AppenderRef ref="MyFile" />
|
||||||
</Root>
|
</Root>
|
||||||
|
|
|
@ -1,44 +1,57 @@
|
||||||
body {
|
body {
|
||||||
background-color: #EEE;
|
background-color: #EEE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#errormsg, #successmsg {
|
#errormsg, #successmsg {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
#errormsg {
|
#errormsg {
|
||||||
background-color: #8c0000;
|
background-color: #8c0000;
|
||||||
border-color: #ff0000;
|
border-color: #ff0000;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 2px;
|
border-width: 2px;
|
||||||
color: #ff0000;
|
color: #ff0000;
|
||||||
}
|
}
|
||||||
|
|
||||||
#successmsg {
|
#successmsg {
|
||||||
background-color: #188c00;
|
background-color: #188c00;
|
||||||
border-color: #00ff00;
|
border-color: #00ff00;
|
||||||
border-style: solid;
|
border-style: solid;
|
||||||
border-width: 2px;
|
border-width: 2px;
|
||||||
color: #00ff00;
|
color: #00ff00;
|
||||||
}
|
}
|
||||||
|
|
||||||
#sidebar {
|
#sidebar {
|
||||||
float: right;
|
float: right;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#loginregisterbox {
|
#loginregisterbox {
|
||||||
margin: auto;
|
margin: auto;
|
||||||
width: 300px;
|
width: 300px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#usercontent {
|
#usercontent {
|
||||||
margin: auto;
|
margin: auto;
|
||||||
width: 75%;
|
width: 75%;
|
||||||
}
|
height: 100%;
|
||||||
|
}
|
||||||
#msginput {
|
|
||||||
width: 100%;
|
#msginput {
|
||||||
height: 30px;
|
width: 100%;
|
||||||
max-width: 100%;
|
height: 30px;
|
||||||
|
max-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
#channelmessages {
|
||||||
|
width: 100%;
|
||||||
|
height: -moz-calc(100% - 50px);
|
||||||
|
height: -webkit-calc(100% - 50px);
|
||||||
|
height: calc(100% - 50px);
|
||||||
|
}
|
||||||
|
|
||||||
|
html, body {
|
||||||
|
height: 100%;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
|
@ -81,7 +81,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);
|
String content = IOUtils.toString(exchange.getRequestBody(), StandardCharsets.ISO_8859_1).trim();
|
||||||
JSONObject obj = new JSONObject(content);
|
JSONObject obj = new JSONObject(content);
|
||||||
return obj;
|
return obj;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
|
|
|
@ -29,13 +29,14 @@ public class Main {
|
||||||
try { // rt.jar Javadoc:
|
try { // rt.jar Javadoc:
|
||||||
// https://docs.oracle.com/javase/8/docs/jre/api/net/httpserver/spec/
|
// https://docs.oracle.com/javase/8/docs/jre/api/net/httpserver/spec/
|
||||||
// https://docs.oracle.com/javase/8/docs/api/
|
// https://docs.oracle.com/javase/8/docs/api/
|
||||||
LogManager.getLogger().log(Level.DEBUG, "Loading database...");
|
LogManager.getLogger().log(Level.INFO, "Loading database...");
|
||||||
try (DataProvider provider = new DataProvider()) {
|
try (DataProvider provider = new DataProvider()) {
|
||||||
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();
|
||||||
user2.setName("Teszt"); //TODO: http://www.journaldev.com/3524/spring-hibernate-integration-example-tutorial
|
user2.setName("Teszt"); // TODO:
|
||||||
|
// http://www.journaldev.com/3524/spring-hibernate-integration-example-tutorial
|
||||||
user2.setEmail("test2@test.com");
|
user2.setEmail("test2@test.com");
|
||||||
user2.getContacts().add(user);
|
user2.getContacts().add(user);
|
||||||
provider.save(user);
|
provider.save(user);
|
||||||
|
@ -69,14 +70,14 @@ public class Main {
|
||||||
provider.save(user2);
|
provider.save(user2);
|
||||||
User loggedinuser = new User();
|
User loggedinuser = new User();
|
||||||
loggedinuser.setName("NorbiPeti");
|
loggedinuser.setName("NorbiPeti");
|
||||||
loggedinuser.setSessionid("2ed6e2cd-33ad-416e-92c2-7365510b8b31");
|
loggedinuser.setSessionid("8b148304-5dd6-48dd-a1a3-c8e47bcfc44b");
|
||||||
loggedinuser.setEmail("sznp@asd.com");
|
loggedinuser.setEmail("sznp@asd.com");
|
||||||
convo.getUsers().add(loggedinuser);
|
convo.getUsers().add(loggedinuser);
|
||||||
loggedinuser.getConversations().add(convo);
|
loggedinuser.getConversations().add(convo);
|
||||||
provider.save(loggedinuser);
|
provider.save(loggedinuser);
|
||||||
provider.save(convo);
|
provider.save(convo);
|
||||||
}
|
}
|
||||||
LogManager.getLogger().log(Level.DEBUG, "Starting webserver...");
|
LogManager.getLogger().log(Level.INFO, "Starting webserver...");
|
||||||
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()))
|
||||||
|
@ -96,14 +97,14 @@ public class Main {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
server.start();
|
server.start();
|
||||||
LogManager.getLogger().log(Level.DEBUG, "Ready... Press Enter to stop.");
|
LogManager.getLogger().log(Level.INFO, "Ready... Press Enter to stop.");
|
||||||
System.in.read();
|
System.in.read();
|
||||||
LogManager.getLogger().log(Level.DEBUG, "Stopping...");
|
LogManager.getLogger().log(Level.INFO, "Stopping...");
|
||||||
server.stop(1);
|
server.stop(1);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
LogManager.getLogger().log(Level.DEBUG, "Stopped");
|
LogManager.getLogger().log(Level.INFO, "Stopped");
|
||||||
}
|
}
|
||||||
|
|
||||||
private static void addPage(HttpServer server, Page page) {
|
private static void addPage(HttpServer server, Page page) {
|
||||||
|
|
|
@ -36,9 +36,10 @@ public class IndexPage extends Page {
|
||||||
userbox.html(userbox.html().replace("<username />", user.getName()));
|
userbox.html(userbox.html().replace("<username />", user.getName()));
|
||||||
Element channelmessages = doc.getElementById("channelmessages");
|
Element channelmessages = doc.getElementById("channelmessages");
|
||||||
try (DataProvider provider = new DataProvider()) {
|
try (DataProvider provider = new DataProvider()) {
|
||||||
LogManager.getLogger().log(Level.DEBUG, "Conversations: " + provider.getConversations().size());
|
LogManager.getLogger().log(Level.INFO, "Conversations: " + provider.getConversations().size());
|
||||||
Conversation convo = provider.getConversations().get(0);
|
LogManager.getLogger().log(Level.INFO, "User conversations: " + user.getConversations().size());
|
||||||
LogManager.getLogger().log(Level.DEBUG, "Messages: " + convo.getMesssages().size());
|
Conversation convo = user.getConversations().iterator().next();
|
||||||
|
LogManager.getLogger().log(Level.INFO, "Messages: " + convo.getMesssages().size());
|
||||||
for (Message message : convo.getMesssages()) {
|
for (Message message : convo.getMesssages()) {
|
||||||
Element msgelement = channelmessages.appendElement("div");
|
Element msgelement = channelmessages.appendElement("div");
|
||||||
Element header = msgelement.appendElement("p");
|
Element header = msgelement.appendElement("p");
|
||||||
|
|
|
@ -60,6 +60,7 @@ public class MessageAjaxPage extends Page {
|
||||||
msg.setSender(user);
|
msg.setSender(user);
|
||||||
msg.setMessage(message);
|
msg.setMessage(message);
|
||||||
msg.setTime(new Date());
|
msg.setTime(new Date());
|
||||||
|
msg.setConversation(conv);
|
||||||
provider.save(msg);
|
provider.save(msg);
|
||||||
conv.getMesssages().add(msg);
|
conv.getMesssages().add(msg);
|
||||||
provider.save(conv);
|
provider.save(conv);
|
||||||
|
|
|
@ -1,55 +1,55 @@
|
||||||
package io.github.norbipeti.chat.server.page;
|
package io.github.norbipeti.chat.server.page;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintStream;
|
import java.io.PrintStream;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
import org.apache.commons.io.output.ByteArrayOutputStream;
|
import org.apache.commons.io.output.ByteArrayOutputStream;
|
||||||
|
|
||||||
import com.sun.net.httpserver.*;
|
import com.sun.net.httpserver.*;
|
||||||
|
|
||||||
import io.github.norbipeti.chat.server.IOHelper;
|
import io.github.norbipeti.chat.server.IOHelper;
|
||||||
import io.github.norbipeti.chat.server.Main;
|
import io.github.norbipeti.chat.server.Main;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add to {@link Main}.Pages
|
* Add to {@link Main}.Pages
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public abstract class Page implements HttpHandler {
|
public abstract class Page implements HttpHandler {
|
||||||
public abstract String GetName();
|
public abstract String GetName();
|
||||||
|
|
||||||
public final String GetHTMLPath() {
|
public final String GetHTMLPath() {
|
||||||
if (GetName().length() == 0)
|
if (GetName().length() == 0)
|
||||||
return "pages/index.html";
|
return "pages/index.html";
|
||||||
return new StringBuilder("pages/").append(GetName()).append(".html").toString();
|
return new StringBuilder("pages/").append(GetName()).append(".html").toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handle(HttpExchange exchange) {
|
public void handle(HttpExchange exchange) {
|
||||||
try {
|
try {
|
||||||
if (!getDo404() || exchange.getRequestURI().getPath().equals("/" + GetName()))
|
if (!getDo404() || exchange.getRequestURI().getPath().equals("/" + GetName()))
|
||||||
handlePage(exchange);
|
handlePage(exchange);
|
||||||
else {
|
else {
|
||||||
IOHelper.SendPage(404, NotFoundPage.Instance, exchange);
|
IOHelper.SendPage(404, NotFoundPage.Instance, exchange);
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
try {
|
try {
|
||||||
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
ByteArrayOutputStream baos = new ByteArrayOutputStream();
|
||||||
PrintStream str = new PrintStream(baos);
|
PrintStream str = new PrintStream(baos);
|
||||||
str.print("<h1>500 Internal Server Error</h1><pre>");
|
str.print("<h1>500 Internal Server Error</h1><pre>");
|
||||||
e.printStackTrace(str);
|
e.printStackTrace(str);
|
||||||
str.print("</pre>");
|
str.print("</pre>");
|
||||||
IOHelper.SendResponse(500, baos.toString(StandardCharsets.ISO_8859_1), exchange);
|
IOHelper.SendResponse(500, baos.toString(StandardCharsets.ISO_8859_1), exchange);
|
||||||
} catch (Exception e1) {
|
} catch (Exception e1) {
|
||||||
e1.printStackTrace();
|
e1.printStackTrace(); //TODO: Message listener JS
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void handlePage(HttpExchange exchange) throws IOException;
|
public abstract void handlePage(HttpExchange exchange) throws IOException;
|
||||||
|
|
||||||
public boolean getDo404() {
|
public boolean getDo404() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue