Description:
Implement list_all action for message console
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r357:686426417ab0 - - 2 files changed: 7 inserted, 1 deleted

@@ -1,72 +1,77
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 - 'reply','hide']
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 + def list_all
26 + @user = User.find(session[:user_id])
27 + @messages = Message.where(receiver_id: nil).order(:created_at)
28 + end
29 +
25 30 def create
26 31 user = User.find(session[:user_id])
27 32 @message = Message.new(params[:message])
28 33 @message.sender = user
29 34 if !@message.save
30 35 render :action => 'list' and return
31 36 else
32 37 flash[:notice] = 'New message posted'
33 38 redirect_to :action => 'list'
34 39 end
35 40 end
36 41
37 42 def reply
38 43 user = User.find(session[:user_id])
39 44 @message = Message.new(params[:r_message])
40 45 @message.sender = user
41 46 if !@message.save
42 47 render :action => 'show' and return
43 48 else
44 49 flash[:notice] = 'Message replied'
45 50 rep_msg = @message.replying_message
46 51 rep_msg.replied = true
47 52 rep_msg.save
48 53 redirect_to :action => 'console'
49 54 end
50 55 end
51 56
52 57 def hide
53 58 message = Message.find(params[:id])
54 59 message.replied = true
55 60 message.save
56 61 flash[:notice] = 'Message hided (just marked replied)'
57 62 redirect_to :action => 'console'
58 63 end
59 64
60 65 protected
61 66 def build_replying_message_hierarchy(user)
62 67 @all_messages = {}
63 68
64 69
65 70 # manually build replies hierarchy (to improve efficiency)
66 71 [@messages, @replied_messages].each do |collection|
67 72 collection.each do |m|
68 73 @all_messages[m.id] = {:msg => m, :replies => []}
69 74 end
70 75 end
71 76
72 77 @all_messages.each do |m|
@@ -1,11 +1,12
1 1 %tr
2 2 - if short_message.sender
3 3 %td=h short_message.sender.full_name
4 4 - else
5 5 %td (user deleted)
6 6 %td= "#{short_message.created_at}"
7 7 %td=h truncate(short_message.body)
8 8 %td
9 9 - if short_message.sender
10 10 = link_to "[reply]", :action => 'show', :id => short_message.id
11 + - if params[:action] != 'list_all'
11 12 = link_to "[hide]", :action => 'hide', :id => short_message.id
You need to be logged in to leave comments. Login now