aboutsummaryrefslogtreecommitdiff
path: root/mavigator-cockpit/src/main/scala/mavigator/index/Main.scala
diff options
context:
space:
mode:
Diffstat (limited to 'mavigator-cockpit/src/main/scala/mavigator/index/Main.scala')
-rw-r--r--mavigator-cockpit/src/main/scala/mavigator/index/Main.scala71
1 files changed, 41 insertions, 30 deletions
diff --git a/mavigator-cockpit/src/main/scala/mavigator/index/Main.scala b/mavigator-cockpit/src/main/scala/mavigator/index/Main.scala
index 7724f89..452d517 100644
--- a/mavigator-cockpit/src/main/scala/mavigator/index/Main.scala
+++ b/mavigator-cockpit/src/main/scala/mavigator/index/Main.scala
@@ -5,7 +5,6 @@ import scala.scalajs.js.annotation.JSExport
import org.scalajs.dom.html
-import mavigator.dashboard.ui.Layout
import mavigator.util.Environment
import mavigator.util.Application
@@ -29,16 +28,17 @@ object Main extends Application {
val parser = new Parser(
packet => {
val m: Message = Message.unpack(packet.messageId, packet.payload)
- println(m)
m match {
case hb: Heartbeat =>
- active() += ActiveVehicle.fromHeartbeat(packet.systemId, hb)
+ active() = active.now + ActiveVehicle.fromHeartbeat(packet.systemId, hb)
case _ => ()
}
}
)
override def main(args: Map[String, String])(implicit env: Environment): Unit = {
+ import rx.Ctx.Owner.Unsafe._
+
val root = env.root
val connection = new dom.WebSocket(args("socketUrl"))
@@ -64,34 +64,45 @@ object Main extends Application {
}
- root.appendChild(div(
- table(`class` := "table table-hover")(
- thead(
- tr(
- th("System ID"),
- th("Type"),
- th("Autopilot"),
- th("State"),
- th("")
- )
- ),
- Rx {
- tbody(
- for (vehicle <- active().toSeq) yield {
- tr(
- td(vehicle.systemId),
- td(vehicle.vehicleType),
- td(vehicle.autopilot),
- td(vehicle.state),
- td(a(href := "/dashboard/" + vehicle.systemId, `class` := "btn btn-default")("Pilot"))
- )
- }
+ val elem =
+ div(`class` := "container")(
+ div(`class` := "col-md-6 col-md-offset-3 col-sm-6 col-sm-offset-3")(
+ div(`class` := "panel panel-default")(
+ div(`class` := "panel-heading")(
+ h3(`class` := "panel-title")("Available vehicles")
+ ),
+ div(`class` := "panel-body")(
+ table(`class` := "table table-hover")(
+ thead(
+ tr(
+ th("System ID"),
+ th("Type"),
+ th("Autopilot"),
+ th("State"),
+ th("")
+ )
+ ),
+ Rx {
+ tbody(
+ for (vehicle <- active().toSeq) yield {
+ tr(
+ td(vehicle.systemId),
+ td(vehicle.vehicleType),
+ td(vehicle.autopilot),
+ td(vehicle.state),
+ td(a(href := "/cockpit/" + vehicle.systemId, `class` := "btn btn-default")("Pilot"))
+ )
+ }
+ )
+ }
+ ),
+ p(i(`class`:="fa fa-spinner fa-spin")(), " Listening for heartbeats...")
+ )
)
- }
- ),
- i(`class`:="fa fa-spinner fa-spin")(),
- " Listening for heartbeats..."
- ).render)
+ )
+ ).render
+
+ root.appendChild(elem)
}
}