| 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)
 |