liquid_feedback_frontend
annotate app/main/member/_show.lua @ 11:77d58efe99fd
Version beta7
Important security fixes:
- Added missing HTML encoding to postal address of member
- Link to discussion URL only if it starts with http(s)://
Other bugfixes:
- Fixed wrong display of 2nd level delegating voters for an initiative
- Do not display invited initiators as initiators while voting
- Added missing translation
New features:
- Public message of the day
- Both direct and indirect supporter count is shown in tab heads
- Support shown in initiative lists
Language chooser at the login page has been added (again)
Important security fixes:
- Added missing HTML encoding to postal address of member
- Link to discussion URL only if it starts with http(s)://
Other bugfixes:
- Fixed wrong display of 2nd level delegating voters for an initiative
- Do not display invited initiators as initiators while voting
- Added missing translation
New features:
- Public message of the day
- Both direct and indirect supporter count is shown in tab heads
- Support shown in initiative lists
Language chooser at the login page has been added (again)
| author | bsw | 
|---|---|
| date | Fri Jan 22 12:00:00 2010 +0100 (2010-01-22) | 
| parents | 72c5e0ee7c98 | 
| children | 60bed92b7434 | 
| rev | line source | 
|---|---|
| bsw/jbe@0 | 1 local member = param.get("member", "table") | 
| bsw/jbe@0 | 2 | 
| bsw/jbe@4 | 3 ui.tabs{ | 
| bsw/jbe@4 | 4 { | 
| bsw/jbe@4 | 5 name = "profile", | 
| bsw/jbe@4 | 6 label = _"Profile", | 
| bsw/jbe@4 | 7 content = function() | 
| bsw/jbe@4 | 8 ui.form{ | 
| bsw/jbe@4 | 9 attr = { class = "member vertical" }, | 
| bsw/jbe@4 | 10 record = member, | 
| bsw/jbe@4 | 11 readonly = true, | 
| bsw/jbe@4 | 12 content = function() | 
| bsw/jbe@4 | 13 | 
| bsw/jbe@4 | 14 ui.container{ | 
| bsw/jbe@4 | 15 attr = { class = "right" }, | 
| bsw/jbe@4 | 16 content = function() | 
| bsw/jbe@4 | 17 | 
| bsw/jbe@4 | 18 execute.view{ | 
| bsw/jbe@4 | 19 module = "member_image", | 
| bsw/jbe@4 | 20 view = "_show", | 
| bsw/jbe@4 | 21 params = { | 
| bsw/jbe@4 | 22 member = member, | 
| bsw/jbe@4 | 23 image_type = "photo" | 
| bsw/jbe@4 | 24 } | 
| bsw/jbe@4 | 25 } | 
| bsw/jbe@4 | 26 | 
| bsw@9 | 27 ui.container{ | 
| bsw@9 | 28 attr = { class = "contact_data" }, | 
| bsw@9 | 29 content = function() | 
| bsw@9 | 30 end | 
| bsw@9 | 31 } | 
| bsw/jbe@4 | 32 | 
| bsw/jbe@4 | 33 end | 
| bsw/jbe@4 | 34 } | 
| bsw/jbe@4 | 35 | 
| bsw/jbe@4 | 36 if member.admin then | 
| bsw/jbe@4 | 37 ui.field.boolean{ label = _"Admin?", name = "admin" } | 
| bsw/jbe@4 | 38 end | 
| bsw/jbe@4 | 39 if member.locked then | 
| bsw/jbe@4 | 40 ui.field.boolean{ label = _"Locked?", name = "locked" } | 
| bsw/jbe@4 | 41 end | 
| bsw/jbe@4 | 42 if member.ident_number then | 
| bsw/jbe@4 | 43 ui.field.text{ label = _"Ident number", name = "ident_number" } | 
| bsw/jbe@4 | 44 end | 
| bsw/jbe@4 | 45 ui.field.text{ label = _"Name", name = "name" } | 
| bsw/jbe@4 | 46 | 
| bsw/jbe@4 | 47 if member.realname and #member.realname > 0 then | 
| bsw/jbe@4 | 48 ui.field.text{ label = _"Real name", name = "realname" } | 
| bsw/jbe@4 | 49 end | 
| bsw/jbe@4 | 50 if member.email and #member.email > 0 then | 
| bsw/jbe@4 | 51 ui.field.text{ label = _"email", name = "email" } | 
| bsw/jbe@4 | 52 end | 
| bsw/jbe@4 | 53 if member.xmpp_address and #member.xmpp_address > 0 then | 
| bsw/jbe@4 | 54 ui.field.text{ label = _"xmpp", name = "xmpp_address" } | 
| bsw/jbe@4 | 55 end | 
| bsw/jbe@4 | 56 if member.website and #member.website > 0 then | 
| bsw/jbe@4 | 57 ui.field.text{ label = _"Website", name = "website" } | 
| bsw/jbe@4 | 58 end | 
| bsw/jbe@4 | 59 if member.phone and #member.phone > 0 then | 
| bsw/jbe@4 | 60 ui.field.text{ label = _"Phone", name = "phone" } | 
| bsw/jbe@4 | 61 end | 
| bsw/jbe@4 | 62 if member.mobile_phone and #member.mobile_phone > 0 then | 
| bsw/jbe@4 | 63 ui.field.text{ label = _"Mobile phone", name = "mobile_phone" } | 
| bsw/jbe@4 | 64 end | 
| bsw/jbe@4 | 65 if member.address and #member.address > 0 then | 
| bsw/jbe@4 | 66 ui.container{ | 
| bsw/jbe@4 | 67 content = function() | 
| bsw/jbe@4 | 68 ui.tag{ | 
| bsw/jbe@4 | 69 tag = "label", | 
| bsw/jbe@4 | 70 attr = { class = "ui_field_label" }, | 
| bsw/jbe@4 | 71 content = _"Address" | 
| bsw/jbe@4 | 72 } | 
| bsw/jbe@4 | 73 ui.tag{ | 
| bsw/jbe@4 | 74 tag = "span", | 
| bsw/jbe@4 | 75 content = function() | 
| bsw@11 | 76 slot.put(encode.html_newlines(html.encode(member.address))) | 
| bsw/jbe@4 | 77 end | 
| bsw/jbe@4 | 78 } | 
| bsw/jbe@4 | 79 end | 
| bsw/jbe@4 | 80 } | 
| bsw/jbe@4 | 81 end | 
| bsw/jbe@4 | 82 if member.profession and #member.profession > 0 then | 
| bsw/jbe@4 | 83 ui.field.text{ label = _"Profession", name = "profession" } | 
| bsw/jbe@4 | 84 end | 
| bsw/jbe@4 | 85 if member.birthday and #member.birthday > 0 then | 
| bsw/jbe@4 | 86 ui.field.text{ label = _"Birthday", name = "birthday" } | 
| bsw/jbe@4 | 87 end | 
| bsw/jbe@4 | 88 if member.organizational_unit and #member.organizational_unit > 0 then | 
| bsw/jbe@4 | 89 ui.field.text{ label = _"Organizational unit", name = "organizational_unit" } | 
| bsw/jbe@4 | 90 end | 
| bsw/jbe@4 | 91 if member.internal_posts and #member.internal_posts > 0 then | 
| bsw/jbe@4 | 92 ui.field.text{ label = _"Internal posts", name = "internal_posts" } | 
| bsw/jbe@4 | 93 end | 
| bsw/jbe@4 | 94 if member.external_memberships and #member.external_memberships > 0 then | 
| bsw/jbe@4 | 95 ui.field.text{ label = _"Memberships", name = "external_memberships", multiline = true } | 
| bsw/jbe@4 | 96 end | 
| bsw/jbe@4 | 97 if member.external_posts and #member.external_posts > 0 then | 
| bsw/jbe@4 | 98 ui.field.text{ label = _"Posts", name = "external_posts", multiline = true } | 
| bsw/jbe@4 | 99 end | 
| bsw/jbe@4 | 100 slot.put('<br style="clear: right;" />') | 
| bsw/jbe@4 | 101 | 
| bsw/jbe@4 | 102 end | 
| bsw/jbe@4 | 103 } | 
| bsw/jbe@4 | 104 if member.statement and #member.statement > 0 then | 
| bsw/jbe@4 | 105 ui.container{ | 
| bsw/jbe@4 | 106 attr = { class = "member_statement wiki" }, | 
| bsw/jbe@4 | 107 content = function() | 
| bsw/jbe@4 | 108 slot.put(format.wiki_text(member.statement)) | 
| bsw/jbe@4 | 109 end | 
| bsw/jbe@4 | 110 } | 
| bsw/jbe@4 | 111 end | 
| bsw@3 | 112 end | 
| bsw/jbe@4 | 113 }, | 
| bsw/jbe@0 | 114 { | 
| bsw/jbe@0 | 115 name = "areas", | 
| bsw/jbe@0 | 116 label = _"Areas", | 
| bsw/jbe@0 | 117 content = function() | 
| bsw/jbe@0 | 118 execute.view{ | 
| bsw/jbe@0 | 119 module = "area", | 
| bsw/jbe@0 | 120 view = "_list", | 
| bsw/jbe@0 | 121 params = { areas_selector = member:get_reference_selector("areas") } | 
| bsw/jbe@0 | 122 } | 
| bsw/jbe@0 | 123 end | 
| bsw/jbe@0 | 124 }, | 
| bsw/jbe@0 | 125 { | 
| bsw/jbe@0 | 126 name = "issues", | 
| bsw/jbe@0 | 127 label = _"Issues", | 
| bsw/jbe@0 | 128 content = function() | 
| bsw/jbe@0 | 129 execute.view{ | 
| bsw/jbe@0 | 130 module = "issue", | 
| bsw/jbe@0 | 131 view = "_list", | 
| bsw/jbe@0 | 132 params = { issues_selector = member:get_reference_selector("issues") } | 
| bsw/jbe@0 | 133 } | 
| bsw/jbe@0 | 134 end | 
| bsw/jbe@0 | 135 }, | 
| bsw/jbe@0 | 136 { | 
| bsw/jbe@4 | 137 name = "supported_initiatives", | 
| bsw/jbe@4 | 138 label = _"Supported initiatives", | 
| bsw/jbe@0 | 139 content = function() | 
| bsw/jbe@0 | 140 execute.view{ | 
| bsw/jbe@0 | 141 module = "initiative", | 
| bsw/jbe@0 | 142 view = "_list", | 
| bsw/jbe@0 | 143 params = { initiatives_selector = member:get_reference_selector("supported_initiatives") } | 
| bsw/jbe@0 | 144 } | 
| bsw/jbe@0 | 145 end | 
| bsw/jbe@0 | 146 }, | 
| bsw/jbe@0 | 147 { | 
| bsw/jbe@4 | 148 name = "initiatied_initiatives", | 
| bsw/jbe@4 | 149 label = _"Initiated initiatives", | 
| bsw/jbe@4 | 150 content = function() | 
| bsw/jbe@4 | 151 execute.view{ | 
| bsw/jbe@4 | 152 module = "initiative", | 
| bsw/jbe@4 | 153 view = "_list", | 
| bsw@10 | 154 params = { initiatives_selector = member:get_reference_selector("initiated_initiatives"):add_where("initiator.accepted = true") } | 
| bsw/jbe@4 | 155 } | 
| bsw/jbe@4 | 156 end | 
| bsw/jbe@4 | 157 }, | 
| bsw/jbe@4 | 158 { | 
| bsw/jbe@0 | 159 name = "incoming_delegations", | 
| bsw/jbe@0 | 160 label = _"Incoming delegations", | 
| bsw/jbe@0 | 161 content = function() | 
| bsw/jbe@0 | 162 execute.view{ | 
| bsw/jbe@0 | 163 module = "delegation", | 
| bsw/jbe@0 | 164 view = "_list", | 
| bsw@2 | 165 params = { delegations_selector = member:get_reference_selector("incoming_delegations"), incoming = true } | 
| bsw/jbe@0 | 166 } | 
| bsw/jbe@0 | 167 end | 
| bsw/jbe@0 | 168 }, | 
| bsw/jbe@0 | 169 { | 
| bsw/jbe@4 | 170 name = "Outgoing delegations", | 
| bsw/jbe@0 | 171 label = _"Outgoing delegations", | 
| bsw/jbe@0 | 172 content = function() | 
| bsw/jbe@0 | 173 execute.view{ | 
| bsw/jbe@0 | 174 module = "delegation", | 
| bsw/jbe@0 | 175 view = "_list", | 
| bsw@2 | 176 params = { delegations_selector = member:get_reference_selector("outgoing_delegations"), outgoing = true } | 
| bsw/jbe@0 | 177 } | 
| bsw/jbe@0 | 178 end | 
| bsw/jbe@0 | 179 }, | 
| bsw/jbe@0 | 180 { | 
| bsw/jbe@0 | 181 name = "contacts", | 
| bsw/jbe@0 | 182 label = _"Published contacts", | 
| bsw/jbe@0 | 183 content = function() | 
| bsw/jbe@0 | 184 execute.view{ | 
| bsw/jbe@0 | 185 module = "member", | 
| bsw/jbe@0 | 186 view = "_list", | 
| bsw/jbe@0 | 187 params = { members_selector = member:get_reference_selector("saved_members"):add_where("public") } | 
| bsw/jbe@0 | 188 } | 
| bsw/jbe@0 | 189 end | 
| bsw/jbe@0 | 190 }, | 
| bsw/jbe@0 | 191 } |