diff --git a/app/controllers/message_controller.rb b/app/controllers/message_controller.rb
index 73abc68cc..435c3fa78 100644
--- a/app/controllers/message_controller.rb
+++ b/app/controllers/message_controller.rb
@@ -100,8 +100,15 @@ class MessageController < ApplicationController
end
message.message_read = message_read
if message.save
- flash[:notice] = notice
- redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
+ if request.xhr?
+ render :update do |page|
+ page.replace "inbox-count", :partial => "message_count"
+ page.replace "inbox-#{message.id}", :partial => "message_summary", :object => message
+ end
+ else
+ flash[:notice] = notice
+ redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
+ end
end
end
rescue ActiveRecord::RecordNotFound
diff --git a/app/views/message/_message_count.html.erb b/app/views/message/_message_count.html.erb
new file mode 100644
index 000000000..27b0aa644
--- /dev/null
+++ b/app/views/message/_message_count.html.erb
@@ -0,0 +1 @@
+
<%= t'message.inbox.you_have', :new_count => @user.new_messages.size, :old_count => (@user.messages.size - @user.new_messages.size) %>
diff --git a/app/views/message/_message_summary.html.erb b/app/views/message/_message_summary.html.erb
index 3d9976aab..d4d4f788b 100644
--- a/app/views/message/_message_summary.html.erb
+++ b/app/views/message/_message_summary.html.erb
@@ -1,13 +1,13 @@
<% this_colour = cycle('lightgrey', 'white') %>
-">
<%= link_to h(message_summary.sender.display_name), :controller => 'user', :action => message_summary.sender.display_name %> |
<%= link_to h(message_summary.title), :controller => 'message', :action => 'read', :message_id => message_summary.id %> |
<%= l message_summary.sent_on %> |
<% if message_summary.message_read? %>
- <%= button_to t('message.message_summary.unread_button'), :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread' %> |
+ <%= button_to t('message.message_summary.unread_button'), {:controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread'}, { :onclick => remote_function(:url => {:controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'unread'}) + "; return false;" } %> |
<% else %>
- <%= button_to t('message.message_summary.read_button'), :controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read' %> |
+ <%= button_to t('message.message_summary.read_button'), {:controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read'}, { :onclick => remote_function(:url => {:controller => 'message', :action => 'mark', :message_id => message_summary.id, :mark => 'read'}) + "; return false;" } %> |
<% end %>
<%= button_to t('message.message_summary.reply_button'), :controller => 'message', :action => 'reply', :message_id => message_summary.id %> |
<%= button_to t('message.message_summary.delete_button'), :controller => 'message', :action => 'delete', :message_id => message_summary.id, :referer => request.request_uri %> |
diff --git a/app/views/message/inbox.html.erb b/app/views/message/inbox.html.erb
index 2a97b7bbd..897fb24ad 100644
--- a/app/views/message/inbox.html.erb
+++ b/app/views/message/inbox.html.erb
@@ -1,6 +1,6 @@
<%= t'message.inbox.my_inbox'%>/<%= link_to t('message.inbox.outbox'), url_for(:controller => "user", :action => "outbox", :id => @user.display_name) %>
-<%= t'message.inbox.you_have', :new_count => @user.new_messages.size, :old_count => (@user.messages.size - @user.new_messages.size) %>
+<%= render :partial => "message_count" %>
<% if @user.messages.size > 0 %>