Skip to content

Commit

Permalink
Merge branch 'pull/5579'
Browse files Browse the repository at this point in the history
  • Loading branch information
AntonKhorev committed Feb 4, 2025
2 parents c4c7f68 + 2d0b7b6 commit 06cece2
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 5 deletions.
8 changes: 8 additions & 0 deletions app/helpers/note_helper.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
module NoteHelper
include ActionView::Helpers::TranslationHelper

def note_description(author, description)
if !author.nil? && author.status == "deleted"
RichText.new("text", t("notes.show.description_when_author_is_deleted"))
else
description
end
end

def note_event(event, at, by)
if by.nil?
t("notes.show.event_#{event}_by_anonymous_html",
Expand Down
14 changes: 12 additions & 2 deletions app/models/note.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@
class Note < ApplicationRecord
include GeoRecord

belongs_to :author, :class_name => "User", :foreign_key => "user_id", :optional => true

has_many :comments, -> { left_joins(:author).where(:visible => true, :users => { :status => [nil, "active", "confirmed"] }).order(:created_at) }, :class_name => "NoteComment", :foreign_key => :note_id
has_many :all_comments, -> { left_joins(:author).order(:created_at) }, :class_name => "NoteComment", :foreign_key => :note_id, :inverse_of => :note
has_many :subscriptions, :class_name => "NoteSubscription"
Expand Down Expand Up @@ -91,12 +93,20 @@ def freshly_closed_until

# Return the note's description, derived from the first comment
def description
comments.first.body
if user_ip.nil? && user_id.nil?
comments.first.body
else
RichText.new("text", super)
end
end

# Return the note's author object, derived from the first comment
def author
comments.first.author
if user_ip.nil? && user_id.nil?
comments.first.author
else
super
end
end

private
Expand Down
2 changes: 1 addition & 1 deletion app/views/api/notes/_note.rss.builder
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ xml.item do
xml.guid api_note_url(note)
xml.description render(:partial => "description", :object => note, :formats => [:html])

xml.dc :creator, note.author.display_name if note.author
xml.dc :creator, note.author.display_name unless note.author.nil? || note.author.status == "deleted"

xml.pubDate note.created_at.to_fs(:rfc822)
xml.geo :lat, note.lat
Expand Down
2 changes: 1 addition & 1 deletion app/views/notes/index.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
</td>
<td><%= link_to note.id, note %></td>
<td><%= note_author(note.author) %></td>
<td><%= note.description.to_html %></td>
<td><%= note_description(note.author, note.description).to_html %></td>
<td><%= friendly_date_ago(note.created_at) %></td>
<td><%= friendly_date_ago(note.updated_at) %></td>
</tr>
Expand Down
2 changes: 1 addition & 1 deletion app/views/notes/show.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<div>
<h4><%= t(".description") %></h4>
<div class="overflow-hidden ms-2">
<%= h(@note.description.to_html) %>
<%= h(note_description(@note.author, @note.description).to_html) %>
</div>

<div class="details" data-coordinates="<%= @note.lat %>,<%= @note.lon %>" data-status="<%= @note.status %>">
Expand Down
1 change: 1 addition & 0 deletions config/locales/en.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3069,6 +3069,7 @@ en:
open_title: "Unresolved note #%{note_name}"
closed_title: "Resolved note #%{note_name}"
hidden_title: "Hidden note #%{note_name}"
description_when_author_is_deleted: "deleted"
event_opened_by_html: "Created by %{user} %{time_ago}"
event_opened_by_anonymous_html: "Created by anonymous %{time_ago}"
event_commented_by_html: "Comment from %{user} %{time_ago}"
Expand Down

0 comments on commit 06cece2

Please sign in to comment.