liquid_feedback_frontend
view app/main/member/_show.lua @ 10:72c5e0ee7c98
Version beta6
Bugfixes:
- Security fix: Every user was able to change the discussion URL of an initiative
- Creation of new issues in areas without default policies is now possible
- Members can now be sorted in different ways
- No error when trying to compare a draft with itself
- Added missing local statement to variable initialization in app/main/delegation/new.lua
- CSS flaw in initiative action bar fixed
New features:
- Possiblity to invite other users to become initiator
- Revokation of initiatives implemented
- Number of suggestions, supporters, etc. is shown on corresponding tabs of initiative view
- Members can now be sorted by account creation (default sorting is "newest first")
- Configuration option to create an automatic discussion link for all issues
- First draft of global timeline feature (not accessible via link yet)
- Custom stylesheet URL for users marked as developers
In area listing the number of closed issues is shown too
Renamed "author" field of initiative to "last author"
Removed wrongly included file app/main/member/_show_thumb.lua.orig in the distribution
Help texts updated
Bugfixes:
- Security fix: Every user was able to change the discussion URL of an initiative
- Creation of new issues in areas without default policies is now possible
- Members can now be sorted in different ways
- No error when trying to compare a draft with itself
- Added missing local statement to variable initialization in app/main/delegation/new.lua
- CSS flaw in initiative action bar fixed
New features:
- Possiblity to invite other users to become initiator
- Revokation of initiatives implemented
- Number of suggestions, supporters, etc. is shown on corresponding tabs of initiative view
- Members can now be sorted by account creation (default sorting is "newest first")
- Configuration option to create an automatic discussion link for all issues
- First draft of global timeline feature (not accessible via link yet)
- Custom stylesheet URL for users marked as developers
In area listing the number of closed issues is shown too
Renamed "author" field of initiative to "last author"
Removed wrongly included file app/main/member/_show_thumb.lua.orig in the distribution
Help texts updated
| author | bsw | 
|---|---|
| date | Sun Jan 10 12:00:00 2010 +0100 (2010-01-10) | 
| parents | 0ee1e0c42d4c | 
| children | 77d58efe99fd | 
 line source
     1 local member = param.get("member", "table")
     3 ui.tabs{
     4   {
     5     name = "profile",
     6     label = _"Profile",
     7     content = function()
     8       ui.form{
     9         attr = { class = "member vertical" },
    10         record = member,
    11         readonly = true,
    12         content = function()
    14           ui.container{
    15             attr = { class = "right" },
    16             content = function()
    18             execute.view{
    19               module = "member_image",
    20               view = "_show",
    21               params = {
    22                 member = member,
    23                 image_type = "photo"
    24               }
    25             }
    27             ui.container{
    28               attr = { class = "contact_data" },
    29               content = function()
    30               end
    31             }
    33             end
    34           }
    36           if member.admin then
    37             ui.field.boolean{ label = _"Admin?",       name = "admin" }
    38           end
    39           if member.locked then
    40             ui.field.boolean{ label = _"Locked?",      name = "locked" }
    41           end
    42           if member.ident_number then
    43             ui.field.text{    label = _"Ident number", name = "ident_number" }
    44           end
    45           ui.field.text{ label = _"Name", name = "name" }
    47           if member.realname and #member.realname > 0 then
    48             ui.field.text{ label = _"Real name", name = "realname" }
    49           end
    50           if member.email and #member.email > 0 then
    51             ui.field.text{ label = _"email", name = "email" }
    52           end
    53           if member.xmpp_address and #member.xmpp_address > 0 then
    54             ui.field.text{ label = _"xmpp", name = "xmpp_address" }
    55           end
    56           if member.website and #member.website > 0 then
    57             ui.field.text{ label = _"Website", name = "website" }
    58           end
    59           if member.phone and #member.phone > 0 then
    60             ui.field.text{ label = _"Phone", name = "phone" }
    61           end
    62           if member.mobile_phone and #member.mobile_phone > 0 then
    63             ui.field.text{ label = _"Mobile phone", name = "mobile_phone" }
    64           end
    65           if member.address and #member.address > 0 then
    66             ui.container{
    67               content = function()
    68                 ui.tag{
    69                   tag = "label",
    70                   attr = { class = "ui_field_label" },
    71                   content = _"Address"
    72                 }
    73                 ui.tag{
    74                   tag = "span",
    75                   content = function()
    76                     slot.put(encode.html_newlines(member.address))
    77                   end
    78                 }
    79               end
    80             }
    81           end
    82           if member.profession and #member.profession > 0 then
    83             ui.field.text{ label = _"Profession", name = "profession" }
    84           end
    85           if member.birthday and #member.birthday > 0 then
    86             ui.field.text{ label = _"Birthday", name = "birthday" }
    87           end
    88           if member.organizational_unit and #member.organizational_unit > 0 then
    89             ui.field.text{ label = _"Organizational unit", name = "organizational_unit" }
    90           end
    91           if member.internal_posts and #member.internal_posts > 0 then
    92             ui.field.text{ label = _"Internal posts", name = "internal_posts" }
    93           end
    94           if member.external_memberships and #member.external_memberships > 0 then
    95             ui.field.text{ label = _"Memberships", name = "external_memberships", multiline = true }
    96           end
    97           if member.external_posts and #member.external_posts > 0 then
    98             ui.field.text{ label = _"Posts", name = "external_posts", multiline = true }
    99           end
   100           slot.put('<br style="clear: right;" />')
   102         end
   103       }
   104       if member.statement and #member.statement > 0 then
   105         ui.container{
   106           attr = { class = "member_statement wiki" },
   107           content = function()
   108             slot.put(format.wiki_text(member.statement))
   109           end
   110         }
   111       end
   112     end
   113   },
   114   {
   115     name = "areas",
   116     label = _"Areas",
   117     content = function()
   118       execute.view{
   119         module = "area",
   120         view = "_list",
   121         params = { areas_selector = member:get_reference_selector("areas") }
   122       }
   123     end
   124   },
   125   {
   126     name = "issues",
   127     label = _"Issues",
   128     content = function()
   129       execute.view{
   130         module = "issue",
   131         view = "_list",
   132         params = { issues_selector = member:get_reference_selector("issues") }
   133       }
   134     end
   135   },
   136   {
   137     name = "supported_initiatives",
   138     label = _"Supported initiatives",
   139     content = function()
   140       execute.view{
   141         module = "initiative",
   142         view = "_list",
   143         params = { initiatives_selector = member:get_reference_selector("supported_initiatives") }
   144       }
   145     end
   146   },
   147   {
   148     name = "initiatied_initiatives",
   149     label = _"Initiated initiatives",
   150     content = function()
   151       execute.view{
   152         module = "initiative",
   153         view = "_list",
   154         params = { initiatives_selector = member:get_reference_selector("initiated_initiatives"):add_where("initiator.accepted = true") }
   155       }
   156     end
   157   },
   158   {
   159     name = "incoming_delegations",
   160     label = _"Incoming delegations",
   161     content = function()
   162       execute.view{
   163         module = "delegation",
   164         view = "_list",
   165         params = { delegations_selector = member:get_reference_selector("incoming_delegations"), incoming = true }
   166       }
   167     end
   168   },
   169   {
   170     name = "Outgoing delegations",
   171     label = _"Outgoing delegations",
   172     content = function()
   173       execute.view{
   174         module = "delegation",
   175         view = "_list",
   176         params = { delegations_selector = member:get_reference_selector("outgoing_delegations"), outgoing = true }
   177       }
   178     end
   179   },
   180   {
   181     name = "contacts",
   182     label = _"Published contacts",
   183     content = function()
   184       execute.view{
   185         module = "member",
   186         view = "_list",
   187         params = { members_selector = member:get_reference_selector("saved_members"):add_where("public") }
   188       }
   189     end
   190   },
   191 }
