bsw/jbe@4: local member_id = app.session.member_id bsw/jbe@4: bsw/jbe@4: local deleted = 0 bsw/jbe@4: local updated = 0 bsw/jbe@4: bsw/jbe@4: for i, image_type in ipairs{"avatar", "photo"} do bsw/jbe@4: bsw/jbe@4: local member_image = MemberImage:by_pk(member_id, image_type, false) bsw/jbe@4: local member_image_scaled = MemberImage:by_pk(member_id, image_type, true) bsw/jbe@4: bsw/jbe@4: if param.get(image_type .. "_delete", atom.boolean) then bsw/jbe@4: if member_image then bsw/jbe@4: member_image:destroy() bsw/jbe@4: end bsw/jbe@4: if member_image_scaled then bsw/jbe@4: member_image_scaled:destroy() bsw/jbe@4: end bsw/jbe@4: deleted = deleted + 1 bsw/jbe@4: else bsw/jbe@4: bsw/jbe@4: local data = param.get(image_type) bsw/jbe@4: if data and #data > 0 and #data < 1024*1024 then bsw/jbe@4: local convert_func = config.member_image_convert_func[image_type] bsw/jbe@4: local data_scaled, err, status = convert_func(data) bsw/jbe@4: if status ~= 0 or data_scaled == nil then bsw@75: slot.put_into("error", _"Error while converting image. Please note, that only JPG files are supported!") bsw@75: return false bsw/jbe@4: end bsw/jbe@4: bsw/jbe@4: if not member_image then bsw/jbe@4: member_image = MemberImage:new() bsw/jbe@4: member_image.member_id = member_id bsw/jbe@4: member_image.image_type = image_type bsw/jbe@4: member_image.scaled = false bsw/jbe@52: member_image.content_type = cgi.post_types[image_type] or nil bsw/jbe@4: member_image.data = "" bsw/jbe@4: member_image:save() bsw/jbe@4: end bsw/jbe@4: bsw/jbe@4: if not member_image_scaled then bsw/jbe@4: member_image_scaled = MemberImage:new() bsw/jbe@4: member_image_scaled.member_id = member_id bsw/jbe@4: member_image_scaled.image_type = image_type bsw/jbe@4: member_image_scaled.scaled = true bsw/jbe@52: member_image_scaled.content_type = config.member_image_content_type bsw/jbe@4: member_image_scaled.data = "" bsw/jbe@4: member_image_scaled:save() bsw/jbe@4: end bsw/jbe@4: bsw/jbe@4: if data and #data > 0 then bsw/jbe@4: 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: end bsw/jbe@4: bsw/jbe@4: if data_scaled and #data_scaled > 0 then bsw/jbe@4: 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: end bsw/jbe@4: bsw/jbe@4: updated = updated + 1 bsw/jbe@4: end bsw/jbe@4: end bsw/jbe@4: end bsw/jbe@4: bsw/jbe@4: if updated > 0 then bsw/jbe@4: slot.put_into("notice", _("#{number} Image(s) has been updated", { number = updated })) bsw/jbe@4: end bsw/jbe@4: if updated > 0 and deleted > 0 then bsw/jbe@4: slot.put_into("notice", " · ") bsw/jbe@4: end bsw/jbe@4: if deleted > 0 then bsw/jbe@4: slot.put_into("notice", _("#{number} Image(s) has been deleted", { number = deleted })) bsw/jbe@4: end bsw/jbe@4: bsw/jbe@4: if updated == 0 and deleted == 0 then bsw/jbe@4: slot.put_into("warning", _("No changes to your images were made")) bsw/jbe@4: end