liquid_feedback_frontend
annotate app/main/member/_profile.lua @ 75:733f65c0c0a0
Bugfixes, feature enhancements, code-cleanup, and major work on API
Details:
- API
-- Allow relation name to be passed to helper function util.autoapi{...}
-- Added area API
-- Bugfixes in API
--- Correctly return initiatives (bug #162)
--- Correctly process "id" parameter for initiative API
--- Bugfix related to "state" parameter (bug #165)
--- Changed constant "discussion" to "accepted" (in model/issue.lua, used by API)
--- Fixed JSON encoding in auto_api (bug #181)
--- Ignore list filter "voted" in case of public access
--- Enable access to API without session
- Work on RSS feed (incomplete yet)
- Other bugfixes
-- Handle empty browser identification string
-- Handle invalid date in member/update.lua (bugs #24 #109 #115 #136)
-- Better handle errors while converting uploaded images. (bug #79 +5 duplicates)
-- Don't display revoked initiatives in list of new drafts (bug #134)
-- Fixed syntax error in app/main/member/_action/update_name.lua throwing unexpected error, when new name was too short
-- Do not display refresh support button for revoked initiatives
-- Repaired issue search (bug #150)
-- Fixed typos in german translation files
--- "initi(i)erte"
--- "Er(g)eignisse" (bug #161)
- Code cleanup
-- Removed deprecated motd files locale/motd/de.txt and locale/motd/de_public.txt
-- Removed redundant code in app/main/index/_updated_drafts.lua
- New features and (optical) enhancements
-- Support change of notify email; notification of not approved address added to start page
-- Settings dialog splitted into single pages
-- Mark deactivated members
-- Calendar for birthday selection in profile
-- Policy list public readable when public access is enabled
Details:
- API
-- Allow relation name to be passed to helper function util.autoapi{...}
-- Added area API
-- Bugfixes in API
--- Correctly return initiatives (bug #162)
--- Correctly process "id" parameter for initiative API
--- Bugfix related to "state" parameter (bug #165)
--- Changed constant "discussion" to "accepted" (in model/issue.lua, used by API)
--- Fixed JSON encoding in auto_api (bug #181)
--- Ignore list filter "voted" in case of public access
--- Enable access to API without session
- Work on RSS feed (incomplete yet)
- Other bugfixes
-- Handle empty browser identification string
-- Handle invalid date in member/update.lua (bugs #24 #109 #115 #136)
-- Better handle errors while converting uploaded images. (bug #79 +5 duplicates)
-- Don't display revoked initiatives in list of new drafts (bug #134)
-- Fixed syntax error in app/main/member/_action/update_name.lua throwing unexpected error, when new name was too short
-- Do not display refresh support button for revoked initiatives
-- Repaired issue search (bug #150)
-- Fixed typos in german translation files
--- "initi(i)erte"
--- "Er(g)eignisse" (bug #161)
- Code cleanup
-- Removed deprecated motd files locale/motd/de.txt and locale/motd/de_public.txt
-- Removed redundant code in app/main/index/_updated_drafts.lua
- New features and (optical) enhancements
-- Support change of notify email; notification of not approved address added to start page
-- Settings dialog splitted into single pages
-- Mark deactivated members
-- Calendar for birthday selection in profile
-- Policy list public readable when public access is enabled
| author | bsw |
|---|---|
| date | Thu Jul 08 18:44:02 2010 +0200 (2010-07-08) |
| parents | 00d1004545f1 |
| children | 0607056cff72 |
| rev | line source |
|---|---|
| bsw/jbe@19 | 1 local member = param.get("member", "table") |
| bsw/jbe@19 | 2 |
| bsw/jbe@19 | 3 if not member then |
| bsw/jbe@19 | 4 local member_id = param.get("member_id", atom.integer) |
| bsw/jbe@19 | 5 if member_id then |
| bsw/jbe@19 | 6 member = Member:by_id(member_id) |
| bsw/jbe@19 | 7 end |
| bsw/jbe@19 | 8 end |
| bsw/jbe@19 | 9 |
| bsw/jbe@19 | 10 |
| bsw/jbe@19 | 11 ui.form{ |
| bsw/jbe@19 | 12 attr = { class = "member vertical" }, |
| bsw/jbe@19 | 13 record = member, |
| bsw/jbe@19 | 14 readonly = true, |
| bsw/jbe@19 | 15 content = function() |
| bsw/jbe@19 | 16 |
| bsw/jbe@19 | 17 ui.container{ |
| bsw/jbe@19 | 18 attr = { class = "right" }, |
| bsw/jbe@19 | 19 content = function() |
| bsw/jbe@19 | 20 |
| bsw/jbe@19 | 21 execute.view{ |
| bsw/jbe@19 | 22 module = "member_image", |
| bsw/jbe@19 | 23 view = "_show", |
| bsw/jbe@19 | 24 params = { |
| bsw/jbe@19 | 25 member = member, |
| bsw/jbe@19 | 26 image_type = "photo" |
| bsw/jbe@19 | 27 } |
| bsw/jbe@19 | 28 } |
| bsw/jbe@19 | 29 |
| bsw/jbe@19 | 30 ui.container{ |
| bsw/jbe@19 | 31 attr = { class = "contact_data" }, |
| bsw/jbe@19 | 32 content = function() |
| bsw/jbe@19 | 33 end |
| bsw/jbe@19 | 34 } |
| bsw/jbe@19 | 35 |
| bsw/jbe@19 | 36 end |
| bsw/jbe@19 | 37 } |
| bsw/jbe@19 | 38 |
| bsw/jbe@19 | 39 if member.admin then |
| bsw/jbe@19 | 40 ui.field.boolean{ label = _"Admin?", name = "admin" } |
| bsw/jbe@19 | 41 end |
| bsw/jbe@19 | 42 if member.locked then |
| bsw/jbe@19 | 43 ui.field.boolean{ label = _"Locked?", name = "locked" } |
| bsw/jbe@19 | 44 end |
| bsw/jbe@19 | 45 if member.ident_number then |
| bsw/jbe@19 | 46 ui.field.text{ label = _"Ident number", name = "ident_number" } |
| bsw/jbe@19 | 47 end |
| bsw/jbe@19 | 48 ui.field.text{ label = _"Name", name = "name" } |
| bsw/jbe@19 | 49 |
| bsw/jbe@19 | 50 if member.realname and #member.realname > 0 then |
| bsw/jbe@19 | 51 ui.field.text{ label = _"Real name", name = "realname" } |
| bsw/jbe@19 | 52 end |
| bsw/jbe@19 | 53 if member.email and #member.email > 0 then |
| bsw/jbe@19 | 54 ui.field.text{ label = _"email", name = "email" } |
| bsw/jbe@19 | 55 end |
| bsw/jbe@19 | 56 if member.xmpp_address and #member.xmpp_address > 0 then |
| bsw/jbe@19 | 57 ui.field.text{ label = _"xmpp", name = "xmpp_address" } |
| bsw/jbe@19 | 58 end |
| bsw/jbe@19 | 59 if member.website and #member.website > 0 then |
| bsw/jbe@19 | 60 ui.field.text{ label = _"Website", name = "website" } |
| bsw/jbe@19 | 61 end |
| bsw/jbe@19 | 62 if member.phone and #member.phone > 0 then |
| bsw/jbe@19 | 63 ui.field.text{ label = _"Phone", name = "phone" } |
| bsw/jbe@19 | 64 end |
| bsw/jbe@19 | 65 if member.mobile_phone and #member.mobile_phone > 0 then |
| bsw/jbe@19 | 66 ui.field.text{ label = _"Mobile phone", name = "mobile_phone" } |
| bsw/jbe@19 | 67 end |
| bsw/jbe@19 | 68 if member.address and #member.address > 0 then |
| bsw/jbe@19 | 69 ui.container{ |
| bsw/jbe@19 | 70 content = function() |
| bsw/jbe@19 | 71 ui.tag{ |
| bsw/jbe@19 | 72 tag = "label", |
| bsw/jbe@19 | 73 attr = { class = "ui_field_label" }, |
| bsw/jbe@19 | 74 content = _"Address" |
| bsw/jbe@19 | 75 } |
| bsw/jbe@19 | 76 ui.tag{ |
| bsw/jbe@19 | 77 tag = "span", |
| bsw/jbe@19 | 78 content = function() |
| bsw/jbe@19 | 79 slot.put(encode.html_newlines(encode.html(member.address))) |
| bsw/jbe@19 | 80 end |
| bsw/jbe@19 | 81 } |
| bsw/jbe@19 | 82 end |
| bsw/jbe@19 | 83 } |
| bsw/jbe@19 | 84 end |
| bsw/jbe@19 | 85 if member.profession and #member.profession > 0 then |
| bsw/jbe@19 | 86 ui.field.text{ label = _"Profession", name = "profession" } |
| bsw/jbe@19 | 87 end |
| bsw/jbe@19 | 88 if member.birthday and #member.birthday > 0 then |
| bsw/jbe@19 | 89 ui.field.text{ label = _"Birthday", name = "birthday" } |
| bsw/jbe@19 | 90 end |
| bsw/jbe@19 | 91 if member.organizational_unit and #member.organizational_unit > 0 then |
| bsw/jbe@19 | 92 ui.field.text{ label = _"Organizational unit", name = "organizational_unit" } |
| bsw/jbe@19 | 93 end |
| bsw/jbe@19 | 94 if member.internal_posts and #member.internal_posts > 0 then |
| bsw/jbe@19 | 95 ui.field.text{ label = _"Internal posts", name = "internal_posts" } |
| bsw/jbe@19 | 96 end |
| bsw/jbe@19 | 97 if member.external_memberships and #member.external_memberships > 0 then |
| bsw/jbe@19 | 98 ui.field.text{ label = _"Memberships", name = "external_memberships", multiline = true } |
| bsw/jbe@19 | 99 end |
| bsw/jbe@19 | 100 if member.external_posts and #member.external_posts > 0 then |
| bsw/jbe@19 | 101 ui.field.text{ label = _"Posts", name = "external_posts", multiline = true } |
| bsw/jbe@19 | 102 end |
| bsw/jbe@19 | 103 slot.put('<br style="clear: right;" />') |
| bsw/jbe@19 | 104 |
| bsw/jbe@19 | 105 end |
| bsw/jbe@19 | 106 } |
| bsw/jbe@19 | 107 if member.statement and #member.statement > 0 then |
| bsw/jbe@19 | 108 ui.container{ |
| bsw/jbe@19 | 109 attr = { class = "member_statement wiki" }, |
| bsw/jbe@19 | 110 content = function() |
| bsw/jbe@19 | 111 slot.put(format.wiki_text(member.statement)) |
| bsw/jbe@19 | 112 end |
| bsw/jbe@19 | 113 } |
| bsw/jbe@19 | 114 end |