Serialize mentions in the order they are added (#6836)
Up until now, the order seemed to be in the *opposite* order, which caused the WebUI to populate mentions in reversed order when replying to toots local to one's instance.
This commit is contained in:
		@@ -351,7 +351,7 @@ class OStatus::AtomSerializer
 | 
			
		||||
    append_element(entry, 'summary', status.spoiler_text, 'xml:lang': status.language) if status.spoiler_text?
 | 
			
		||||
    append_element(entry, 'content', Formatter.instance.format(status).to_str, type: 'html', 'xml:lang': status.language)
 | 
			
		||||
 | 
			
		||||
    status.mentions.each do |mentioned|
 | 
			
		||||
    status.mentions.order(:id).each do |mentioned|
 | 
			
		||||
      append_element(entry, 'link', nil, rel: :mentioned, 'ostatus:object-type': OStatus::TagManager::TYPES[:person], href: OStatus::TagManager.instance.uri_for(mentioned.account))
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -57,7 +57,7 @@ class ActivityPub::NoteSerializer < ActiveModel::Serializer
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def virtual_tags
 | 
			
		||||
    object.mentions + object.tags + object.emojis
 | 
			
		||||
    object.mentions.order(:id) + object.tags + object.emojis
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def atom_uri
 | 
			
		||||
 
 | 
			
		||||
@@ -15,7 +15,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
 | 
			
		||||
  belongs_to :account, serializer: REST::AccountSerializer
 | 
			
		||||
 | 
			
		||||
  has_many :media_attachments, serializer: REST::MediaAttachmentSerializer
 | 
			
		||||
  has_many :mentions
 | 
			
		||||
  has_many :ordered_mentions, key: :mentions
 | 
			
		||||
  has_many :tags
 | 
			
		||||
  has_many :emojis, serializer: REST::CustomEmojiSerializer
 | 
			
		||||
 | 
			
		||||
@@ -86,6 +86,10 @@ class REST::StatusSerializer < ActiveModel::Serializer
 | 
			
		||||
      %w(public unlisted).include?(object.visibility)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def ordered_mentions
 | 
			
		||||
    object.mentions.order(:id)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  class ApplicationSerializer < ActiveModel::Serializer
 | 
			
		||||
    attributes :name, :website
 | 
			
		||||
  end
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user