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 |