| 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)
 |