| 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 |