diff --git a/nginx/public/index.html b/nginx/public/index.html
index 5443216..bb04a0f 100644
--- a/nginx/public/index.html
+++ b/nginx/public/index.html
@@ -13,6 +13,8 @@
Welcome!
Name
+why u here
+
diff --git a/nginx/public/officeHours.js b/nginx/public/officeHours.js
index 3514c14..8e03c62 100644
--- a/nginx/public/officeHours.js
+++ b/nginx/public/officeHours.js
@@ -11,7 +11,7 @@ function displayQueue(queueJSON) {
const queue = JSON.parse(queueJSON);
let formattedQueue = "";
for (const student of queue) {
- formattedQueue += student['username'] + " has been waiting since " + student['timestamp'] + "
"
+ formattedQueue += student['username'] + " has been waiting since " + student['timestamp'] + " for reason: " + student['description'] + "
"
}
document.getElementById("queue").innerHTML = formattedQueue;
}
@@ -19,8 +19,10 @@ function displayQueue(queueJSON) {
function enterQueue() {
let name = document.getElementById("name").value;
- socket.emit("enter_queue", name);
+ let description = document.getElementById("description").value;
+ socket.emit("enter_queue", name + "::" + description);
document.getElementById("name").value = "";
+ document.getElementById("description").value = "";
}
function readyToHelp() {
diff --git a/src/main/scala/model/OfficeHoursServer.scala b/src/main/scala/model/OfficeHoursServer.scala
index 09ef61b..eb9268d 100644
--- a/src/main/scala/model/OfficeHoursServer.scala
+++ b/src/main/scala/model/OfficeHoursServer.scala
@@ -16,6 +16,7 @@ class OfficeHoursServer() {
var usernameToSocket: Map[String, SocketIOClient] = Map()
var socketToUsername: Map[SocketIOClient, String] = Map()
+ var userDescription: Map[SocketIOClient, String] = Map()
val config: Configuration = new Configuration {
setHostname("0.0.0.0")
@@ -59,10 +60,13 @@ class DisconnectionListener(server: OfficeHoursServer) extends DisconnectListene
class EnterQueueListener(server: OfficeHoursServer) extends DataListener[String] {
- override def onData(socket: SocketIOClient, username: String, ackRequest: AckRequest): Unit = {
- server.database.addStudentToQueue(StudentInQueue(username, System.nanoTime()))
+ override def onData(socket: SocketIOClient, userdesc: String, ackRequest: AckRequest): Unit = {
+ val username = userdesc.split("::")(0)
+ val description = userdesc.split("::")(1)
+ server.database.addStudentToQueue(StudentInQueue(username, System.nanoTime(), description))
server.socketToUsername += (socket -> username)
server.usernameToSocket += (username -> socket)
+ server.userDescription += (socket -> description)
server.server.getBroadcastOperations.sendEvent("queue", server.queueJSON())
}
}
diff --git a/src/main/scala/model/StudentInQueue.scala b/src/main/scala/model/StudentInQueue.scala
index 464108f..b16f15e 100644
--- a/src/main/scala/model/StudentInQueue.scala
+++ b/src/main/scala/model/StudentInQueue.scala
@@ -16,19 +16,20 @@ object StudentInQueue {
output
}
- def apply(username: String, timestamp: Long): StudentInQueue = {
- new StudentInQueue(cleanString(username), timestamp)
+ def apply(username: String, timestamp: Long, description: String): StudentInQueue = {
+ new StudentInQueue(cleanString(username), timestamp, description)
}
}
-class StudentInQueue(val username: String, val timestamp: Long) {
+class StudentInQueue(val username: String, val timestamp: Long, val description: String) {
def asJsValue(): JsValue ={
val messageMap: Map[String, JsValue] = Map(
"username" -> Json.toJson(username),
- "timestamp" -> Json.toJson(timestamp)
+ "timestamp" -> Json.toJson(timestamp),
+ "description" -> Json.toJson(description)
)
Json.toJson(messageMap)
}
diff --git a/src/main/scala/model/database/Database.scala b/src/main/scala/model/database/Database.scala
index bbc9f7a..21aa659 100644
--- a/src/main/scala/model/database/Database.scala
+++ b/src/main/scala/model/database/Database.scala
@@ -47,9 +47,10 @@ class Database extends DatabaseAPI{
var queue: List[StudentInQueue] = List()
while (result.next()) {
- val username = result.getString("username")
+ val username = result.getString("username").split("::")(0)
+ val description = result.getString("username").split("::")(1)
val timestamp = result.getLong("timestamp")
- queue = new StudentInQueue(username, timestamp) :: queue
+ queue = new StudentInQueue(username, timestamp, description) :: queue
}
queue.reverse