tweaked message 'read' system
This commit is contained in:
@@ -16,7 +16,6 @@ class MessagerepliesController < ApplicationController
|
|||||||
@reply.user_author = current_user
|
@reply.user_author = current_user
|
||||||
@reply.message = message
|
@reply.message = message
|
||||||
if @reply.save
|
if @reply.save
|
||||||
@reply.message.update_attributes(user_hidden: nil, read: false)
|
|
||||||
if false
|
if false
|
||||||
@reply.send_new_message_reply_mail
|
@reply.send_new_message_reply_mail
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ class MessagesController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def show
|
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])
|
@replies = @message.replies.page(params[:page])
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -54,6 +54,7 @@ class MessagesController < ApplicationController
|
|||||||
end
|
end
|
||||||
@message = Message.new(message_params)
|
@message = Message.new(message_params)
|
||||||
@message.user_target = User.find(@message.user_target_id)
|
@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
|
if @message.save
|
||||||
@message.send_new_message_mail
|
@message.send_new_message_mail
|
||||||
flash[:notice] = "Message sent!"
|
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_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_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[: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
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|||||||
@@ -6,6 +6,7 @@ class Message < ActiveRecord::Base
|
|||||||
belongs_to :user_target, class_name: "User", foreign_key: "user_target_id"
|
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_editor, class_name: "User", foreign_key: "user_editor_id"
|
||||||
belongs_to :user_hidden, class_name: "User", foreign_key: "user_hidden_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
|
validates_presence_of :user_sender, :user_target, :text, :subject
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<%= form_for [reply.get_message, reply] do |f| %>
|
<%= form_for [reply.get_message, reply] do |f| %>
|
||||||
<%= render partial: "md_editor", locals: {name: "messagereply[text]", content: reply.text} %>
|
<%= 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>
|
<p><%= f.submit "Reply", class: "btn blue" %></p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
<%= render partial: "users/username", locals: { user: user } %>
|
<%= render partial: "users/username", locals: { user: user } %>
|
||||||
<span style="font-size:16px">
|
<span style="font-size:16px">
|
||||||
|
|
||||||
<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>
|
||||||
|
|
|
|
||||||
</span>
|
</span>
|
||||||
<%= ago message.created_at %>
|
<%= ago message.created_at %>
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<%= f.hidden_field :user_sender, value: current_user %>
|
<%= f.hidden_field :user_sender, value: current_user %>
|
||||||
|
<%= f.hidden_field :user_unread, value: current_user %>
|
||||||
<br>
|
<br>
|
||||||
<p><%= f.submit "Send Message", class: "btn blue left" %></p>
|
<p><%= f.submit "Send Message", class: "btn blue left" %></p>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
<%= link_to "edit profile", edit_user_path(@user), :class => "btn blue" %>
|
<%= link_to "edit profile", edit_user_path(@user), :class => "btn blue" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
<% if @user.is?(current_user) %>
|
<% 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 %>
|
<% elsif current_user %>
|
||||||
<%= link_to "Send this user a message", new_message_path(user_target: @user.ign), :class => "btn blue" %>
|
<%= link_to "Send this user a message", new_message_path(user_target: @user.ign), :class => "btn blue" %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ class CreateMessages < ActiveRecord::Migration
|
|||||||
t.references :user_target
|
t.references :user_target
|
||||||
t.references :user_editor
|
t.references :user_editor
|
||||||
t.references :user_hidden
|
t.references :user_hidden
|
||||||
t.boolean :read, default: false
|
t.references :user_unread
|
||||||
|
|
||||||
t.timestamps null: true
|
t.timestamps null: true
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ ActiveRecord::Schema.define(version: 20170613021450) do
|
|||||||
t.integer "user_target_id", limit: 4
|
t.integer "user_target_id", limit: 4
|
||||||
t.integer "user_editor_id", limit: 4
|
t.integer "user_editor_id", limit: 4
|
||||||
t.integer "user_hidden_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 "created_at"
|
||||||
t.datetime "updated_at"
|
t.datetime "updated_at"
|
||||||
t.string "subject", limit: 191
|
t.string "subject", limit: 191
|
||||||
|
|||||||
Reference in New Issue
Block a user