Description:
Prevented empty messages from being sent and fixed a typo
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r377:08f39063736a - - 1 file changed: 7 inserted, 6 deleted

@@ -1,85 +1,86
1 1 class MessagesController < ApplicationController
2 2
3 3 before_filter :authenticate
4 4
5 5 verify :method => :post, :only => ['create'],
6 6 :redirect_to => { :action => 'list' }
7 7
8 8 before_filter :admin_authorization, :only => ['console','show',
9 9 'reply','hide','list_all']
10 10
11 11 def list
12 12 @user = User.find(session[:user_id])
13 13 @messages = Message.find_all_sent_by_user(@user)
14 14 end
15 15
16 16 def console
17 17 @user = User.find(session[:user_id])
18 18 @messages = Message.find_all_system_unreplied_messages
19 19 end
20 20
21 21 def show
22 22 @message = Message.find(params[:id])
23 23 end
24 24
25 25 def list_all
26 26 @user = User.find(session[:user_id])
27 27 @messages = Message.where(receiver_id: nil).order(:created_at)
28 28 end
29 29
30 30 def create
31 31 user = User.find(session[:user_id])
32 32 @message = Message.new(params[:message])
33 33 @message.sender = user
34 - if !@message.save
35 - render :action => 'list' and return
34 + if @message.body == '' or !@message.save
35 + flash[:notice] = 'An error occurred'
36 36 else
37 37 flash[:notice] = 'New message posted'
38 + end
38 39 redirect_to :action => 'list'
39 40 end
40 - end
41 41
42 42 def reply
43 43 user = User.find(session[:user_id])
44 44 @message = Message.new(params[:r_message])
45 45 @message.sender = user
46 - if !@message.save
47 - render :action => 'show' and return
46 + if @message.body == '' or !@message.save
47 + flash[:notice] = 'An error occurred'
48 + redirect_to :action => 'show', :id => @message.replying_message_id
48 49 else
49 50 flash[:notice] = 'Message replied'
50 51 rep_msg = @message.replying_message
51 52 rep_msg.replied = true
52 53 rep_msg.save
53 54 redirect_to :action => 'console'
54 55 end
55 56 end
56 57
57 58 def hide
58 59 message = Message.find(params[:id])
59 60 message.replied = true
60 61 message.save
61 - flash[:notice] = 'Message hided (just marked replied)'
62 + flash[:notice] = 'Message hidden (just marked replied)'
62 63 redirect_to :action => 'console'
63 64 end
64 65
65 66 protected
66 67 def build_replying_message_hierarchy(user)
67 68 @all_messages = {}
68 69
69 70
70 71 # manually build replies hierarchy (to improve efficiency)
71 72 [@messages, @replied_messages].each do |collection|
72 73 collection.each do |m|
73 74 @all_messages[m.id] = {:msg => m, :replies => []}
74 75 end
75 76 end
76 77
77 78 @all_messages.each do |m|
78 79 rep_id = m.replying_message_id
79 80 if @all_messages[rep_id]!=nil
80 81 @all_messages[rep_id][:replies] << m
81 82 end
82 83 end
83 84 end
84 85
85 86 end
You need to be logged in to leave comments. Login now