| rev | 
   line source | 
| 
bsw/jbe@0
 | 
     1 local area = Area:by_id(param.get("area_id", atom.integer))
 | 
| 
bsw/jbe@0
 | 
     2 if area then
 | 
| 
bsw/jbe@0
 | 
     3   slot.put_into("title", encode.html(_"Set delegation for Area '#{name}'":gsub("#{name}", area.name)))
 | 
| 
bsw/jbe@4
 | 
     4   util.help("delegation.new.area")
 | 
| 
bsw/jbe@0
 | 
     5 end
 | 
| 
bsw/jbe@0
 | 
     6 
 | 
| 
bsw/jbe@0
 | 
     7 local issue = Issue:by_id(param.get("issue_id", atom.integer))
 | 
| 
bsw/jbe@0
 | 
     8 if issue then
 | 
| 
bsw/jbe@0
 | 
     9   slot.put_into("title", encode.html(_"Set delegation for Issue ##{number} in Area '#{area_name}'":gsub("#{number}", issue.id):gsub("#{area_name}", issue.area.name)))
 | 
| 
bsw/jbe@4
 | 
    10   util.help("delegation.new.issue")
 | 
| 
bsw/jbe@0
 | 
    11 end
 | 
| 
bsw/jbe@0
 | 
    12 
 | 
| 
poelzi@111
 | 
    13 local initiative = Initiative:by_id(param.get("initiative_id", atom.integer))
 | 
| 
poelzi@111
 | 
    14 
 | 
| 
bsw/jbe@4
 | 
    15 if not area and not issue then
 | 
| 
bsw/jbe@4
 | 
    16   slot.put_into("title", encode.html(_"Set global delegation"))
 | 
| 
bsw/jbe@4
 | 
    17   util.help("delegation.new.global")
 | 
| 
bsw/jbe@4
 | 
    18 end
 | 
| 
bsw/jbe@4
 | 
    19 
 | 
| 
bsw/jbe@4
 | 
    20 slot.select("actions", function()
 | 
| 
bsw/jbe@4
 | 
    21   if issue then
 | 
| 
bsw/jbe@4
 | 
    22     ui.link{
 | 
| 
bsw/jbe@4
 | 
    23       module = "issue",
 | 
| 
bsw/jbe@4
 | 
    24       view = "show",
 | 
| 
bsw/jbe@4
 | 
    25       id = issue.id,
 | 
| 
bsw/jbe@4
 | 
    26       content = function()
 | 
| 
bsw/jbe@4
 | 
    27           ui.image{ static = "icons/16/cancel.png" }
 | 
| 
bsw/jbe@4
 | 
    28           slot.put(_"Cancel")
 | 
| 
bsw/jbe@4
 | 
    29       end,
 | 
| 
bsw/jbe@4
 | 
    30     }
 | 
| 
bsw/jbe@4
 | 
    31   elseif area then
 | 
| 
bsw/jbe@4
 | 
    32     ui.link{
 | 
| 
bsw/jbe@4
 | 
    33       module = "area",
 | 
| 
bsw/jbe@4
 | 
    34       view = "show",
 | 
| 
bsw/jbe@4
 | 
    35       id = area.id,
 | 
| 
bsw/jbe@4
 | 
    36       content = function()
 | 
| 
bsw/jbe@4
 | 
    37           ui.image{ static = "icons/16/cancel.png" }
 | 
| 
bsw/jbe@4
 | 
    38           slot.put(_"Cancel")
 | 
| 
bsw/jbe@4
 | 
    39       end,
 | 
| 
bsw/jbe@4
 | 
    40     }
 | 
| 
bsw/jbe@4
 | 
    41   else
 | 
| 
bsw/jbe@4
 | 
    42     ui.link{
 | 
| 
bsw/jbe@4
 | 
    43       module = "index",
 | 
| 
bsw/jbe@4
 | 
    44       view = "index",
 | 
| 
bsw/jbe@4
 | 
    45       content = function()
 | 
| 
bsw/jbe@4
 | 
    46           ui.image{ static = "icons/16/cancel.png" }
 | 
| 
bsw/jbe@4
 | 
    47           slot.put(_"Cancel")
 | 
| 
bsw/jbe@4
 | 
    48       end,
 | 
| 
bsw/jbe@4
 | 
    49     }
 | 
| 
bsw/jbe@4
 | 
    50   end
 | 
| 
bsw/jbe@4
 | 
    51 end)
 | 
| 
bsw/jbe@4
 | 
    52 
 | 
| 
bsw/jbe@4
 | 
    53 
 | 
| 
bsw/jbe@0
 | 
    54 
 | 
| 
bsw/jbe@0
 | 
    55 local contact_members = Member:new_selector()
 | 
| 
bsw/jbe@0
 | 
    56   :add_where{ "contact.member_id = ?", app.session.member.id }
 | 
| 
bsw/jbe@0
 | 
    57   :join("contact", nil, "member.id = contact.other_member_id")
 | 
| 
bsw/jbe@4
 | 
    58   :add_order_by("member.name")
 | 
| 
bsw/jbe@0
 | 
    59   :exec()
 | 
| 
bsw/jbe@0
 | 
    60 
 | 
| 
bsw/jbe@0
 | 
    61 
 | 
| 
bsw/jbe@0
 | 
    62 ui.form{
 | 
| 
bsw/jbe@0
 | 
    63   attr = { class = "vertical" },
 | 
| 
bsw/jbe@0
 | 
    64   module = "delegation",
 | 
| 
bsw/jbe@0
 | 
    65   action = "update",
 | 
| 
bsw/jbe@0
 | 
    66   params = {
 | 
| 
bsw/jbe@0
 | 
    67     area_id = area and area.id or nil,
 | 
| 
bsw/jbe@0
 | 
    68     issue_id = issue and issue.id or nil,
 | 
| 
bsw/jbe@0
 | 
    69   },
 | 
| 
bsw/jbe@0
 | 
    70   routing = {
 | 
| 
bsw/jbe@0
 | 
    71     default = {
 | 
| 
bsw/jbe@0
 | 
    72       mode = "redirect",
 | 
| 
bsw/jbe@4
 | 
    73       module = area and "area" or issue and "issue" or "index",
 | 
| 
bsw/jbe@4
 | 
    74       view = (area or issue) and "show" or "index",
 | 
| 
bsw/jbe@4
 | 
    75       id = area and area.id or issue and issue.id or nil,
 | 
| 
bsw/jbe@0
 | 
    76     }
 | 
| 
bsw/jbe@0
 | 
    77   },
 | 
| 
bsw/jbe@0
 | 
    78   content = function()
 | 
| 
bsw@10
 | 
    79     local records = {
 | 
| 
bsw/jbe@4
 | 
    80       {
 | 
| 
bsw/jbe@4
 | 
    81         id = "-1",
 | 
| 
bsw/jbe@4
 | 
    82         name = _"No delegation"
 | 
| 
bsw/jbe@4
 | 
    83       }
 | 
| 
bsw/jbe@4
 | 
    84     }
 | 
| 
poelzi@111
 | 
    85 
 | 
| 
bsw/jbe@4
 | 
    86     for i, record in ipairs(contact_members) do
 | 
| 
bsw/jbe@4
 | 
    87       records[#records+1] = record
 | 
| 
bsw/jbe@4
 | 
    88     end
 | 
| 
poelzi@111
 | 
    89     disabled_records = {}
 | 
| 
poelzi@111
 | 
    90     -- add initiative authors
 | 
| 
poelzi@111
 | 
    91     if initiative then
 | 
| 
poelzi@111
 | 
    92       records[#records+1] = {id="_", name=_"--- Initiators ---"}
 | 
| 
poelzi@111
 | 
    93       disabled_records["_"] = true
 | 
| 
poelzi@111
 | 
    94       for i,record in ipairs(initiative.initiators) do
 | 
| 
poelzi@111
 | 
    95         trace.debug(record)
 | 
| 
poelzi@111
 | 
    96         trace.debug(record.member.name)
 | 
| 
poelzi@111
 | 
    97         records[#records+1] = record.member
 | 
| 
poelzi@111
 | 
    98       end
 | 
| 
poelzi@111
 | 
    99     end
 | 
| 
bsw/jbe@4
 | 
   100 
 | 
| 
bsw/jbe@0
 | 
   101     ui.field.select{
 | 
| 
bsw/jbe@0
 | 
   102       label = _"Trustee",
 | 
| 
bsw/jbe@0
 | 
   103       name = "trustee_id",
 | 
| 
bsw/jbe@4
 | 
   104       foreign_records = records,
 | 
| 
bsw/jbe@0
 | 
   105       foreign_id = "id",
 | 
| 
bsw/jbe@4
 | 
   106       foreign_name = "name",
 | 
| 
poelzi@111
 | 
   107       disabled_records = disabled_records
 | 
| 
bsw/jbe@0
 | 
   108     }
 | 
| 
poelzi@111
 | 
   109 
 | 
| 
bsw/jbe@0
 | 
   110     ui.submit{ text = _"Save" }
 | 
| 
bsw/jbe@0
 | 
   111   end
 | 
| 
bsw/jbe@4
 | 
   112 }
 |