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 |