rev |
line source |
bsw@525
|
1 local member = param.get("member", "table")
|
bsw@525
|
2
|
bsw@525
|
3 local tabs = {
|
bsw/jbe@19
|
4 module = "member",
|
bsw/jbe@19
|
5 view = "show_tab",
|
bsw@525
|
6 static_params = {
|
bsw@558
|
7 member_id = member.id
|
bsw/jbe@19
|
8 }
|
bsw@525
|
9 }
|
bsw@525
|
10
|
bsw@558
|
11 tabs[#tabs+1] = {
|
bsw@558
|
12 name = "profile",
|
bsw@558
|
13 label = _"Profile",
|
bsw@558
|
14 icon = { static = "icons/16/application_form.png" },
|
bsw@558
|
15 module = "member",
|
bsw@558
|
16 view = "_profile",
|
bsw@558
|
17 params = { member = member },
|
bsw@558
|
18 }
|
bsw@525
|
19
|
bsw@620
|
20 --[[
|
bsw@525
|
21 local areas_selector = member:get_reference_selector("areas")
|
bsw@525
|
22 tabs[#tabs+1] = {
|
bsw@525
|
23 name = "areas",
|
bsw@525
|
24 label = _"Units",
|
bsw@525
|
25 icon = { static = "icons/16/package.png" },
|
bsw@594
|
26 module = "index",
|
bsw@594
|
27 view = "_member_home",
|
bsw@558
|
28 params = { areas_selector = areas_selector, member = member, for_member = true },
|
bsw@525
|
29 }
|
bsw@620
|
30 --]]
|
bsw@525
|
31
|
bsw@558
|
32 tabs[#tabs+1] = {
|
bsw@558
|
33 name = "timeline",
|
bsw@602
|
34 label = _"Latest events",
|
bsw@558
|
35 module = "event",
|
bsw@558
|
36 view = "_list",
|
bsw@558
|
37 params = { for_member = member }
|
bsw@558
|
38 }
|
bsw@525
|
39
|
bsw@525
|
40 tabs[#tabs+1] = {
|
bsw@525
|
41 name = "open",
|
bsw@525
|
42 label = _"Open issues",
|
bsw@525
|
43 module = "issue",
|
bsw@525
|
44 view = "_list",
|
bsw@525
|
45 link_params = {
|
bsw@558
|
46 filter_interest = "issue",
|
bsw@525
|
47 },
|
bsw@525
|
48 params = {
|
bsw@525
|
49 for_state = "open",
|
bsw@558
|
50 for_member = member,
|
bsw@525
|
51 issues_selector = Issue:new_selector()
|
bsw@525
|
52 :add_where("issue.closed ISNULL")
|
bsw@525
|
53 :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@525
|
54 }
|
bsw@525
|
55 }
|
bsw@525
|
56
|
bsw@525
|
57 tabs[#tabs+1] = {
|
bsw@525
|
58 name = "closed",
|
bsw@525
|
59 label = _"Closed issues",
|
bsw@525
|
60 module = "issue",
|
bsw@525
|
61 view = "_list",
|
bsw@525
|
62 link_params = {
|
bsw@558
|
63 filter_interest = "issue",
|
bsw@525
|
64 },
|
bsw@525
|
65 params = {
|
bsw@525
|
66 for_state = "closed",
|
bsw@558
|
67 for_member = member,
|
bsw@525
|
68 issues_selector = Issue:new_selector()
|
bsw@525
|
69 :add_where("issue.closed NOTNULL")
|
bsw@525
|
70 :add_order_by("issue.closed DESC")
|
bsw@525
|
71
|
bsw@525
|
72 }
|
bsw@525
|
73 }
|
bsw@525
|
74
|
bsw@525
|
75
|
bsw@558
|
76 local outgoing_delegations_selector = member:get_reference_selector("outgoing_delegations")
|
bsw@558
|
77 :left_join("issue", "_member_showtab_issue", "_member_showtab_issue.id = delegation.issue_id")
|
bsw@558
|
78 :add_where("_member_showtab_issue.closed ISNULL")
|
bsw@558
|
79 tabs[#tabs+1] = {
|
bsw@558
|
80 name = "outgoing_delegations",
|
bsw@558
|
81 label = _"Outgoing delegations" .. " (" .. tostring(outgoing_delegations_selector:count()) .. ")",
|
bsw@558
|
82 icon = { static = "icons/16/table_go.png" },
|
bsw@558
|
83 module = "delegation",
|
bsw@558
|
84 view = "_list",
|
bsw@558
|
85 params = { delegations_selector = outgoing_delegations_selector, outgoing = true },
|
bsw@558
|
86 }
|
bsw@525
|
87
|
bsw@558
|
88 local incoming_delegations_selector = member:get_reference_selector("incoming_delegations")
|
bsw@558
|
89 :left_join("issue", "_member_showtab_issue", "_member_showtab_issue.id = delegation.issue_id")
|
bsw@558
|
90 :add_where("_member_showtab_issue.closed ISNULL")
|
bsw@558
|
91 tabs[#tabs+1] = {
|
bsw@558
|
92 name = "incoming_delegations",
|
bsw@558
|
93 label = _"Incoming delegations" .. " (" .. tostring(incoming_delegations_selector:count()) .. ")",
|
bsw@558
|
94 icon = { static = "icons/16/table_go.png" },
|
bsw@558
|
95 module = "delegation",
|
bsw@558
|
96 view = "_list",
|
bsw@558
|
97 params = { delegations_selector = incoming_delegations_selector, incoming = true },
|
bsw@558
|
98 }
|
bsw@525
|
99
|
bsw@558
|
100 local contacts_selector = member:get_reference_selector("saved_members"):add_where("public")
|
bsw@558
|
101 tabs[#tabs+1] = {
|
bsw@558
|
102 name = "contacts",
|
bsw@558
|
103 label = _"Contacts" .. " (" .. tostring(contacts_selector:count()) .. ")",
|
bsw@558
|
104 icon = { static = "icons/16/book_edit.png" },
|
bsw@558
|
105 module = "member",
|
bsw@558
|
106 view = "_list",
|
bsw@558
|
107 params = { members_selector = contacts_selector },
|
bsw@558
|
108 }
|
bsw@525
|
109
|
bsw@525
|
110 ui.tabs(tabs)
|