Made messages more thread-like (replies, editing, etc.)
This commit is contained in:
@@ -44,4 +44,4 @@
|
||||
<% else %>
|
||||
<p>Please <%= link_to "Log in", login_path(return_path: request.env['PATH_INFO']), action: "new" %> to post a reply.</p>
|
||||
<% end %>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
5
app/views/messagereplies/_new.html.erb
Normal file
5
app/views/messagereplies/_new.html.erb
Normal file
@@ -0,0 +1,5 @@
|
||||
<%= form_for [reply.get_message, reply] do |f| %>
|
||||
<%= render partial: "md_editor", locals: {name: "messagereply[text]", content: reply.text} %>
|
||||
<p><%= f.submit "Reply", class: "btn blue" %></p>
|
||||
<% end %>
|
||||
|
||||
17
app/views/messagereplies/_reply.html.erb
Normal file
17
app/views/messagereplies/_reply.html.erb
Normal file
@@ -0,0 +1,17 @@
|
||||
<div class="item-group thread-reply with-avatar" id="reply-<%= reply.id %>">
|
||||
<div class="header">
|
||||
<%= link_to(reply.author.avatar(64), reply.author, title: reply.author.ign) %>
|
||||
<%= render partial: "users/username", locals: { user: reply.author } %>
|
||||
<%= link_to "#reply-#{reply.id}" do %>
|
||||
<%= ago reply.created_at %>
|
||||
<% end %>
|
||||
|
||||
<%= link_to "edit", edit_message_messagereply_path(reply.message, reply), class: "editlink" if mod? || reply.author.is?(current_user) %>
|
||||
<div class="clear-right"></div>
|
||||
</div>
|
||||
<div class="items">
|
||||
<div class="item content">
|
||||
<%= render_md(reply.text).html_safe %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
15
app/views/messagereplies/edit.html.erb
Normal file
15
app/views/messagereplies/edit.html.erb
Normal file
@@ -0,0 +1,15 @@
|
||||
<% title "Edit Message Reply: #{@reply.message.subject}" %>
|
||||
|
||||
<%
|
||||
position = @reply.message.replies.index(@reply)
|
||||
page = position / Kaminari.config.default_per_page + 1
|
||||
%>
|
||||
|
||||
<%= link_to "Messages", messages_path %> → <%= link_to @reply.message, message_path(@reply.message, page: page) + "#reply-#{@reply.id}" %> → Edit reply
|
||||
<h1>Edit reply</h1>
|
||||
<%= form_for [@reply.message, @reply] do |f| %>
|
||||
<%= render partial: "md_editor", locals: {name: "messagereply[text]", content: @reply.text} %>
|
||||
<p><%= f.submit "Reply", class: "btn blue left" %></p>
|
||||
<% end %>
|
||||
<p><%= button_to "Delete reply", [@reply.message, @reply], method: "delete", data: {confirm: "Delete reply forever?"}, class: "btn red right" %></p>
|
||||
<div class="clear"></div>
|
||||
17
app/views/messages/edit.html.erb
Normal file
17
app/views/messages/edit.html.erb
Normal file
@@ -0,0 +1,17 @@
|
||||
<% title "Edit Thread: #{@message}" %>
|
||||
|
||||
<h1>Edit thread</h1>
|
||||
<%= link_to "Messages", messages_path %> → <%= link_to @message, @message %> → Edit Message
|
||||
<%= form_for @message do |f|%>
|
||||
<div class="table-cell full-width">
|
||||
<%= f.text_field :subject, placeholder: "Subject" %>
|
||||
</div>
|
||||
<br>
|
||||
<%= render partial: "md_editor", locals: {name: "message[text]", content: @message.text} %>
|
||||
<p><%= f.submit "Update message", class: "btn blue left" %></p>
|
||||
<%= f.hidden_field :user_sender, value: @message.user_sender %>
|
||||
<%= f.hidden_field :user_target, value: @message.user_target %>
|
||||
<% end %>
|
||||
<%= button_to "Delete ", @message, :method => "delete", data: {confirm: "Delete message & comments forever?"}, class: "btn red right" %>
|
||||
<div class="clear"></div>
|
||||
|
||||
@@ -15,13 +15,21 @@
|
||||
<% @messages.each do |message| %>
|
||||
<div class="item-group with-avatar">
|
||||
<div class="header">
|
||||
<%= link_to(message.user_sender.avatar(64), message.user_sender, title: message.user_sender.ign) %>
|
||||
<%= render partial: "users/username", locals: { user: message.user_sender } %>
|
||||
<%= ago message.created_at %>
|
||||
<span style="font-size:18px">
|
||||
<%
|
||||
if current_user == message.user_sender
|
||||
user = message.user_target
|
||||
else
|
||||
user = message.user_sender
|
||||
end
|
||||
%>
|
||||
<%= link_to(user.avatar(64), user, title: user.ign) %>
|
||||
<%= render partial: "users/username", locals: { user: user } %>
|
||||
<span style="font-size:16px">
|
||||
|
||||
<b><%= link_to message.subject, message %></b>
|
||||
|
|
||||
<b><%= link_to message.subject, messages_path %></b>
|
||||
</span>
|
||||
<%= ago message.created_at %>
|
||||
<div class="right">
|
||||
<%= link_to "Delete message", message, :method => "delete", class: "editlink", data: {confirm: "Delete this message forever?"} %>
|
||||
</div>
|
||||
@@ -29,7 +37,21 @@
|
||||
</div>
|
||||
<div class="items">
|
||||
<div class="item">
|
||||
<%= render_md(truncate message.text, length: 20, omission: "...").html_safe %>
|
||||
<%= truncate message.text, length: 20, omission: "..." %>
|
||||
<div class="item-info items bold">
|
||||
<% if rpl = message.replies.last %>
|
||||
<%= rpl.author.name %>
|
||||
<%
|
||||
position = message.replies.count - 1
|
||||
page = position / Kaminari.config.default_per_page + 1
|
||||
%>
|
||||
<%= link_to "replied", message_path(message, page: page) + "#reply-#{rpl.id}" %>
|
||||
<%= ago rpl.created_at %>.
|
||||
<% else %>
|
||||
No replies yet.
|
||||
<% end %>
|
||||
</div>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
<%= link_to "Messages", messages_path %>
|
||||
<h1><%= title @message.subject %></h1>
|
||||
<div class="item-group thread with-avatar" id="message-<%= @message.id %>">
|
||||
<div class="header">
|
||||
<%= link_to(@message.sender.avatar(64), @message.sender, title: @message.sender.ign) %>
|
||||
<%= render partial: "users/username", locals: { user: @message.sender } %>
|
||||
<%= link_to p do %>
|
||||
<%= ago @message.created_at %>
|
||||
<% end %>
|
||||
<%= link_to "edit", edit_message_path(@message), class: "editlink" if mod? || @message.sender.is?(current_user) %>
|
||||
<div class="clear-right"></div>
|
||||
</div>
|
||||
<div class="items">
|
||||
<% if @message.edited? %>
|
||||
<div class="item edited">
|
||||
Last edited <%= ago @message.updated_at %> by <%= link_to @message.editor.name, @message.editor %>.
|
||||
</div>
|
||||
<% end %>
|
||||
<div class="item content">
|
||||
<%= render_md(@message.text).html_safe %>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="replies">
|
||||
<h3><%= "#{pluralize(@message.replies.size, 'reply')}." %></h3>
|
||||
<% @replies.each do |reply| %>
|
||||
<%= render partial: "messagereplies/reply", locals: {reply: reply} %>
|
||||
<% end %>
|
||||
|
||||
<%= paginate @replies %>
|
||||
|
||||
<%= render partial: "messagereplies/new", locals: {reply: Messagereply.new(message: @message)} %>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<%= form_for [reply.thread, reply] do |f| %>
|
||||
<%= render partial: "md_editor", locals: {name: "threadreply[content]", content: reply.content} %>
|
||||
<p><%= f.submit "Reply#{ ' (Locked)' if reply.thread.locked? }", class: "btn blue" %></p>
|
||||
<% end %>
|
||||
<% end %>
|
||||
|
||||
@@ -12,4 +12,4 @@
|
||||
<p><%= f.submit "Reply", class: "btn blue left" %></p>
|
||||
<% end %>
|
||||
<p><%= button_to "Delete reply", [@reply.thread, @reply], method: "delete", data: {confirm: "Delete reply forever?"}, class: "btn red right" %></p>
|
||||
<div class="clear"></div>
|
||||
<div class="clear"></div>
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
<%= link_to "edit profile", edit_user_path(@user), :class => "btn blue" %>
|
||||
<% end %>
|
||||
<% if @user.is?(current_user) %>
|
||||
<%= link_to "Private Messages (#{Message.where(user_target: current_user).count})", messages_path, :class => "btn blue" %>
|
||||
<% else %>
|
||||
<%= link_to "Private Messages (#{Message.where("user_sender_id = ? OR user_target_id = ?", current_user.id, current_user.id).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 %>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user