2019-12-04 05:14:56 +01:00
|
|
|
defmodule PhilomenaWeb.ReportView do
|
|
|
|
use PhilomenaWeb, :view
|
|
|
|
|
|
|
|
alias Philomena.Images.Image
|
|
|
|
alias Philomena.Comments.Comment
|
|
|
|
alias Philomena.Commissions.Commission
|
|
|
|
alias Philomena.Conversations.Conversation
|
2019-12-05 05:12:49 +01:00
|
|
|
alias Philomena.Galleries.Gallery
|
2019-12-04 05:14:56 +01:00
|
|
|
alias Philomena.Posts.Post
|
|
|
|
alias Philomena.Users.User
|
|
|
|
|
|
|
|
import Ecto.Changeset
|
|
|
|
|
|
|
|
def report_categories do
|
|
|
|
[
|
2024-05-20 19:04:12 +02:00
|
|
|
{dgettext("rules", "Rule #0: Namecalling, trolling, discrimination"), "Rule #0"},
|
|
|
|
{dgettext("rules", "Rule #1: DNP, content theft, pay content, trace/bad edit"), "Rule #1"},
|
|
|
|
{dgettext("rules", "Rule #2: Bad tagging/sourcing"), "Rule #2"},
|
|
|
|
{dgettext("rules", "Rule #3: Image not related to the topic of the site"), "Rule #3"},
|
|
|
|
{dgettext("rules", "Rule #4: Complaining about filterable content"), "Rule #4"},
|
|
|
|
{dgettext("rules", "Rule #5: Illegal/forbidden content / underage porn"), "Rule #5"},
|
|
|
|
{dgettext("rules", "Rule #6: Spam, off-topic, or general site abuse"), "Rule #6"},
|
|
|
|
{dgettext("rules", "Rule #7: Above topic rating (NOT swear words)"), "Rule #7"},
|
|
|
|
{dgettext("rules", "Rule #8: Privacy violation"), "Rule #8"},
|
|
|
|
{dgettext("rules", "Rule #9: Commissions"), "Rule #9"},
|
|
|
|
{dgettext("rules", "Rule #n: Spirit of the rules"), "Rule #n"},
|
|
|
|
{dgettext("rules", "Other (please explain)"), "Other"},
|
|
|
|
{dgettext("rules", "Takedown request"), "Takedown request"}
|
2020-01-11 05:20:19 +01:00
|
|
|
]
|
2019-12-04 05:14:56 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
def image?(changeset), do: get_field(changeset, :reportable_type) == "Image"
|
|
|
|
def conversation?(changeset), do: get_field(changeset, :reportable_type) == "Conversation"
|
|
|
|
|
|
|
|
def report_row_class(%{state: "closed"}), do: "success"
|
|
|
|
def report_row_class(%{state: "in_progress"}), do: "warning"
|
|
|
|
def report_row_class(_report), do: "danger"
|
|
|
|
|
|
|
|
def pretty_state(%{state: "closed"}), do: "Closed"
|
|
|
|
def pretty_state(%{state: "in_progress"}), do: "In progress"
|
|
|
|
def pretty_state(%{state: "claimed"}), do: "Claimed"
|
|
|
|
def pretty_state(_report), do: "Open"
|
|
|
|
|
2019-12-04 14:13:10 +01:00
|
|
|
def link_to_reported_thing(conn, %Image{} = r),
|
2020-01-11 05:20:19 +01:00
|
|
|
do: link("Image >>#{r.id}", to: Routes.image_path(conn, :show, r))
|
2019-12-04 05:14:56 +01:00
|
|
|
|
2019-12-04 14:13:10 +01:00
|
|
|
def link_to_reported_thing(conn, %Comment{} = r),
|
2020-01-11 05:20:19 +01:00
|
|
|
do:
|
|
|
|
link("Comment on image >>#{r.image.id}",
|
|
|
|
to: Routes.image_path(conn, :show, r.image) <> "#comment_#{r.id}"
|
|
|
|
)
|
2019-12-04 05:14:56 +01:00
|
|
|
|
2019-12-04 14:13:10 +01:00
|
|
|
def link_to_reported_thing(conn, %Conversation{} = r),
|
2020-01-11 05:20:19 +01:00
|
|
|
do:
|
|
|
|
link("Conversation between #{r.from.name} and #{r.to.name}",
|
|
|
|
to: Routes.conversation_path(conn, :show, r)
|
|
|
|
)
|
2019-12-04 05:14:56 +01:00
|
|
|
|
2019-12-04 14:13:10 +01:00
|
|
|
def link_to_reported_thing(conn, %Commission{} = r),
|
2020-01-11 05:20:19 +01:00
|
|
|
do:
|
|
|
|
link("#{r.user.name}'s commission page",
|
|
|
|
to: Routes.profile_commission_path(conn, :show, r.user)
|
|
|
|
)
|
2019-12-04 05:14:56 +01:00
|
|
|
|
2019-12-05 05:12:49 +01:00
|
|
|
def link_to_reported_thing(conn, %Gallery{} = r),
|
2020-01-11 05:20:19 +01:00
|
|
|
do: link("Gallery '#{r.title}' by #{r.creator.name}", to: Routes.gallery_path(conn, :show, r))
|
2019-12-05 05:12:49 +01:00
|
|
|
|
2019-12-04 14:13:10 +01:00
|
|
|
def link_to_reported_thing(conn, %Post{} = r),
|
2020-01-11 05:20:19 +01:00
|
|
|
do:
|
|
|
|
link("Post in #{r.topic.title}",
|
|
|
|
to:
|
|
|
|
Routes.forum_topic_path(conn, :show, r.topic.forum, r.topic, post_id: r.id) <>
|
|
|
|
"#post_#{r.id}"
|
|
|
|
)
|
2019-12-04 05:14:56 +01:00
|
|
|
|
2019-12-04 14:13:10 +01:00
|
|
|
def link_to_reported_thing(conn, %User{} = r),
|
2020-01-11 05:20:19 +01:00
|
|
|
do: link("User '#{r.name}'", to: Routes.profile_path(conn, :show, r))
|
2019-12-04 05:14:56 +01:00
|
|
|
|
2019-12-13 19:52:57 +01:00
|
|
|
def link_to_reported_thing(_conn, _reportable) do
|
2019-12-04 05:14:56 +01:00
|
|
|
"Reported item permanently destroyed."
|
|
|
|
end
|
|
|
|
end
|