discourse/app/serializers/remote_theme_serializer.rb
Martin Brennan e708c99e12
FIX: Hide broken theme about/license URLs (#29930)
At the top of the theme show page we have a link
to the theme About and License, which are supposed
to be URLs. However some themes have left placeholder
text in these metadata fields, which leads to a wonky
experience.

Instead, we can just not serialize these fields if they
are not valid URLs, then they will not show as links
in the UI.
2024-11-26 13:53:10 +10:00

36 lines
957 B
Ruby

# frozen_string_literal: true
class RemoteThemeSerializer < ApplicationSerializer
attributes :id,
:remote_url,
:remote_version,
:local_version,
:commits_behind,
:branch,
:remote_updated_at,
:updated_at,
:github_diff_link,
:last_error_text,
:is_git?,
:license_url,
:about_url,
:authors,
:theme_version,
:minimum_discourse_version,
:maximum_discourse_version
# ActiveModelSerializer has some pretty nutty logic where it tries to find
# the path here from action dispatch, tell it not to
def about_url
object.about_url if UrlHelper.is_valid_url?(object.about_url)
end
def license_url
object.license_url if UrlHelper.is_valid_url?(object.license_url)
end
def include_github_diff_link?
github_diff_link.present?
end
end