webmcp
annotate demo-app/app/main/medium/show.lua @ 68:ebdc20b7048b
Lua 5.2 compatibility:
Make function load accepting strings as first argument
Make function load accepting strings as first argument
| author | jbe | 
|---|---|
| date | Tue Apr 17 16:26:32 2012 +0200 (2012-04-17) | 
| parents | 9fdfb27f8e67 | 
| 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) |