Made messages more thread-like (replies, editing, etc.)

This commit is contained in:
MrYummy
2017-06-15 14:29:25 +02:00
parent 80026caebc
commit 9b50ec652c
21 changed files with 380 additions and 21 deletions
+17
View 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>
+28 -6
View File
@@ -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">
&nbsp;
<b><%= link_to message.subject, message %></b>
&nbsp; | &nbsp;
<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>
+33
View File
@@ -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>