summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMrYummy <elemental428@gmail.com>2017-06-16 21:14:09 +0200
committerMrYummy <elemental428@gmail.com>2017-06-16 21:14:09 +0200
commit2bb75bb0b6ab4a54d98005754f614d0c101b11f8 (patch)
tree614b1e11c511b7a648ce5f8bdedd14f0b0821067
parentdd193e740ad86c9841ed55f54b85fe91ee5da05a (diff)
tweaked message 'read' system
-rw-r--r--app/controllers/messagereplies_controller.rb1
-rw-r--r--app/controllers/messages_controller.rb6
-rw-r--r--app/models/message.rb1
-rw-r--r--app/views/messagereplies/_new.html.erb1
-rw-r--r--app/views/messages/index.html.erb2
-rw-r--r--app/views/messages/new.html.erb1
-rw-r--r--app/views/users/show.html.erb2
-rw-r--r--db/migrate/20170524181458_create_messages.rb2
-rw-r--r--db/schema.rb2
9 files changed, 11 insertions, 7 deletions
diff --git a/app/controllers/messagereplies_controller.rb b/app/controllers/messagereplies_controller.rb
index c8272eb..193850a 100644
--- a/app/controllers/messagereplies_controller.rb
+++ b/app/controllers/messagereplies_controller.rb
@@ -16,7 +16,6 @@ class MessagerepliesController < ApplicationController
@reply.user_author = current_user
@reply.message = message
if @reply.save
- @reply.message.update_attributes(user_hidden: nil, read: false)
if false
@reply.send_new_message_reply_mail
end
diff --git a/app/controllers/messages_controller.rb b/app/controllers/messages_controller.rb
index 2f7357f..bcc57cc 100644
--- a/app/controllers/messages_controller.rb
+++ b/app/controllers/messages_controller.rb
@@ -17,7 +17,7 @@ class MessagesController < ApplicationController
end
def show
- Message.find(@message.id).update_attributes(read: true) if !@message.read && @message.user_target.is?(current_user)
+ Message.find(@message.id).update_attributes(user_unread: nil) if @message.user_unread && @message.user_target.is?(current_user)
@replies = @message.replies.page(params[:page])
end
@@ -54,6 +54,7 @@ class MessagesController < ApplicationController
end
@message = Message.new(message_params)
@message.user_target = User.find(@message.user_target_id)
+ @message.user_unread = User.find(@message.user_unread_id) if @message.user_unread_id
if @message.save
@message.send_new_message_mail
flash[:notice] = "Message sent!"
@@ -111,7 +112,8 @@ class MessagesController < ApplicationController
params[:message][:user_target_id] = User.find_by(ign: params[:message][:user_target].strip).try(:id)
params[:message][:user_sender_id] = User.find_by(ign: params[:message][:user_sender]).id
params[:message][:user_hidden_id] = User.find_by(ign: params[:message][:user_hidden]).try(:id)
-params.require(:message).permit([:subject, :text, :user_target_id, :user_sender_id])
+ params[:message][:user_unread_id] = User.find_by(ign: params[:message][:user_unread]).try(:id)
+params.require(:message).permit([:subject, :text, :user_target_id, :user_sender_id, :user_hidden_id, :user_unread_id])
end
private
diff --git a/app/models/message.rb b/app/models/message.rb
index 35c47ef..2bbe4cb 100644
--- a/app/models/message.rb
+++ b/app/models/message.rb
@@ -6,6 +6,7 @@ class Message < ActiveRecord::Base
belongs_to :user_target, class_name: "User", foreign_key: "user_target_id"
belongs_to :user_editor, class_name: "User", foreign_key: "user_editor_id"
belongs_to :user_hidden, class_name: "User", foreign_key: "user_hidden_id"
+ belongs_to :user_unread, class_name: "User", foreign_key: "user_unread_id"
validates_presence_of :user_sender, :user_target, :text, :subject
diff --git a/app/views/messagereplies/_new.html.erb b/app/views/messagereplies/_new.html.erb
index a7b7780..a882235 100644
--- a/app/views/messagereplies/_new.html.erb
+++ b/app/views/messagereplies/_new.html.erb
@@ -1,5 +1,6 @@
<%= form_for [reply.get_message, reply] do |f| %>
<%= render partial: "md_editor", locals: {name: "messagereply[text]", content: reply.text} %>
+ <%= f.hidden_field :user_unread, value: current_user %>
<p><%= f.submit "Reply", class: "btn blue" %></p>
<% end %>
diff --git a/app/views/messages/index.html.erb b/app/views/messages/index.html.erb
index 8ff289d..0ce7008 100644
--- a/app/views/messages/index.html.erb
+++ b/app/views/messages/index.html.erb
@@ -26,7 +26,7 @@
<%= render partial: "users/username", locals: { user: user } %>
<span style="font-size:16px">
&nbsp;
- <span class="<%= "bold" unless message.user_sender.is?(current_user) || message.read%>"><%= link_to message.subject, message %></span>
+ <span class="<%= "bold" if message.user_unread && message.user_unread != current_user %>"><%= link_to message.subject, message %></span>
&nbsp; | &nbsp;
</span>
<%= ago message.created_at %>
diff --git a/app/views/messages/new.html.erb b/app/views/messages/new.html.erb
index 80078f8..1184cad 100644
--- a/app/views/messages/new.html.erb
+++ b/app/views/messages/new.html.erb
@@ -20,6 +20,7 @@
</tr>
</table>
<%= f.hidden_field :user_sender, value: current_user %>
+ <%= f.hidden_field :user_unread, value: current_user %>
<br>
<p><%= f.submit "Send Message", class: "btn blue left" %></p>
<% end %>
diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb
index e2e9348..6ca1acd 100644
--- a/app/views/users/show.html.erb
+++ b/app/views/users/show.html.erb
@@ -11,7 +11,7 @@
<%= link_to "edit profile", edit_user_path(@user), :class => "btn blue" %>
<% end %>
<% if @user.is?(current_user) %>
- <%= link_to "Private Messages (#{Message.where(read: false).count})", messages_path, :class => "btn blue" %>
+ <%= link_to "Private Messages (#{Message.where.not(user_unread: current_user).count})", messages_path, :class => "btn blue" %>
<% elsif current_user %>
<%= link_to "Send this user a message", new_message_path(user_target: @user.ign), :class => "btn blue" %>
<% end %>
diff --git a/db/migrate/20170524181458_create_messages.rb b/db/migrate/20170524181458_create_messages.rb
index c0c1fa5..e2d6c80 100644
--- a/db/migrate/20170524181458_create_messages.rb
+++ b/db/migrate/20170524181458_create_messages.rb
@@ -6,7 +6,7 @@ class CreateMessages < ActiveRecord::Migration
t.references :user_target
t.references :user_editor
t.references :user_hidden
- t.boolean :read, default: false
+ t.references :user_unread
t.timestamps null: true
end
diff --git a/db/schema.rb b/db/schema.rb
index d7221e9..476f24f 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -91,7 +91,7 @@ ActiveRecord::Schema.define(version: 20170613021450) do
t.integer "user_target_id", limit: 4
t.integer "user_editor_id", limit: 4
t.integer "user_hidden_id", limit: 4
- t.boolean "read", default: false
+ t.integer "user_unread_id", limit: 4
t.datetime "created_at"
t.datetime "updated_at"
t.string "subject", limit: 191