bsw/jbe@19: local issue bsw/jbe@19: if request.get_json_request_slots() then bsw/jbe@19: issue = Issue:by_id(param.get("issue_id")) bsw/jbe@19: else bsw/jbe@19: issue = param.get("issue", "table") bsw/jbe@19: end bsw/jbe@19: bsw/jbe@19: local interested_members_selector = issue:get_reference_selector("interested_members_snapshot") bsw/jbe@19: :join("issue", nil, "issue.id = direct_interest_snapshot.issue_id") bsw/jbe@19: :add_field("direct_interest_snapshot.weight") bsw/jbe@19: :add_where("direct_interest_snapshot.event = issue.latest_snapshot_event") bsw/jbe@19: bsw/jbe@19: local delegations_selector = issue:get_reference_selector("delegations") bsw/jbe@19: bsw@51: local tabs = { bsw/jbe@19: module = "issue", bsw/jbe@19: view = "show_tab", bsw/jbe@19: static_params = { issue_id = issue.id }, bsw@51: } bsw@51: bsw@527: if app.session.member_id or config.public_access == "full" then bsw@51: tabs[#tabs+1] = bsw@51: { bsw@51: name = "interested_members", bsw@525: label = _"Interested" .. " (" .. tostring(interested_members_selector:count()) .. ")" , bsw@51: module = "member", bsw@51: view = "_list", bsw@51: params = { bsw@51: issue = issue, bsw@51: members_selector = interested_members_selector bsw@51: } bsw/jbe@19: } bsw@51: bsw@51: tabs[#tabs+1] = bsw@51: { bsw@51: name = "delegations", bsw@51: label = _"Delegations" .. " (" .. tostring(delegations_selector:count()) .. ")" , bsw@51: module = "delegation", bsw@51: view = "_list", bsw@51: params = { delegations_selector = delegations_selector } bsw@51: } bsw@51: end bsw@51: bsw@51: tabs[#tabs+1] = bsw/jbe@19: { bsw/jbe@19: name = "details", bsw/jbe@19: label = _"Details", bsw/jbe@19: module = "issue", bsw/jbe@19: view = "_details", bsw/jbe@19: params = { issue = issue } bsw@51: } bsw@525: bsw@527: if config.etherpad and app.session.member_id then bsw@525: tabs[#tabs+1] = bsw@525: { bsw@525: name = "pad", bsw@525: label = _"Pad", bsw@525: module = "issue", bsw@525: view = "_pad", bsw@525: params = { issue = issue } bsw@525: } bsw@525: end bsw@51: bsw@51: ui.tabs(tabs) bsw/jbe@19: bsw/jbe@19: