bsw@558: bsw@558: local tabs = { bsw@558: module = "index", bsw@558: view = "index" bsw@558: } bsw@558: bsw@558: tabs[#tabs+1] = { bsw@558: name = "areas", bsw@558: label = _"Home", bsw@558: icon = { static = "icons/16/package.png" }, bsw@558: module = "index", bsw@558: view = "_member_home", bsw@570: params = { member = app.session.member } bsw@558: } bsw@558: bsw@558: tabs[#tabs+1] = { bsw@558: name = "timeline", bsw@558: label = _"Latest events", bsw@851: module = "event", bsw@851: view = "_list", bsw@558: params = { } bsw@558: } bsw@558: bsw@558: bsw@558: tabs[#tabs+1] = { bsw@558: name = "open", bsw@558: label = _"Open issues", bsw@558: module = "issue", bsw@558: view = "_list", bsw@558: params = { bsw@558: for_state = "open", bsw@558: issues_selector = Issue:new_selector() bsw@558: :add_where("issue.closed ISNULL") bsw@558: :add_order_by("coalesce(issue.fully_frozen + issue.voting_time, issue.half_frozen + issue.verification_time, issue.accepted + issue.discussion_time, issue.created + issue.admission_time) - now()") bsw@558: } bsw@558: } bsw@558: bsw@558: tabs[#tabs+1] = { bsw@558: name = "closed", bsw@558: label = _"Closed issues", bsw@558: module = "issue", bsw@558: view = "_list", bsw@558: params = { bsw@558: for_state = "closed", bsw@558: issues_selector = Issue:new_selector() bsw@558: :add_where("issue.closed NOTNULL") bsw@558: :add_order_by("issue.closed DESC") bsw@558: bsw@558: } bsw@558: } bsw@558: bsw@558: tabs[#tabs+1] = { bsw@558: name = "members", bsw@558: label = _"Members", bsw@558: module = 'member', bsw@558: view = '_list', bsw@610: params = { members_selector = Member:new_selector():add_where("active") } bsw@558: } bsw@558: bsw@619: if not param.get("tab") then bsw@619: execute.view{ bsw@619: module = "index", view = "_notifications" bsw@619: } bsw@619: end bsw@558: bsw@558: ui.tabs(tabs)