liquid_feedback_frontend
view app/main/member/_list.lua @ 170:da885b2dda29
remove author_id from suggestion until private api is done
| author | Daniel Poelzleithner <poelzi@poelzi.org> | 
|---|---|
| date | Sat Oct 09 22:13:32 2010 +0200 (2010-10-09) | 
| parents | 00d1004545f1 | 
| children | b9c8503feff7 | 
 line source
     1 local members_selector = param.get("members_selector", "table")
     2 local initiative = param.get("initiative", "table")
     3 local issue = param.get("issue", "table")
     4 local trustee = param.get("trustee", "table")
     5 local initiator = param.get("initiator", "table")
     7 ui.add_partial_param_names{ "member_list" }
     9 local filter = {
    10   label = _"Order by",
    11   name = "member_list",
    12   {
    13     name = "name",
    14     label = _"A-Z",
    15     selector_modifier = function(selector) selector:add_order_by("name") end
    16   },
    17   {
    18     name = "name_desc",
    19     label = _"Z-A",
    20     selector_modifier = function(selector) selector:add_order_by("name DESC") end
    21   },
    22   {
    23     name = "newest",
    24     label = _"Newest",
    25     selector_modifier = function(selector) selector:add_order_by("created DESC, id DESC") end
    26   },
    27   {
    28     name = "oldest",
    29     label = _"Oldest",
    30     selector_modifier = function(selector) selector:add_order_by("created, id") end
    31   },
    32 }
    34 if initiative then
    35   filter[#filter] = {
    36     name = "delegations",
    37     label = _"Delegations",
    38     selector_modifier = function(selector) selector:add_order_by("weight DESC") end
    39   }
    40 end
    42 ui.filters{
    43   label = _"Change order",
    44   selector = members_selector,
    45   filter,
    46   content = function()
    47     ui.paginate{
    48       selector = members_selector,
    49       per_page = 100,
    50       content = function() 
    51         ui.container{
    52           attr = { class = "member_list" },
    53           content = function()
    54             local members = members_selector:exec()
    55             local columns = { 
    56               {
    57                 label = _"Name",
    58                 content = function(member)
    59                   ui.link{
    60                     module = "member",
    61                     view = "show",
    62                     id = member.id,
    63                     content = function()
    64                       ui.image{
    65                         attr = { width = 48, height = 48 },
    66                         module    = "member",
    67                         view      = "avatar",
    68                         id        = member.id,
    69                         extension = "jpg"
    70                       }
    71                     end
    72                   }
    73                 end
    74               },
    75               {
    76                 label = _"Name",
    77                 content = function(member)
    78                   ui.link{
    79                     module = "member",
    80                     view = "show",
    81                     id = member.id,
    82                     content = member.name
    83                   }
    84                   if member.admin then
    85                     ui.image{
    86                       attr = { 
    87                         alt   = _"Administrator",
    88                         title = _"Administrator"
    89                       },
    90                       static = "icons/16/cog.png"
    91                     }
    92                   end
    93                   -- TODO performance
    94                   local contact = Contact:by_pk(app.session.member.id, member.id)
    95                   if contact then
    96                     ui.image{
    97                       attr = { 
    98                         alt   = _"Saved as contact",
    99                         title = _"Saved as contact"
   100                       },
   101                       static = "icons/16/book_edit.png"
   102                     }
   103                   end
   104                 end
   105               }
   106             }
   108             if initiative then
   109               columns[#columns+1] = {
   110                 label = _"Delegations",
   111                 field_attr = { style = "text-align: right;" },
   112                 content = function(member)
   113                   if member.weight > 1 then
   114                     ui.link{
   115                       content = member.weight,
   116                       module = "support",
   117                       view = "show_incoming",
   118                       params = { member_id = member.id, initiative_id = initiative.id }
   119                     }
   120                   end
   121                 end
   122               }
   123             end
   125             for i, member in ipairs(members) do
   126               execute.view{
   127                 module = "member",
   128                 view = "_show_thumb",
   129                 params = {
   130                   member = member,
   131                   initiative = initiative,
   132                   issue = issue,
   133                   trustee = trustee,
   134                   initiator = initiator
   135                 }
   136               }
   137             end
   139           end
   140         }
   141         slot.put('<br style="clear: left;" />')
   142       end
   143     }
   144   end
   145 }
