Class: MessagesController

Inherits:
ApplicationController
  • Object
show all
Defined in:
lib/generators/fetty/messages/templates/controllers/messages_controller.rb

Instance Method Summary collapse

Instance Method Details

#createObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/generators/fetty/messages/templates/controllers/messages_controller.rb', line 36

def create
   unless params[:user_tokens].blank? or params[:subject].blank? or params[:content].blank?
     recipients = User.find(params[:user_tokens].split(",").collect { |id| id.to_i })
     if current_user.send_message?(:recipients => recipients, :subject_id => params[:subject_id], :subject => params[:subject], :content => params[:content], :parent_id => params[:parent_id])
         redirect_to box_messages_url(:inbox), :notice => 'Successfully send message.'
       else
         flash.now[:alert] = "Unable to send message."
         render "new"
       end
     else
     flash.now[:alert] = "Invalid input for sending message."
     render "new"
   end 
end

#emptyObject



70
71
72
73
74
75
# File 'lib/generators/fetty/messages/templates/controllers/messages_controller.rb', line 70

def empty
  unless params[:messagebox].nil?
     current_user.empty_messages(params[:messagebox].to_sym => true)
     redirect_to box_messages_url(params[:messagebox]), :notice => "Successfully delete all messages."
  end
end

#indexObject



3
4
5
6
7
8
9
10
11
12
13
# File 'lib/generators/fetty/messages/templates/controllers/messages_controller.rb', line 3

def index
  @messagebox = params[:messagebox].blank? ? "inbox" : params[:messagebox]
  @messages = current_user.send(@messagebox).group(:subject_id).page(params[:page]).per(10)
  
  case @messagebox
  when "trash"
    @options = ["Read","Unread","Delete","Undelete"]
  else
    @options = ["Read","Unread","Delete"]
  end
end

#newObject



33
34
# File 'lib/generators/fetty/messages/templates/controllers/messages_controller.rb', line 33

def new
end

#showObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/generators/fetty/messages/templates/controllers/messages_controller.rb', line 15

def show
   unless params[:messagebox].blank?
     message = current_user.send(params[:messagebox]).find(params[:id])
     
     @messages = message.root.subtree
     @parent_id = @messages.last.id
     
     if @messages.last.copies
       @user_tokens = @messages.last.recipient_id
       @parent_id = @messages.last.ancestor_ids.last unless @parent_id.nil?
     else
       @user_tokens = @messages.last.sender_id
     end
     
     read_unread_messages(true, *@messages)
   end
end

#tokenObject



77
78
79
80
81
82
83
# File 'lib/generators/fetty/messages/templates/controllers/messages_controller.rb', line 77

def token
   query = "%" + params[:q] + "%"
   recipients = User.select("id,username").where("username like ?", query)
   respond_to do |format|
     format.json { render :json => recipients.map { |u| { "id" => u.id, "name" => u.username} } }
   end
end

#updateObject



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/generators/fetty/messages/templates/controllers/messages_controller.rb', line 51

def update
   unless params[:messages].nil?
     message = current_user.send(params[:messagebox]).find(params[:messages])
     message.each do |message|
       messages = message.root.subtree
       if params[:option].downcase == "read"
         read_unread_messages(true,*messages)
       elsif params[:option].downcase == "unread"
         read_unread_messages(false,*messages)
       elsif params[:option].downcase == "delete"
         delete_messages(true,*messages)
       elsif params[:option].downcase == "undelete"
         delete_messages(false,*messages)
       end
     end
   end
   redirect_to box_messages_url(params[:messagebox]) 
end