liquid_feedback_frontend
annotate app/main/member/_action/update_images.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 | 88ac7798b562 |
children | 5ae3b8d819c5 |
rev | line source |
---|---|
bsw/jbe@4 | 1 local member_id = app.session.member_id |
bsw/jbe@4 | 2 |
bsw/jbe@4 | 3 local deleted = 0 |
bsw/jbe@4 | 4 local updated = 0 |
bsw/jbe@4 | 5 |
bsw/jbe@4 | 6 for i, image_type in ipairs{"avatar", "photo"} do |
bsw/jbe@4 | 7 |
bsw/jbe@4 | 8 local member_image = MemberImage:by_pk(member_id, image_type, false) |
bsw/jbe@4 | 9 local member_image_scaled = MemberImage:by_pk(member_id, image_type, true) |
bsw/jbe@4 | 10 |
bsw/jbe@4 | 11 if param.get(image_type .. "_delete", atom.boolean) then |
bsw/jbe@4 | 12 if member_image then |
bsw/jbe@4 | 13 member_image:destroy() |
bsw/jbe@4 | 14 end |
bsw/jbe@4 | 15 if member_image_scaled then |
bsw/jbe@4 | 16 member_image_scaled:destroy() |
bsw/jbe@4 | 17 end |
bsw/jbe@4 | 18 deleted = deleted + 1 |
bsw/jbe@4 | 19 else |
bsw/jbe@4 | 20 |
bsw/jbe@4 | 21 local data = param.get(image_type) |
bsw/jbe@4 | 22 if data and #data > 0 and #data < 1024*1024 then |
bsw/jbe@4 | 23 local convert_func = config.member_image_convert_func[image_type] |
bsw/jbe@4 | 24 local data_scaled, err, status = convert_func(data) |
bsw/jbe@4 | 25 if status ~= 0 or data_scaled == nil then |
bsw@75 | 26 slot.put_into("error", _"Error while converting image. Please note, that only JPG files are supported!") |
bsw@75 | 27 return false |
bsw/jbe@4 | 28 end |
bsw/jbe@4 | 29 |
bsw/jbe@4 | 30 if not member_image then |
bsw/jbe@4 | 31 member_image = MemberImage:new() |
bsw/jbe@4 | 32 member_image.member_id = member_id |
bsw/jbe@4 | 33 member_image.image_type = image_type |
bsw/jbe@4 | 34 member_image.scaled = false |
bsw/jbe@52 | 35 member_image.content_type = cgi.post_types[image_type] or nil |
bsw/jbe@4 | 36 member_image.data = "" |
bsw/jbe@4 | 37 member_image:save() |
bsw/jbe@4 | 38 end |
bsw/jbe@4 | 39 |
bsw/jbe@4 | 40 if not member_image_scaled then |
bsw/jbe@4 | 41 member_image_scaled = MemberImage:new() |
bsw/jbe@4 | 42 member_image_scaled.member_id = member_id |
bsw/jbe@4 | 43 member_image_scaled.image_type = image_type |
bsw/jbe@4 | 44 member_image_scaled.scaled = true |
bsw/jbe@52 | 45 member_image_scaled.content_type = config.member_image_content_type |
bsw/jbe@4 | 46 member_image_scaled.data = "" |
bsw/jbe@4 | 47 member_image_scaled:save() |
bsw/jbe@4 | 48 end |
bsw/jbe@4 | 49 |
bsw/jbe@4 | 50 if data and #data > 0 then |
bsw/jbe@4 | 51 db:query{ "UPDATE member_image SET data = $ WHERE member_id = ? AND image_type='" .. image_type .. "' AND scaled=FALSE", { db:quote_binary(data) }, app.session.member.id } |
bsw/jbe@4 | 52 end |
bsw/jbe@4 | 53 |
bsw/jbe@4 | 54 if data_scaled and #data_scaled > 0 then |
bsw/jbe@4 | 55 db:query{ "UPDATE member_image SET data = $ WHERE member_id = ? AND image_type='" .. image_type .. "' AND scaled=TRUE", { db:quote_binary(data_scaled) }, app.session.member.id } |
bsw/jbe@4 | 56 end |
bsw/jbe@4 | 57 |
bsw/jbe@4 | 58 updated = updated + 1 |
bsw/jbe@4 | 59 end |
bsw/jbe@4 | 60 end |
bsw/jbe@4 | 61 end |
bsw/jbe@4 | 62 |
bsw/jbe@4 | 63 if updated > 0 then |
bsw/jbe@4 | 64 slot.put_into("notice", _("#{number} Image(s) has been updated", { number = updated })) |
bsw/jbe@4 | 65 end |
bsw/jbe@4 | 66 if updated > 0 and deleted > 0 then |
bsw/jbe@4 | 67 slot.put_into("notice", " · ") |
bsw/jbe@4 | 68 end |
bsw/jbe@4 | 69 if deleted > 0 then |
bsw/jbe@4 | 70 slot.put_into("notice", _("#{number} Image(s) has been deleted", { number = deleted })) |
bsw/jbe@4 | 71 end |
bsw/jbe@4 | 72 |
bsw/jbe@4 | 73 if updated == 0 and deleted == 0 then |
bsw/jbe@4 | 74 slot.put_into("warning", _("No changes to your images were made")) |
bsw/jbe@4 | 75 end |