diff options
Diffstat (limited to 'mavigator-cockpit/src/main/scala/mavigator/index/Main.scala')
-rw-r--r-- | mavigator-cockpit/src/main/scala/mavigator/index/Main.scala | 71 |
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) } } |