Seperating message receiving off into 'inbox' function.

This commit is contained in:
Dan Karran 2007-06-20 22:32:15 +00:00
parent b982bc6b19
commit e6af088dda
5 changed files with 63 additions and 58 deletions

View file

@ -20,7 +20,7 @@ class MessageController < ApplicationController
if message.save
flash[:notice] = 'Message sent'
redirect_to :controller => 'user', :action => 'view', :display_name => @user.display_name
redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
else
@message.errors.add("Sending message failed")
end
@ -37,6 +37,11 @@ class MessageController < ApplicationController
end
def inbox
@title = 'inbox'
if @user and params[:display_name] == @user.display_name
else
redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
end
end
def mark
@ -45,8 +50,8 @@ class MessageController < ApplicationController
message = Message.find_by_id(id)
message.message_read = 1
if message.save
flash[:notice] = 'Message Marked as read'
redirect_to :controller => 'user', :action => 'view', :display_name => @user.display_name
flash[:notice] = 'Message marked as read'
redirect_to :controller => 'message', :action => 'inbox', :display_name => @user.display_name
end
end
end

View file

@ -25,7 +25,9 @@
<span id="greeting">
<% if @user %>
Welcome, <%= link_to @user.display_name, {:controller => 'user', :action => 'view', :display_name => @user.display_name}%> |
Welcome, <%= link_to @user.display_name, {:controller => 'user', :action => 'view', :display_name => @user.display_name}%> |
<% @inbox_weight = 'bold' if @user.get_new_messages.length > 0 %>
<%= link_to "inbox (#{@user.get_new_messages.length})", {:controller => 'message', :action => 'inbox', :display_name => @user.display_name}, {:style => "font-weight: #{@inbox_weight};" } %> |
<%= link_to 'logout', {:controller => 'user', :action => 'logout', :referer => request.request_uri}, {:id => 'logoutanchor'}%>
<% else %>
<%= link_to 'log in', {:controller => 'user', :action => 'login', :referer => request.request_uri}, {:id => 'loginanchor'}%> |

View file

@ -0,0 +1,51 @@
<h2>My inbox</h2>
<p>You have <%=@user.get_new_messages.length %> new messages and <%=@user.get_all_messages.length - @user.get_new_messages.length %> old messages</p>
<% if (params[:all] and @user.get_all_messages.length > 0) or (@user.get_new_messages.length > 0) %>
<div id="messages">
<table class="messages">
<tr><th>from</th>
<th>title</th>
<th>received on</th>
<th></th>
<th></th></tr>
<% if params[:all] %>
<% @user.get_all_messages.each do |message| %>
<tr><td><%= link_to User.find(message.from_user_id).display_name , :controller => 'user', :action => User.find(message.from_user_id).display_name %></td>
<td><%= link_to message.title , :controller => 'message', :action => 'read', :message_id => message.id %></td>
<td><%= message.sent_on %></td>
<% if message.message_read = 0 %>
<td><%= link_to 'mark as read', :controller => 'message', :action => 'mark', :message_id => message.id %> </td>
<%else%>
<td>message read</td>
<%end%>
<td><%= link_to 'reply', :controller => 'message', :action => 'new', :user_id => message.from_user_id %> </td>
</tr>
<%end%>
<%else%>
<% @user.get_new_messages.each do |message| %>
<tr><td><%= link_to User.find(message.from_user_id).display_name , :controller => 'user', :action => User.find(message.from_user_id).display_name %></td>
<td><%= link_to message.title , :controller => 'message', :action => 'read', :message_id => message.id %></td>
<td><%= message.sent_on %></td>
<% if message.message_read = 0 %>
<td><%= link_to 'mark as read', :controller => 'message', :action => 'mark', :message_id => message.id %> </td>
<%else%>
<td>message read</td>
<%end%>
</tr>
<%end%>
<%end%>
</table>
</div>
<%end%>
<% if params[:all] %>
<%= link_to 'show new messages', :controller => 'message', :action => 'inbox', :display_name => @user.display_name %>
<% else %>
<%= link_to 'show all messages', :controller => 'message', :action => 'inbox', :display_name => @user.display_name, :all => true %>
<% end %>

View file

@ -17,4 +17,4 @@ body: <%= text_area 'message', 'body' %><br>
<br />
<%= link_to 'Back to my account', :controller => 'user', :action => 'account' %>
<%= link_to 'Back to inbox', :controller => 'message', :action => 'inbox', :display_name => @user.display_name %>

View file

@ -2,59 +2,6 @@
<div id="description"><%= simple_format(@this_user.description) %></div>
<% if @user and @this_user.id == @user.id %>
<h3>Messages</h3>
<% if !@user.messages.empty? %>
<p>You have <%=@user.get_new_messages.length %> new messages and <%=@user.get_all_messages.length - @user.get_new_messages.length %> old messages:</p>
<div id="messages">
<table class="messages">
<tr><th>from</th>
<th>title</th>
<th>received on</th>
<th></th>
<th></th></tr>
<% if params[:unread] %>
<% @user.get_all_messages.each do |message| %>
<tr><td><%= link_to User.find(message.from_user_id).display_name , :controller => 'user', :action => User.find(message.from_user_id).display_name %></td>
<td><%= link_to message.title , :controller => 'message', :action => 'read', :message_id => message.id %></td>
<td><%= message.sent_on %></td>
<% if message.message_read = 0 %>
<td><%= link_to 'mark as read', :controller => 'message', :action => 'mark', :message_id => message.id %> </td>
<%else%>
<td>message read</td>
<%end%>
<td><%= link_to 'reply', :controller => 'message', :action => 'new', :user_id => message.from_user_id %> </td>
<%end%>
</tr>
<%else%>
<% @user.get_new_messages.each do |message| %>
<tr><td><%= link_to User.find(message.from_user_id).display_name , :controller => 'user', :action => User.find(message.from_user_id).display_name %></td>
<td><%= link_to message.title , :controller => 'message', :action => 'read', :message_id => message.id %></td>
<td><%= message.sent_on %></td>
<% if message.message_read = 0 %>
<td><%= link_to 'mark as read', :controller => 'message', :action => 'mark', :message_id => message.id %> </td>
<%else%>
<td>message read</td>
<%end%>
</tr>
<%end%>
<%end%>
</table>
</div>
<%else%>
<p>You have no messages. </p>
<%end%>
<br />
<%= link_to 'show all messages', :controller => 'user', :action => 'view', :display_name => @user.display_name, :unread => true %>
<h3>Your diary</h3>
<%= link_to 'View your diary', :controller => 'user', :action=>'diary', :display_name => @user.display_name %><br/>
<%= link_to 'New diary post', :controller => 'diary_entry', :action=>'new', :display_name => @user.display_name %>