| rev | 
   line source | 
| 
bsw/jbe@0
 | 
     1 local area = Area:new_selector():add_where{ "id = ?", param.get_id() }:single_object_mode():exec()
 | 
| 
bsw/jbe@0
 | 
     2 
 | 
| 
jorges@113
 | 
     3 app.html_title.title = area.name
 | 
| 
jorges@113
 | 
     4 app.html_title.subtitle = _("Area")
 | 
| 
jorges@113
 | 
     5 
 | 
| 
bsw/jbe@52
 | 
     6 if config.feature_rss_enabled then
 | 
| 
bsw/jbe@52
 | 
     7   util.html_rss_head{ title = _"Initiatives in this area (last created first)", module = "initiative", view = "list_rss", params = { area_id = area.id } }
 | 
| 
bsw/jbe@52
 | 
     8   util.html_rss_head{ title = _"Initiatives in this area (last updated first)", module = "initiative", view = "list_rss", params = { area_id = area.id } }
 | 
| 
bsw/jbe@52
 | 
     9 end
 | 
| 
bsw/jbe@52
 | 
    10 
 | 
| 
bsw/jbe@0
 | 
    11 slot.put_into("title", encode.html(_"Area '#{name}'":gsub("#{name}", area.name)))
 | 
| 
bsw/jbe@0
 | 
    12 
 | 
| 
bsw/jbe@0
 | 
    13 ui.container{
 | 
| 
bsw/jbe@0
 | 
    14   attr = { class = "vertical"},
 | 
| 
bsw/jbe@0
 | 
    15   content = function()
 | 
| 
bsw/jbe@0
 | 
    16     ui.field.text{ value = area.description }
 | 
| 
bsw/jbe@0
 | 
    17   end
 | 
| 
bsw/jbe@0
 | 
    18 }
 | 
| 
bsw/jbe@0
 | 
    19 
 | 
| 
bsw@51
 | 
    20 if app.session.member_id then
 | 
| 
bsw@51
 | 
    21   slot.select("actions", function()
 | 
| 
bsw@51
 | 
    22     ui.link{
 | 
| 
bsw@51
 | 
    23       content = function()
 | 
| 
bsw@51
 | 
    24         ui.image{ static = "icons/16/folder_add.png" }
 | 
| 
bsw@51
 | 
    25         slot.put(_"Create new issue")
 | 
| 
bsw@51
 | 
    26       end,
 | 
| 
bsw@51
 | 
    27       module = "initiative",
 | 
| 
bsw@51
 | 
    28       view = "new",
 | 
| 
bsw@51
 | 
    29       params = { area_id = area.id }
 | 
| 
bsw@51
 | 
    30     }
 | 
| 
bsw@51
 | 
    31   end)
 | 
| 
bsw@51
 | 
    32 end
 | 
| 
bsw/jbe@0
 | 
    33 
 | 
| 
bsw/jbe@4
 | 
    34 util.help("area.show")
 | 
| 
bsw/jbe@4
 | 
    35 
 | 
| 
bsw@51
 | 
    36 if app.session.member_id then
 | 
| 
bsw@51
 | 
    37   execute.view{
 | 
| 
bsw@51
 | 
    38     module = "membership",
 | 
| 
bsw@51
 | 
    39     view = "_show_box",
 | 
| 
bsw@51
 | 
    40     params = { area = area }
 | 
| 
bsw@51
 | 
    41   }
 | 
| 
bsw/jbe@0
 | 
    42 
 | 
| 
bsw@51
 | 
    43   execute.view{
 | 
| 
bsw@51
 | 
    44     module = "delegation",
 | 
| 
bsw@51
 | 
    45     view = "_show_box",
 | 
| 
bsw@51
 | 
    46     params = { area_id = area.id }
 | 
| 
bsw@51
 | 
    47   }
 | 
| 
bsw@51
 | 
    48 
 | 
| 
bsw@51
 | 
    49 end
 | 
| 
bsw/jbe@0
 | 
    50 
 | 
| 
bsw/jbe@19
 | 
    51 --[[
 | 
| 
bsw/jbe@19
 | 
    52 for i, issue in ipairs(area.issues) do
 | 
| 
bsw/jbe@19
 | 
    53   local head_name = "issue_head_content_" .. tostring(issue.id)
 | 
| 
bsw/jbe@19
 | 
    54   local name = "issue_content_" .. tostring(issue.id)
 | 
| 
bsw/jbe@19
 | 
    55   local icon_name = "issue_icon_" .. tostring(issue.id)
 | 
| 
bsw/jbe@19
 | 
    56   ui.container{
 | 
| 
bsw/jbe@19
 | 
    57     attr = { class = "ui_tabs" },
 | 
| 
bsw/jbe@0
 | 
    58     content = function()
 | 
| 
bsw/jbe@19
 | 
    59       local onclick = 
 | 
| 
bsw/jbe@19
 | 
    60         'if (ui_tabs_active["' .. name .. '"]) {' ..
 | 
| 
bsw/jbe@19
 | 
    61           'el=document.getElementById("' .. name .. '");' ..
 | 
| 
bsw/jbe@19
 | 
    62           'el.innerHTML="";' ..
 | 
| 
bsw/jbe@19
 | 
    63           'el.style.display="none";' ..
 | 
| 
bsw/jbe@19
 | 
    64           'ui_tabs_active["' .. name .. '"]=false' ..
 | 
| 
bsw/jbe@19
 | 
    65         '} else {' ..
 | 
| 
bsw/jbe@19
 | 
    66           'ui_tabs_active["' .. name .. '"]=true;' ..
 | 
| 
bsw/jbe@19
 | 
    67           'document.getElementById("' .. name .. '").style.display="block"; ' ..
 | 
| 
bsw/jbe@19
 | 
    68           'var hourglass_el = document.getElementById("' .. icon_name .. '");' ..
 | 
| 
bsw/jbe@19
 | 
    69           'var hourglass_src = hourglass_el.src;' ..
 | 
| 
bsw/jbe@19
 | 
    70           'hourglass_el.src = "' .. encode.url{ static = "icons/16/connect.png" } .. '";' ..
 | 
| 
bsw/jbe@19
 | 
    71           'partialMultiLoad(' ..
 | 
| 
bsw/jbe@19
 | 
    72             '{ trace: "trace", system_error: "system_error", ' .. name .. '_title: "title", ' .. name .. '_actions: "actions", ' .. name .. '_content: "default" },' ..
 | 
| 
bsw/jbe@19
 | 
    73             '{},' ..
 | 
| 
bsw/jbe@19
 | 
    74             '"error",' ..
 | 
| 
bsw/jbe@19
 | 
    75             '"' .. request.get_relative_baseurl() .. 'issue/show/' .. tostring(issue.id) .. '.html?&_webmcp_json_slots[]=title&_webmcp_json_slots[]=actions&_webmcp_json_slots[]=default&_webmcp_json_slots[]=trace&_webmcp_json_slots[]=system_error&dyn=1",' ..
 | 
| 
bsw/jbe@19
 | 
    76             '{},' ..
 | 
| 
bsw/jbe@19
 | 
    77             '{},' ..
 | 
| 
bsw/jbe@19
 | 
    78             'function() {' ..
 | 
| 
bsw/jbe@19
 | 
    79               'hourglass_el.src = hourglass_src;' ..
 | 
| 
bsw/jbe@19
 | 
    80             '},' ..
 | 
| 
bsw/jbe@19
 | 
    81             'function() {' ..
 | 
| 
bsw/jbe@19
 | 
    82               'hourglass_el.src = hourglass_src;' ..
 | 
| 
bsw/jbe@19
 | 
    83             '}' ..
 | 
| 
bsw/jbe@19
 | 
    84           '); ' ..
 | 
| 
bsw/jbe@19
 | 
    85         '}' ..
 | 
| 
bsw/jbe@19
 | 
    86         'return(false);'
 | 
| 
bsw/jbe@19
 | 
    87       ui.link{
 | 
| 
bsw/jbe@19
 | 
    88         attr = {
 | 
| 
bsw/jbe@19
 | 
    89           name = name,
 | 
| 
bsw/jbe@19
 | 
    90           class = "ui_tabs_accordeon_head",
 | 
| 
bsw/jbe@19
 | 
    91           id = head_name,
 | 
| 
bsw/jbe@19
 | 
    92           onclick = onclick,
 | 
| 
bsw/jbe@19
 | 
    93         },
 | 
| 
bsw/jbe@19
 | 
    94         module  = "issue",
 | 
| 
bsw/jbe@19
 | 
    95         view    = "show",
 | 
| 
bsw/jbe@19
 | 
    96         id      = issue.id,
 | 
| 
bsw/jbe@19
 | 
    97         params  = params,
 | 
| 
bsw/jbe@19
 | 
    98         anchor  = name,
 | 
| 
bsw/jbe@19
 | 
    99         content = function()
 | 
| 
bsw/jbe@19
 | 
   100           ui.image{
 | 
| 
bsw/jbe@19
 | 
   101             attr = { id = icon_name },
 | 
| 
bsw/jbe@19
 | 
   102             static = "icons/16/script.png"
 | 
| 
bsw/jbe@19
 | 
   103           }
 | 
| 
bsw/jbe@19
 | 
   104           ui.container{
 | 
| 
bsw/jbe@19
 | 
   105             attr = { style = "float: right;" },
 | 
| 
bsw/jbe@19
 | 
   106             content = function()
 | 
| 
bsw/jbe@19
 | 
   107               
 | 
| 
bsw/jbe@19
 | 
   108             end
 | 
| 
bsw/jbe@19
 | 
   109           }
 | 
| 
bsw/jbe@19
 | 
   110           slot.put(tostring(issue.id))
 | 
| 
bsw/jbe@19
 | 
   111         end
 | 
| 
bsw/jbe@0
 | 
   112       }
 | 
| 
bsw/jbe@0
 | 
   113     end
 | 
| 
bsw/jbe@19
 | 
   114   }
 | 
| 
bsw/jbe@19
 | 
   115 
 | 
| 
bsw/jbe@19
 | 
   116   ui.container{
 | 
| 
bsw/jbe@19
 | 
   117     attr = {
 | 
| 
bsw/jbe@19
 | 
   118       id = name,
 | 
| 
bsw/jbe@19
 | 
   119       class = "ui_tabs_accordeon_content",
 | 
| 
bsw/jbe@19
 | 
   120     },
 | 
| 
bsw/jbe@0
 | 
   121     content = function()
 | 
| 
bsw/jbe@19
 | 
   122       ui.container{ attr = { id = name .. "_title",   }, content = function() slot.put(" ") end }
 | 
| 
bsw/jbe@19
 | 
   123       ui.container{ attr = { id = name .. "_actions", }, content = function() slot.put(" ") end }
 | 
| 
bsw/jbe@19
 | 
   124       ui.container{ attr = { id = name .. "_content", }, content = function() 
 | 
| 
bsw/jbe@19
 | 
   125         execute.view{
 | 
| 
bsw/jbe@19
 | 
   126           module = "initiative",
 | 
| 
bsw/jbe@19
 | 
   127           view = "_list",
 | 
| 
bsw/jbe@19
 | 
   128           params = {
 | 
| 
bsw/jbe@19
 | 
   129             issue = issue,
 | 
| 
bsw/jbe@19
 | 
   130             initiatives_selector = issue:get_reference_selector("initiatives"),
 | 
| 
bsw/jbe@19
 | 
   131             limit = 3,
 | 
| 
bsw/jbe@19
 | 
   132             per_page = 3,
 | 
| 
bsw/jbe@19
 | 
   133             no_sort = true,
 | 
| 
bsw/jbe@19
 | 
   134           }
 | 
| 
bsw/jbe@19
 | 
   135         }
 | 
| 
bsw/jbe@19
 | 
   136       end }
 | 
| 
bsw/jbe@0
 | 
   137     end
 | 
| 
bsw/jbe@19
 | 
   138   }
 | 
| 
bsw/jbe@19
 | 
   139 
 | 
| 
bsw/jbe@19
 | 
   140   if config.user_tab_mode == "accordeon_all_expanded" then
 | 
| 
bsw/jbe@19
 | 
   141     ui.script{ script = 'document.getElementById("' .. head_name .. '").onclick();' }
 | 
| 
bsw/jbe@19
 | 
   142   end
 | 
| 
bsw/jbe@19
 | 
   143 end
 | 
| 
bsw/jbe@19
 | 
   144 --]]
 | 
| 
bsw/jbe@19
 | 
   145 
 | 
| 
bsw/jbe@19
 | 
   146 execute.view{
 | 
| 
bsw/jbe@19
 | 
   147   module = "area",
 | 
| 
bsw/jbe@19
 | 
   148   view = "show_tab",
 | 
| 
bsw/jbe@19
 | 
   149   params = { area = area }
 | 
| 
bsw/jbe@0
 | 
   150 }
 | 
| 
bsw/jbe@0
 | 
   151 
 |