Seperating message receiving off into 'inbox' function.
authorDan Karran <dan@karran.net>
Wed, 20 Jun 2007 22:32:15 +0000 (22:32 +0000)
committerDan Karran <dan@karran.net>
Wed, 20 Jun 2007 22:32:15 +0000 (22:32 +0000)
app/controllers/message_controller.rb
app/views/layouts/site.rhtml
app/views/message/inbox.rhtml [new file with mode: 0644]
app/views/message/new.rhtml
app/views/user/view.rhtml

index 0fc5f212bdf3705dea3edaf98ddc285ea2d2bfd6..e9ad1968c295beb7c0afd9dd83b25e1fe06d3f2f 100644 (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
index df6989bf8c9f45db750e12afba639853a5f35358..54b7af10c532c8021afaa3f5e682e1431c867716 100644 (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'}%> |
diff --git a/app/views/message/inbox.rhtml b/app/views/message/inbox.rhtml
new file mode 100644 (file)
index 0000000..daae9cd
--- /dev/null
@@ -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 %>
\ No newline at end of file
index 6e268e905b1f6d42b7761a431bde9ce8838ba521..b2d31b84285df8e01675f8243eae14dd16f61bd7 100644 (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 %>
index 862f802cea2da925f9a9f60992b12dc2d14529f7..2090c2d5a23192d61807c41e77a864e84d7b08e2 100644 (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 %>