liquid_feedback_frontend
view app/main/member/_show.lua @ 9:0ee1e0c42d4c
Version beta5
Minor security fix: Added missing security filter for admin section. Reading of member listing including login names was possible for all users. Write access has not been possible though.
Changing of name and login is possible while a history of these changes is written and accessible by all users.
Statistics shown in area list
Trimming of user input also converts multiple whitespaces to single space character.
Minor security fix: Added missing security filter for admin section. Reading of member listing including login names was possible for all users. Write access has not been possible though.
Changing of name and login is possible while a history of these changes is written and accessible by all users.
Statistics shown in area list
Trimming of user input also converts multiple whitespaces to single space character.
author | bsw |
---|---|
date | Mon Jan 04 12:00:00 2010 +0100 (2010-01-04) |
parents | 80c215dbf076 |
children | 72c5e0ee7c98 |
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") }
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 }