webmcp

annotate demo-app/app/main/medium/show.lua @ 0:9fdfb27f8e67

Version 1.0.0
author jbe/bsw
date Sun Oct 25 12:00:00 2009 +0100 (2009-10-25)
parents
children
rev   line source
jbe/bsw@0 1 local medium
jbe/bsw@0 2 local id = param.get_id()
jbe/bsw@0 3 if id then
jbe/bsw@0 4 medium = Medium:by_id(id)
jbe/bsw@0 5 end
jbe/bsw@0 6
jbe/bsw@0 7 if medium then
jbe/bsw@0 8 slot.put_into("title", encode.html(_"Medium"))
jbe/bsw@0 9 else
jbe/bsw@0 10 slot.put_into("title", encode.html(_"New medium"))
jbe/bsw@0 11 end
jbe/bsw@0 12
jbe/bsw@0 13 slot.select("actions", function()
jbe/bsw@0 14 ui.link{
jbe/bsw@0 15 content = _"Back",
jbe/bsw@0 16 module = "medium"
jbe/bsw@0 17 }
jbe/bsw@0 18 if medium and app.session.user.write_priv then
jbe/bsw@0 19 ui.link{
jbe/bsw@0 20 content = _"Delete",
jbe/bsw@0 21 form_attr = {
jbe/bsw@0 22 onsubmit = "return confirm(" .. encode.json(_'Are you sure?') .. ");"
jbe/bsw@0 23 },
jbe/bsw@0 24 module = "medium",
jbe/bsw@0 25 action = "update",
jbe/bsw@0 26 id = medium.id,
jbe/bsw@0 27 params = { delete = true },
jbe/bsw@0 28 routing = {
jbe/bsw@0 29 default = {
jbe/bsw@0 30 mode = "redirect",
jbe/bsw@0 31 module = "medium",
jbe/bsw@0 32 view = "index"
jbe/bsw@0 33 }
jbe/bsw@0 34 }
jbe/bsw@0 35 }
jbe/bsw@0 36 end
jbe/bsw@0 37 end)
jbe/bsw@0 38
jbe/bsw@0 39 slot.select("main", function()
jbe/bsw@0 40 ui.form{
jbe/bsw@0 41 attr = { class = "vertical" },
jbe/bsw@0 42 record = medium,
jbe/bsw@0 43 readonly = not app.session.user.write_priv,
jbe/bsw@0 44 module = "medium",
jbe/bsw@0 45 action = "update",
jbe/bsw@0 46 id = id,
jbe/bsw@0 47 routing = {
jbe/bsw@0 48 default = {
jbe/bsw@0 49 mode = "redirect",
jbe/bsw@0 50 module = "medium",
jbe/bsw@0 51 view = "index"
jbe/bsw@0 52 }
jbe/bsw@0 53 },
jbe/bsw@0 54 content = function()
jbe/bsw@0 55 if id then
jbe/bsw@0 56 ui.field.integer{ label = _"Id", name = "id", readonly = true }
jbe/bsw@0 57 end
jbe/bsw@0 58 ui.field.select{
jbe/bsw@0 59 label = _"Media type",
jbe/bsw@0 60 name = "media_type_id",
jbe/bsw@0 61 foreign_records = MediaType:new_selector():exec(),
jbe/bsw@0 62 foreign_id = "id",
jbe/bsw@0 63 foreign_name = "name"
jbe/bsw@0 64 }
jbe/bsw@0 65 ui.field.text{ label = _"Name", name = "name" }
jbe/bsw@0 66 ui.field.boolean{ label = _"Copy protected", name = "copyprotected" }
jbe/bsw@0 67
jbe/bsw@0 68 ui.multiselect{
jbe/bsw@0 69 name = "genres[]",
jbe/bsw@0 70 label = _"Genres",
jbe/bsw@0 71 style = "select",
jbe/bsw@0 72 attr = { size = 5 },
jbe/bsw@0 73 foreign_records = Genre:new_selector():exec(),
jbe/bsw@0 74 connecting_records = medium and medium.classifications or {},
jbe/bsw@0 75 own_id = "id",
jbe/bsw@0 76 own_reference = "medium_id",
jbe/bsw@0 77 foreign_reference = "genre_id",
jbe/bsw@0 78 foreign_id = "id",
jbe/bsw@0 79 foreign_name = "name",
jbe/bsw@0 80 }
jbe/bsw@0 81 local tracks = medium and medium.tracks or {}
jbe/bsw@0 82 for i = 1, 5 do
jbe/bsw@0 83 tracks[#tracks+1] = Track:new()
jbe/bsw@0 84 end
jbe/bsw@0 85 ui.list{
jbe/bsw@0 86 label = _"Tracks",
jbe/bsw@0 87 prefix = "tracks",
jbe/bsw@0 88 records = tracks,
jbe/bsw@0 89 columns = {
jbe/bsw@0 90 {
jbe/bsw@0 91 label = _"Pos",
jbe/bsw@0 92 name = "position",
jbe/bsw@0 93 },
jbe/bsw@0 94 {
jbe/bsw@0 95 label = _"Name",
jbe/bsw@0 96 name = "name",
jbe/bsw@0 97 },
jbe/bsw@0 98 {
jbe/bsw@0 99 label = _"Description",
jbe/bsw@0 100 name = "description",
jbe/bsw@0 101 },
jbe/bsw@0 102 {
jbe/bsw@0 103 label = _"Duration",
jbe/bsw@0 104 name = "duration",
jbe/bsw@0 105 },
jbe/bsw@0 106 {
jbe/bsw@0 107 content = function()
jbe/bsw@0 108 ui.field.hidden{ name = "id" }
jbe/bsw@0 109 end
jbe/bsw@0 110 }
jbe/bsw@0 111 }
jbe/bsw@0 112 }
jbe/bsw@0 113
jbe/bsw@0 114 ui.submit{ text = _"Save" }
jbe/bsw@0 115 end
jbe/bsw@0 116 }
jbe/bsw@0 117 end)

Impressum / About Us