1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
class AdminOutgoingMessageController < AdminController
def edit
@outgoing_message = OutgoingMessage.find(params[:id])
end
def destroy
@outgoing_message = OutgoingMessage.find(params[:id])
@info_request = @outgoing_message.info_request
outgoing_message_id = @outgoing_message.id
@outgoing_message.fully_destroy
@outgoing_message.info_request.log_event("destroy_outgoing",
{ :editor => admin_current_user(), :deleted_outgoing_message_id => outgoing_message_id })
flash[:notice] = 'Outgoing message successfully destroyed.'
redirect_to admin_request_url(@info_request)
end
def update
@outgoing_message = OutgoingMessage.find(params[:id])
old_body = @outgoing_message.body
old_prominence = @outgoing_message.prominence
old_prominence_reason = @outgoing_message.prominence_reason
@outgoing_message.prominence = params[:outgoing_message][:prominence]
@outgoing_message.prominence_reason = params[:outgoing_message][:prominence_reason]
@outgoing_message.body = params[:outgoing_message][:body]
if @outgoing_message.save
@outgoing_message.info_request.log_event("edit_outgoing",
{ :outgoing_message_id => @outgoing_message.id,
:editor => admin_current_user(),
:old_body => old_body,
:body => @outgoing_message.body,
:old_prominence => old_prominence,
:old_prominence_reason => old_prominence_reason,
:prominence => @outgoing_message.prominence,
:prominence_reason => @outgoing_message.prominence_reason })
flash[:notice] = 'Outgoing message successfully updated.'
expire_for_request(@outgoing_message.info_request)
redirect_to admin_request_url(@outgoing_message.info_request)
else
render :action => 'edit'
end
end
def resend
@outgoing_message = OutgoingMessage.find(params[:id])
@outgoing_message.prepare_message_for_resend
mail_message = case @outgoing_message.message_type
when 'initial_request'
OutgoingMailer.initial_request(
@outgoing_message.info_request,
@outgoing_message
).deliver
when 'followup'
OutgoingMailer.followup(
@outgoing_message.info_request,
@outgoing_message,
@outgoing_message.incoming_message_followup
).deliver
else
raise "Message id #{id} has type '#{message_type}' which cannot be resent"
end
@outgoing_message.record_email_delivery(
mail_message.to_addrs.join(', '),
mail_message.message_id,
'resent'
)
flash[:notice] = "Outgoing message resent"
redirect_to admin_request_url(@outgoing_message.info_request)
end
end
|