13 * See the License for the specific language governing permissions and |
13 * See the License for the specific language governing permissions and |
14 * limitations under the License. |
14 * limitations under the License. |
15 */ |
15 */ |
16 package fis.base.ui |
16 package fis.base.ui |
17 |
17 |
|
18 import fis.base.model.RecordCrud |
18 import net.liftweb.common._ |
19 import net.liftweb.common._ |
19 import net.liftweb.http._ |
20 import net.liftweb.http._ |
|
21 import net.liftweb.record._ |
20 import net.liftweb.sitemap._ |
22 import net.liftweb.sitemap._ |
21 import net.liftweb.util._ |
23 import net.liftweb.util._ |
22 import net.liftweb.util.Helpers._ |
24 import net.liftweb.util.Helpers._ |
23 import net.tz.lift.snippet.{A, DataTable, LocTpl, TplPanel, SnippetHelpers} |
25 import net.tz.lift.snippet.{A, DataTable, LocTpl, TplPanel, SnippetHelpers} |
24 import scala.xml.{Elem, NodeSeq, Text} |
26 import scala.xml.{Elem, NodeSeq, Text} |
83 def deletePreMenu = Menu.param[T](prefix + ".delete", LinkText(titleDelete(_)), |
85 def deletePreMenu = Menu.param[T](prefix + ".delete", LinkText(titleDelete(_)), |
84 asEntity, _.id.toString) / prefix / * / "delete" |
86 asEntity, _.id.toString) / prefix / * / "delete" |
85 def deleteMenu = deletePreMenu >> LocTpl(tplDelete) |
87 def deleteMenu = deletePreMenu >> LocTpl(tplDelete) |
86 } |
88 } |
87 |
89 |
88 trait EntitySnippet[T <: KeyedRecord[Long]] extends SnippetHelpers with |
90 trait EntitySnippet[T <: Record[T] with KeyedRecord[Long]] extends |
89 CrudMenu[T] { |
91 RecordCrud[T] { |
90 |
92 |
91 object cur extends RequestVar[EntityLoc[T]](ListEntity[T]()) |
93 def prefix: String |
92 |
94 |
|
95 protected object memo extends RequestMemoize[String, Box[T]]() |
|
96 lazy val parse = { id: String => memo(id, get(id)) } |
|
97 lazy val encode = { v: T => v.id.toString } |
|
98 |
|
99 val ADD = "add" |
|
100 val EDIT = "edit" |
|
101 val DELETE = "delete" |
|
102 |
|
103 /* |
93 def listsMenu = Menu(prefix + "s", titleList) / (prefix + "s") >> |
104 def listsMenu = Menu(prefix + "s", titleList) / (prefix + "s") >> |
94 EarlyResponse(() => Full(RedirectResponse("/" + prefix))) |
105 EarlyResponse(() => Full(RedirectResponse("/" + prefix))) |
95 |
106 |
96 lazy val menu: Menu = listsMenu submenus( |
107 lazy val menu: Menu = listsMenu submenus( |
97 listMenu, addMenu, showMenu, editMenu, deleteMenu |
108 listMenu, addMenu, showMenu, editMenu, deleteMenu |
98 ) |
109 ) |
|
110 */ |
99 } |
111 } |
100 |
112 |
101 // vim: set ts=2 sw=2 et: |
113 // vim: set ts=2 sw=2 et: |