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