--- a/src/main/scala/fis/crm/ui/CompanySnippet.scala Wed May 09 22:53:03 2012 +0200
+++ b/src/main/scala/fis/crm/ui/CompanySnippet.scala Thu May 24 11:19:26 2012 +0200
@@ -23,6 +23,8 @@
import fis.geo.model._
import fis.pm.model.CompanyProjects
import fis.pm.ui.ProjectTable
+import fis.sr.model.{CompanyServices, Service}
+import fis.sr.ui.{ServiceForm, ServiceSnippet, ServiceTable}
import net.liftweb.common._
import net.liftweb.http._
import net.liftweb.http.js.JsCmds.RedirectTo
@@ -48,7 +50,7 @@
private val viewPre = Menu.param[Company]("company.view", l10n("Company"), parse,
encode) / prefix / * >> Title(c => i18n("Company %s", c.linkName)) >>
locTpl("company/view") >> Snippet("panel", panel) >>
- Snippet("contacts", contacts.contacts) >>
+ Snippet("services", services) >> Snippet("contacts", contacts.contacts) >>
Snippet("projects", projects) >> Hidden
private val editPre = Menu.param[Company]("company.edit", l10n("Edit"), parse,
@@ -61,18 +63,25 @@
Title(c => i18n("Delete company %s", c.linkName)) >> IfLoggedIn.testVal >>
locTpl("entity/delete") >> Snippet("form", deleteF) >> Hidden
+ private val createServicePre = Menu.param[Company]("company.create-service",
+ l10n("Create service"), parse, encode) / prefix / * / "create-service" >>
+ Title(c => i18n("Create service for company %s", c.linkName)) >>
+ IfLoggedIn.testVal >>
+ locTpl("entity/form") >> Snippet("form", createServiceForm) >> Hidden
+
private val listM = listPre >> SecNav(createPre).build
private val createM = createPre >> SecNav(listPre).build
private val viewM = viewPre >>
- (SecNav(editPre) + deletePre + contacts.chooseM).build
+ (SecNav(editPre) + deletePre + createServicePre + contacts.chooseM).build
private val editM = editPre >> SecNav(viewPre).build
private val deleteM = deletePre >> SecNav(viewPre).build
+ private val createServiceM = createServicePre >> SecNav(viewPre).build
private lazy val viewLoc = viewM.toLoc
private lazy val editLoc = editM.toLoc
private lazy val deleteLoc = deleteM.toLoc
- val menu = listM submenus(viewM, editM, createM, deleteM,
+ val menu = listM submenus(viewM, editM, createM, deleteM, createServiceM,
contacts.chooseM, contacts.confirmM)
private def cur = viewLoc.currentValue or editLoc.currentValue or
@@ -85,6 +94,9 @@
private def projects: CssTr = "*" #> cur.map { c =>
ProjectTable(CompanyProjects(c)) }
+ private def services: CssTr = "*" #> cur.map { c =>
+ ServiceTable(CompanyServices(c)) }
+
object url {
def view: Company => Box[String] = (viewLoc.calcHref _) andThen (Box !! _)
}
@@ -248,6 +260,16 @@
}
}
+ private object createServiceForm extends ServiceForm {
+ override def localSetup() {
+ createServiceM.currentValue.foreach { c => service.company(c.id) }
+ }
+
+ protected def onSuccess(s: Service) {
+ ServiceSnippet.url.view(s).foreach { u => S redirectTo u }
+ }
+ }
+
}
// vim: set ts=2 sw=2 et: