messaging stuff and home location selection
This commit is contained in:
parent
88a206b0f2
commit
20e02f42dc
6 changed files with 80 additions and 13 deletions
|
@ -6,12 +6,14 @@ class MessageController < ApplicationController
|
||||||
|
|
||||||
def new
|
def new
|
||||||
if params[:message]
|
if params[:message]
|
||||||
|
to_user = User.find_by_display_name(params[:display_name])
|
||||||
body = params[:message][:body]
|
body = params[:message][:body]
|
||||||
title = params[:message][:title]
|
title = params[:message][:title]
|
||||||
message = Message.new
|
message = Message.new
|
||||||
message.body = body
|
message.body = body
|
||||||
message.title = title
|
message.title = title
|
||||||
message.to_user_id = User.find_by_display_name(params[:display_name]).id
|
message.to_user_id = to_user.id
|
||||||
|
message.from_display_name = to_user.display_name
|
||||||
message.from_user_id = @user.id
|
message.from_user_id = @user.id
|
||||||
message.sent_on = Time.now
|
message.sent_on = Time.now
|
||||||
if message.save
|
if message.save
|
||||||
|
@ -22,4 +24,23 @@ class MessageController < ApplicationController
|
||||||
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def read
|
||||||
|
if params[:message_id]
|
||||||
|
id = params[:message_id]
|
||||||
|
@message = Message.find_by_id(id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def mark
|
||||||
|
if params[:message_id]
|
||||||
|
id = params[:message_id]
|
||||||
|
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
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -78,12 +78,12 @@ class User < ActiveRecord::Base
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_new_messages
|
def get_new_messages
|
||||||
messages = Message.find(:all, :conditions => "message_read = 0")
|
messages = Message.find(:all, :conditions => "message_read = 0 and to_user_id = #{self.id}")
|
||||||
return messages
|
return messages
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_all_messages
|
def get_all_messages
|
||||||
messages = Message.find(:all, :conditions => "message_read = 0")
|
messages = Message.find(:all, :conditions => "to_user_id = #{self.id}")
|
||||||
return messages
|
return messages
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -1,33 +1,71 @@
|
||||||
<h2><%= @this_user.display_name %></h2>
|
<h2><%= @this_user.display_name %></h2>
|
||||||
<% if @user and @this_user.id == @user.id %>
|
<% if @user and @this_user.id == @user.id %>
|
||||||
<% if @user.has_messages? %>
|
<% if @user.has_messages? %>
|
||||||
<p>You have <%=@user.get_new_messages.length %> new messages and <%=@user.get_all_messages.length - @user.get_new_messages.length %> old messages.</p>
|
<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">
|
<table class="messages">
|
||||||
<th>from<th>
|
<th>from<th>
|
||||||
<th>title<th>
|
<th>title<th>
|
||||||
<th>received on<th>
|
<th>received on<th>
|
||||||
|
<th>mark as read<th>
|
||||||
|
<th>reply<th>
|
||||||
<th><th>
|
<th><th>
|
||||||
|
|
||||||
|
<% 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>
|
||||||
|
<td><%= link_to 'reply', :controller => 'message', :action => 'new', :user_id => message.from_user_id %> </td>
|
||||||
|
<%else%>
|
||||||
|
<td>message read</td>
|
||||||
|
<%end%>
|
||||||
|
<%end%>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<%else%>
|
||||||
|
|
||||||
<% @user.get_new_messages.each do |message| %>
|
<% @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>
|
<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><%= link_to message.title , :controller => 'message', :action => 'read', :message_id => message.id %></td>
|
||||||
<td><%= message.sent_on %></td>
|
<td><%= message.sent_on %></td>
|
||||||
<td><%= link_to 'reply', :controller => 'message', :action => 'new', :display_name => User.find(message.from_user_id).display_name %></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>
|
</tr>
|
||||||
|
|
||||||
|
<%end%>
|
||||||
|
|
||||||
<%end%>
|
<%end%>
|
||||||
</table>
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<%else%>
|
||||||
|
<p>You have no messages. </p>
|
||||||
<%end%>
|
<%end%>
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
<%= link_to 'show unread messages', :controller => 'user', :action => 'view', :display_name => @user.display_name, :unread => true %>
|
||||||
|
<br />
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
<%= link_to 'go to your account page', :controller => 'user', :action => 'account', :display_name => @user.display_name %><br /><br />
|
<%= link_to 'go to your account page', :controller => 'user', :action => 'account', :display_name => @user.display_name %><br /><br />
|
||||||
|
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= link_to 'send message', :controller => 'message', :action => 'new', :display_name => @this_user.display_name %><br /><br />
|
<%= link_to 'send message', :controller => 'message', :action => 'new', :display_name => @this_user.display_name %><br /><br />
|
||||||
<%= link_to 'Add as friend', :controller => 'user', :action => 'make_friend', :display_name => @this_user.display_name %><br /><br />
|
<%= link_to 'Add as friend', :controller => 'user', :action => 'make_friend', :display_name => @this_user.display_name %><br /><br />
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
<%= link_to 'diary', :controller => 'user', :action => 'diary', :display_name => @this_user.display_name %><br /><br />
|
<%= link_to 'diary', :controller => 'user', :action => 'diary', :display_name => @this_user.display_name %><br /><br />
|
||||||
|
|
||||||
|
|
||||||
|
<p><%= params[:display_name] %> says: </p>
|
||||||
<%= simple_format(@this_user.description) %>
|
<%= simple_format(@this_user.description) %>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -83,7 +83,9 @@ ActionController::Routing::Routes.draw do |map|
|
||||||
|
|
||||||
# messages
|
# messages
|
||||||
|
|
||||||
map.connect '/message/new/:display_name', :controller => 'message', :action => 'new'
|
map.connect '/message/new/:user_id', :controller => 'message', :action => 'new'
|
||||||
|
map.connect '/message/read/:message_id', :controller => 'message', :action => 'read'
|
||||||
|
map.connect '/message/mark/:message_id', :controller => 'message', :action => 'mark'
|
||||||
|
|
||||||
# fall through
|
# fall through
|
||||||
map.connect ':controller/:id/:action'
|
map.connect ':controller/:id/:action'
|
||||||
|
|
|
@ -45,7 +45,8 @@ alter table users add column home_zoom int(2) default 3);
|
||||||
alter table users add column within_lon double default 2;
|
alter table users add column within_lon double default 2;
|
||||||
alter table users add column within_lat double default 2;
|
alter table users add column within_lat double default 2;
|
||||||
|
|
||||||
create table messages (id bigint not null auto_increment, user_id bigint(20) not null, from_user_id bigint(20) not null, title varchar(255), body text, sent_on datetime, message_read boolean default 0, primary key(id));
|
create table messages (id bigint not null auto_increment, user_id bigint(20) not null, from_user_id bigint(20) not null, from_display_name varchar(255) default "", title varchar(255), body text, sent_on datetime, message_read boolean default 0, primary key(id));
|
||||||
|
create index from_name_idx on messages(from_display_name);
|
||||||
|
|
||||||
create table friends (id bigint not null auto_increment, user_id bigint(20) not null, friend_user_id(20) not null, primary key(id));
|
create table friends (id bigint not null auto_increment, user_id bigint(20) not null, friend_user_id(20) not null, primary key(id));
|
||||||
create index user_id_idx on friends(friend_user_id);
|
create index user_id_idx on friends(friend_user_id);
|
||||||
|
|
|
@ -124,6 +124,11 @@ body {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#messages {
|
||||||
|
border: 1px solid #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
#left_menu a:visited {
|
#left_menu a:visited {
|
||||||
color: #000000;
|
color: #000000;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue