Class: MessagesController
- Inherits:
-
ApplicationController
- Object
- ApplicationController
- MessagesController
- Defined in:
- app/controllers/messages_controller.rb
Instance Method Summary collapse
-
#create ⇒ Object
POST /messages POST /messages.json.
-
#destroy ⇒ Object
DELETE /messages/1 DELETE /messages/1.json.
- #destroy_selected ⇒ Object
-
#edit ⇒ Object
GET /messages/1/edit.
-
#index ⇒ Object
GET /messages GET /messages.json.
-
#new ⇒ Object
GET /messages/new.
-
#show ⇒ Object
GET /messages/1 GET /messages/1.json.
-
#update ⇒ Object
PUT /messages/1 PUT /messages/1.json.
Instance Method Details
#create ⇒ Object
POST /messages POST /messages.json
79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'app/controllers/messages_controller.rb', line 79 def create @message = Message.new(params[:message]) @message.sender = current_user get_parent(@message.parent_id) @message.receiver = User.find(@message.recipient) rescue nil respond_to do |format| if @message.save format.html { redirect_to , :notice => t('controller.successfully_created', :model => t('activerecord.models.message')) } format.json { render :json => @message, :status => :created, :location => @message } else format.html { render :action => "new" } format.json { render :json => @message.errors, :status => :unprocessable_entity } end end end |
#destroy ⇒ Object
DELETE /messages/1 DELETE /messages/1.json
112 113 114 115 116 117 118 119 120 |
# File 'app/controllers/messages_controller.rb', line 112 def destroy @message = current_user..find(params[:id]) @message.destroy respond_to do |format| format.html { redirect_to } format.json { head :no_content } end end |
#destroy_selected ⇒ Object
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'app/controllers/messages_controller.rb', line 122 def destroy_selected if current_user unless current_user.has_role?('Librarian') access_denied end else redirect_to new_user_session_url return end respond_to do |format| if params[:delete].present? = params[:delete].map{|m| Message.find_by_id(m)} end if .present? .each do || .destroy end flash[:notice] = t('message.messages_were_deleted') format.html { redirect_to } else flash[:notice] = t('message.select_messages') format.html { redirect_to } end end end |
#edit ⇒ Object
GET /messages/1/edit
72 73 74 75 |
# File 'app/controllers/messages_controller.rb', line 72 def edit @message = current_user..find(params[:id]) @message.sm_read! end |
#index ⇒ Object
GET /messages GET /messages.json
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 |
# File 'app/controllers/messages_controller.rb', line 9 def index query = params[:query].to_s.strip search = Sunspot.new_search(Message) user = current_user case params[:mode] when 'read' is_read = true when 'unread' is_read = false else is_read = nil end search.build do fulltext query order_by :created_at, :desc with(:receiver_id).equal_to user.id facet(:is_read) end @message_facet = search.execute!.facet('is_read').rows search.build do with(:is_read).equal_to is_read unless is_read.nil? end page = params[:page] || 1 search.query.paginate(page.to_i, Message.default_per_page) @messages = search.execute!.results respond_to do |format| format.html # index.html.erb format.json { render :json => @messages } format.rss format.atom end end |
#new ⇒ Object
GET /messages/new
56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'app/controllers/messages_controller.rb', line 56 def new parent = get_parent(params[:parent_id]) @message = current_user..new if params[:recipient] && current_user.has_role?('Librarian') @message.recipient = params[:recipient] else @message.recipient = parent.sender.username if parent end respond_to do |format| format.html # new.html.erb format.json { render :json => @message } end end |
#show ⇒ Object
GET /messages/1 GET /messages/1.json
45 46 47 48 49 50 51 52 53 |
# File 'app/controllers/messages_controller.rb', line 45 def show @message = current_user..find(params[:id]) @message.sm_read! respond_to do |format| format.html # show.html.erb format.json { render :json => @message } end end |
#update ⇒ Object
PUT /messages/1 PUT /messages/1.json
98 99 100 101 102 103 104 105 106 107 108 |
# File 'app/controllers/messages_controller.rb', line 98 def update @message = current_user..find(params[:id]) if @message.update_attributes(params[:message]) format.html { redirect_to @message, :notice => t('controller.successfully_updated', :model => t('activerecord.models.message')) } format.json { head :no_content } else format.html { render :action => "edit" } format.json { render :json => @message.errors, :status => :unprocessable_entity } end end |