Contact link
authorTomas Zeman <tzeman@volny.cz>
Fri, 20 Apr 2012 08:26:22 +0200
changeset 63 9d1ee662c736
parent 62 08c42c1684f3
child 64 90a44ee46732
Contact link
src/main/scala/fis/crm/ui/ContactSnippet.scala
src/main/scala/fis/crm/ui/ContactTable.scala
src/main/webapp/templates-hidden/_resources.html
src/main/webapp/templates-hidden/_resources_cs.html
--- a/src/main/scala/fis/crm/ui/ContactSnippet.scala	Fri Apr 20 08:26:22 2012 +0200
+++ b/src/main/scala/fis/crm/ui/ContactSnippet.scala	Fri Apr 20 08:26:22 2012 +0200
@@ -64,7 +64,7 @@
 
   val menu = listM submenus(viewM, editM, createM, deleteM)
 
-  private def list: CssTr = ContactTable(CrmSchema.allContacts)
+  private def list: CssTr = { _ => ContactTable(CrmSchema.allContacts) }
 
   private def panel: CssTr = "*" #> viewLoc.currentValue.map { ContactPanel(_) }
 
@@ -72,6 +72,13 @@
     def view: Contact => Box[String] = (viewLoc.calcHref _) andThen (Box !! _)
   }
 
+  private case class ContactLink(c: Contact) extends EntityLink[Contact](c,
+    url.view) {
+    override def displayName = l10n("contact.name")
+  }
+
+  EntityLink.register[Contact](ContactLink(_))
+
   private object form extends HorizontalScreen with CancelButton with SaveButton {
 
     object c extends ScreenVar[Contact](Contact.createRecord)
--- a/src/main/scala/fis/crm/ui/ContactTable.scala	Fri Apr 20 08:26:22 2012 +0200
+++ b/src/main/scala/fis/crm/ui/ContactTable.scala	Fri Apr 20 08:26:22 2012 +0200
@@ -15,27 +15,19 @@
  */
 package fis.crm.ui
 
+import fis.base.ui._
 import fis.crm.model._
 import net.liftweb.util._
+import net.tz.lift.model._
 import net.tz.lift.snippet._
 import scala.xml.Text
 
-object ContactTable {
+object ContactTable extends FieldTable[Contact] {
 
-  def fields(c: Contact) = Seq(ContactLink(c), c.position, c.workMail,
+  def fields(c: Contact) = EntityLink(c) ++ Seq(c.position, c.workMail,
     c.workPhone, c.workMobile)
 
-  def apply(l: Iterable[Contact]): CssTr =
-    new DataTable(fields(Contact) map { _.displayName } toList,
-    l map { c => fields(c) map { _.asHtml } toList } toList)
-}
-
-case class ContactLink(c: Contact) extends ReadableField {
-  type ValueType = String
-  def name = "linkName"
-  override def asHtml = a(ContactSnippet.url.view(c))(Text(c.linkName))
-  def get = c.linkName
-  def is = c.linkName
+  def apply(l: Iterable[Contact]) = build(Contact, l)
 }
 
 // vim: set ts=2 sw=2 et:
--- a/src/main/webapp/templates-hidden/_resources.html	Fri Apr 20 08:26:22 2012 +0200
+++ b/src/main/webapp/templates-hidden/_resources.html	Fri Apr 20 08:26:22 2012 +0200
@@ -22,6 +22,7 @@
   <res name="invalid.email.address" lang="en" default="true">Invalid email address.</res>
 
   <!-- contact fields -->
+  <res name="contact.name" lang="en" default="true">Name</res>
   <res name="contact.note" lang="en" default="true">Note</res>
   <res name="contact.firstName" lang="en" default="true">First name</res>
   <res name="contact.lastName" lang="en" default="true">Last name</res>
--- a/src/main/webapp/templates-hidden/_resources_cs.html	Fri Apr 20 08:26:22 2012 +0200
+++ b/src/main/webapp/templates-hidden/_resources_cs.html	Fri Apr 20 08:26:22 2012 +0200
@@ -22,6 +22,7 @@
   <res name="invalid.email.address" lang="cs">Nesprávná emailová adresa.</res>
 
   <!-- contact fields -->
+  <res name="contact.name" lang="cs">Jméno</res>
   <res name="contact.note" lang="cs">Poznámka</res>
   <res name="contact.firstName" lang="cs">Jméno</res>
   <res name="contact.lastName" lang="cs">Příjmení</res>