| rev | 
   line source | 
| 
bsw/jbe@0
 | 
     1 local issues_selector = param.get("issues_selector", "table")
 | 
| 
bsw@459
 | 
     2 local member = param.get("for_member", "table") or app.session.member
 | 
| 
bsw@459
 | 
     3 local for_member = param.get("for_member", "table")
 | 
| 
bsw@414
 | 
     4 local for_state = param.get("for_state")
 | 
| 
bsw@414
 | 
     5 local for_unit = param.get("for_unit", atom.boolean)
 | 
| 
bsw@414
 | 
     6 local for_area = param.get("for_area", atom.boolean)
 | 
| 
bsw@414
 | 
     7 
 | 
| 
bsw@414
 | 
     8 
 | 
| 
bsw@414
 | 
     9 if for_state == "open" then
 | 
| 
bsw@414
 | 
    10   issues_selector:add_where("issue.closed ISNULL")
 | 
| 
bsw@414
 | 
    11 elseif for_state == "closed" then
 | 
| 
bsw@414
 | 
    12   issues_selector:add_where("issue.closed NOTNULL")
 | 
| 
bsw@414
 | 
    13 end
 | 
| 
bsw/jbe@0
 | 
    14 
 | 
| 
bsw/jbe@19
 | 
    15 ui.add_partial_param_names{
 | 
| 
bsw/jbe@19
 | 
    16   "filter",
 | 
| 
bsw/jbe@19
 | 
    17   "filter_open",
 | 
| 
bsw/jbe@19
 | 
    18   "filter_voting",
 | 
| 
bsw/jbe@19
 | 
    19   "filter_interest",
 | 
| 
bsw/jbe@19
 | 
    20   "issue_list" 
 | 
| 
bsw/jbe@19
 | 
    21 }
 | 
| 
bsw/jbe@0
 | 
    22 
 | 
| 
bsw@414
 | 
    23 local filters = execute.load_chunk{module="issue", chunk="_filters.lua", params = {
 | 
| 
bsw@459
 | 
    24   member = member, for_member = for_member, state = for_state, for_unit = for_unit, for_area = for_area
 | 
| 
bsw@414
 | 
    25 }}
 | 
| 
bsw/jbe@19
 | 
    26 
 | 
| 
bsw/jbe@19
 | 
    27 filters.content = function()
 | 
| 
bsw@275
 | 
    28   ui.paginate{
 | 
| 
bsw@422
 | 
    29     per_page = tonumber(param.get("per_page") or 25),
 | 
| 
bsw/jbe@19
 | 
    30     selector = issues_selector,
 | 
| 
bsw/jbe@19
 | 
    31     content = function()
 | 
| 
bsw/jbe@19
 | 
    32       local highlight_string = param.get("highlight_string", "string")
 | 
| 
bsw@547
 | 
    33       local issues = issues_selector:exec()
 | 
| 
bsw@551
 | 
    34       issues:load_everything_for_member_id(member and member.id or nil)
 | 
| 
bsw@547
 | 
    35 
 | 
| 
bsw@273
 | 
    36       ui.container{ attr = { class = "issues" }, content = function()
 | 
| 
bsw@273
 | 
    37 
 | 
| 
bsw@273
 | 
    38         for i, issue in ipairs(issues) do
 | 
| 
bsw@273
 | 
    39 
 | 
| 
bsw@547
 | 
    40           execute.view{ module = "issue", view = "_show", params = {
 | 
| 
bsw@862
 | 
    41             issue = issue, for_listing = true, for_member = for_member
 | 
| 
bsw@547
 | 
    42           } }
 | 
| 
bsw@525
 | 
    43           
 | 
| 
bsw@273
 | 
    44         end
 | 
| 
bsw@273
 | 
    45       end }
 | 
| 
bsw/jbe@19
 | 
    46     end
 | 
| 
bsw/jbe@19
 | 
    47   }
 | 
| 
bsw/jbe@19
 | 
    48 end
 | 
| 
bsw/jbe@19
 | 
    49 
 | 
| 
bsw@275
 | 
    50 filters.opened = true
 | 
| 
bsw/jbe@19
 | 
    51 filters.selector = issues_selector
 | 
| 
bsw/jbe@19
 | 
    52 
 | 
| 
bsw/jbe@19
 | 
    53 if param.get("no_filter", atom.boolean) then
 | 
| 
bsw/jbe@19
 | 
    54   filters.content()
 | 
| 
bsw/jbe@19
 | 
    55 else
 | 
| 
bsw/jbe@19
 | 
    56   ui.filters(filters)
 | 
| 
bsw/jbe@19
 | 
    57 end
 |