Skip to content
This repository has been archived by the owner on Sep 4, 2021. It is now read-only.

Commit

Permalink
implementing unit type overview and create
Browse files Browse the repository at this point in the history
  • Loading branch information
jarlah committed May 5, 2019
1 parent 7b8982f commit b856335
Show file tree
Hide file tree
Showing 1,927 changed files with 144,369 additions and 67,930 deletions.
17 changes: 17 additions & 0 deletions app/controllers/DashboardController.scala
@@ -0,0 +1,17 @@
package controllers

import scala.collection.JavaConverters._
import dbi.DBIHolder
import javax.inject._
import play.api.mvc._

@Singleton
class DashboardController @Inject()(cc: ControllerComponents, dbiHolder: DBIHolder) extends AbstractController(cc) {

def index: Action[AnyContent] = Action {
val dbi = dbiHolder.dbi
val count = dbi.getACSUnit.getUnitCount(dbi.getAcs.getUnittypes.getUnittypes.toList.asJava)
Ok(views.html.dashboard(count))
}

}
34 changes: 34 additions & 0 deletions app/controllers/UnitTypeController.scala
@@ -0,0 +1,34 @@
package controllers

import dbi.{DBIHolder, Unittype}
import javax.inject.{Inject, Singleton}
import play.api.i18n.I18nSupport
import play.api.mvc.{AbstractController, Action, AnyContent, ControllerComponents}

@Singleton
class UnitTypeController @Inject()(cc: ControllerComponents, dbiHolder: DBIHolder) extends AbstractController(cc) with I18nSupport {
import UnitTypeForm._

def viewCreate: Action[AnyContent] = Action { implicit request =>
Ok(views.html.unitTypeCreate(form))
}

def postCreate: Action[AnyContent] = Action { implicit request =>
form.bindFromRequest.fold(
formWithErrors => {
BadRequest(views.html.unitTypeCreate(formWithErrors))
},
formData => {
val newUnitType = new Unittype(formData.name, "", formData.description, formData.protocol)
dbiHolder.dbi.getAcs.getUnittypes.addOrChangeUnittype(newUnitType, dbiHolder.dbi.getAcs)
Redirect(routes.UnitTypeController.viewCreate()).flashing(
"success" -> s"The Unit Type ${newUnitType.getName} was created"
)
}
)
}

def overview: Action[AnyContent] = Action {
Ok(views.html.unitTypeOverview(dbiHolder.dbi.getAcs.getUnittypes.getUnittypes.toList))
}
}
37 changes: 37 additions & 0 deletions app/controllers/UnitTypeForm.scala
@@ -0,0 +1,37 @@
package controllers

import dbi.Unittype.ProvisioningProtocol
import play.api.data.{FormError, Forms}
import play.api.data.format.Formatter

object UnitTypeForm {
import play.api.data.Forms._
import play.api.data.Form

case class UnitType(
id: Option[Long] = None,
name: String,
vendor: String,
description: String,
protocol: ProvisioningProtocol
)

implicit def provisioningProtocolFormat: Formatter[ProvisioningProtocol] = new Formatter[ProvisioningProtocol] {
override def bind(key: String, data: Map[String, String]): Either[Seq[FormError], ProvisioningProtocol] =
data.get(key)
.map(ProvisioningProtocol.valueOf)
.toRight(Seq(FormError(key, "error.required", Nil)))
override def unbind(key: String, value: ProvisioningProtocol): Map[String, String] =
Map(key -> value.toString)
}

val form = Form(
mapping(
"id" -> optional(longNumber),
"vendor" -> text,
"name" -> nonEmptyText,
"description" -> text,
"protocol" -> Forms.of[ProvisioningProtocol]
)(UnitType.apply)(UnitType.unapply)
)
}
17 changes: 0 additions & 17 deletions app/controllers/WebController.scala

This file was deleted.

23 changes: 11 additions & 12 deletions app/views/PageEnumeration.scala
@@ -1,17 +1,16 @@
package views
import controllers.routes.WebController.index
import play.api.mvc.Call

sealed abstract class PageEnumeration(val name: String, val url: Call, val fontAwesome: String)

case object Dashboard extends PageEnumeration("Dashboard", index(), "fa fa-dashboard")
case object UnitTypeOverview extends PageEnumeration("UnitType Overview", index(), "fa fa-desktop")
case object CreateUnitType extends PageEnumeration("Create UnitType", index(), "fa fa-desktop")
case object ProfileOverview extends PageEnumeration("Profile Overview", index(), "fa fa-desktop")
case object CreateProfile extends PageEnumeration("Create Profile", index(), "fa fa-desktop")
case object UnitSearch extends PageEnumeration("Unit Search", index(), "fa fa-desktop")
case object CreateUnit extends PageEnumeration ("Create Unit", index(), "fa fa-desktop")
case object GroupOverview extends PageEnumeration("Group Overview", index(), "fa fa-desktop")
case object CreateGroup extends PageEnumeration("Create Group", index(), "fa fa-desktop")
case object JobOverview extends PageEnumeration("Job Overview", index(), "fa fa-desktop")
case object CreateJob extends PageEnumeration("Create Job", index(), "fa fa-desktop")
case object Dashboard extends PageEnumeration("Dashboard", controllers.routes.DashboardController.index(), "fa fa-dashboard")
case object UnitTypeOverview extends PageEnumeration("Unit Type Overview", controllers.routes.UnitTypeController.overview(), "fa fa-desktop")
case object CreateUnitType extends PageEnumeration("Create Unit Type", controllers.routes.UnitTypeController.viewCreate(), "fa fa-desktop")
case object ProfileOverview extends PageEnumeration("Profile Overview", controllers.routes.DashboardController.index(), "fa fa-desktop")
case object CreateProfile extends PageEnumeration("Create Profile", controllers.routes.DashboardController.index(), "fa fa-desktop")
case object UnitSearch extends PageEnumeration("Unit Search", controllers.routes.DashboardController.index(), "fa fa-desktop")
case object CreateUnit extends PageEnumeration ("Create Unit", controllers.routes.DashboardController.index(), "fa fa-desktop")
case object GroupOverview extends PageEnumeration("Group Overview", controllers.routes.DashboardController.index(), "fa fa-desktop")
case object CreateGroup extends PageEnumeration("Create Group", controllers.routes.DashboardController.index(), "fa fa-desktop")
case object JobOverview extends PageEnumeration("Job Overview", controllers.routes.DashboardController.index(), "fa fa-desktop")
case object CreateJob extends PageEnumeration("Create Job", controllers.routes.DashboardController.index(), "fa fa-desktop")
70 changes: 55 additions & 15 deletions app/views/dashboard.scala.html
Expand Up @@ -4,27 +4,67 @@

@main("Dashboard", Dashboard) {
<div class="row">
<div class="col-md-4">
<div class="main-box mb-red">
<a href="#">
<i class="fa fa-bolt fa-5x"></i>
<h5>No errors logged</h5>
<div class="col-xl-3 col-sm-6 mb-3">
<div class="card text-white bg-primary o-hidden h-100">
<div class="card-body">
<div class="card-body-icon">
<i class="fas fa-fw fa-comments"></i>
</div>
<div class="mr-5">@numUnits units</div>
</div>
<a class="card-footer text-white clearfix small z-1" href="#">
<span class="float-left">View Details</span>
<span class="float-right">
<i class="fas fa-angle-right"></i>
</span>
</a>
</div>
</div>
<div class="col-md-4">
<div class="main-box mb-dull">
<a href="#">
<i class="fa fa-plug fa-5x"></i>
<h5>@numUnits units</h5>
<div class="col-xl-3 col-sm-6 mb-3">
<div class="card text-white bg-warning o-hidden h-100">
<div class="card-body">
<div class="card-body-icon">
<i class="fas fa-fw fa-list"></i>
</div>
<div class="mr-5">11 New Tasks!</div>
</div>
<a class="card-footer text-white clearfix small z-1" href="#">
<span class="float-left">View Details</span>
<span class="float-right">
<i class="fas fa-angle-right"></i>
</span>
</a>
</div>
</div>
<div class="col-md-4">
<div class="main-box mb-pink">
<a href="#">
<i class="fa fa-ambulance fa-5x"></i>
<h5>2 failed jobs</h5>
<div class="col-xl-3 col-sm-6 mb-3">
<div class="card text-white bg-success o-hidden h-100">
<div class="card-body">
<div class="card-body-icon">
<i class="fas fa-fw fa-shopping-cart"></i>
</div>
<div class="mr-5">123 New Orders!</div>
</div>
<a class="card-footer text-white clearfix small z-1" href="#">
<span class="float-left">View Details</span>
<span class="float-right">
<i class="fas fa-angle-right"></i>
</span>
</a>
</div>
</div>
<div class="col-xl-3 col-sm-6 mb-3">
<div class="card text-white bg-danger o-hidden h-100">
<div class="card-body">
<div class="card-body-icon">
<i class="fas fa-fw fa-life-ring"></i>
</div>
<div class="mr-5">13 New Tickets!</div>
</div>
<a class="card-footer text-white clearfix small z-1" href="#">
<span class="float-left">View Details</span>
<span class="float-right">
<i class="fas fa-angle-right"></i>
</span>
</a>
</div>
</div>
Expand Down
30 changes: 30 additions & 0 deletions app/views/fragments/MenuItem.scala.html
@@ -0,0 +1,30 @@
@import views.PageEnumeration

@(
title: String,
pages: List[PageEnumeration],
currentPage: PageEnumeration,
fontAwesome: String,
displayChildren: Boolean = true
)

@if(displayChildren) {
<li class="nav-item dropdown@{if(pages.contains(currentPage)) " active" else ""}">
<a class="nav-link dropdown-toggle" href="#" id="@title-Dropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-fw fa-folder"></i>
<span>@title</span>
</a>
<div class="dropdown-menu" aria-labelledby="@title-Dropdown">
@pages.filter(_ => displayChildren).map { page =>
<a class="dropdown-item@{if(currentPage == page) " active" else ""}" href="@page.url">@page.name</a>
}
</div>
</li>
} else {
<li class="nav-item@{if(pages.contains(currentPage)) " active" else ""}">
<a class="nav-link" href="@pages.head.url">
<i class="fas fa-fw fa-tachometer-alt"></i>
<span>@title</span>
</a>
</li>
}

0 comments on commit b856335

Please sign in to comment.