2019-11-12 02:27:09 +01:00
|
|
|
.profile-top
|
|
|
|
.profile-top__avatar
|
2024-05-01 00:10:05 +02:00
|
|
|
- avatar = render PhilomenaWeb.UserAttributionView, "_user_avatar.html", object: %{user: @user}, class: "avatar--large"
|
2020-06-28 21:49:34 +02:00
|
|
|
= if current?(@user, @conn.assigns.current_user) do
|
2024-06-06 22:28:35 +02:00
|
|
|
= link avatar, to: ~p"/avatar/edit?#{[profile: true]}", title: "Change avatar"
|
2020-06-28 21:49:34 +02:00
|
|
|
- else
|
|
|
|
= avatar
|
2019-11-12 02:27:09 +01:00
|
|
|
.profile-top__name-and-links
|
|
|
|
div
|
|
|
|
h1.profile-top__name-header
|
|
|
|
= @user.name
|
|
|
|
| 's profile
|
2019-12-06 01:36:45 +01:00
|
|
|
= render PhilomenaWeb.UserAttributionView, "_user_title.html", object: %{user: @user}, large: true
|
|
|
|
br
|
|
|
|
|
|
|
|
= if can?(@conn, :edit_description, @user) do
|
2024-06-06 22:28:35 +02:00
|
|
|
= link "Edit Personal Title", to: ~p"/profiles/#{@user}/description/edit"
|
2019-12-06 01:36:45 +01:00
|
|
|
br
|
|
|
|
|
2019-11-12 02:27:09 +01:00
|
|
|
span
|
|
|
|
' Member since
|
|
|
|
= pretty_time(@user.created_at)
|
|
|
|
|
|
|
|
.profile-top__options
|
|
|
|
ul.profile-top__options__column
|
2024-06-06 22:28:35 +02:00
|
|
|
li = link("Send message", to: ~p"/conversations/new?#{[recipient: @user.name]}")
|
|
|
|
li = link("Our conversations", to: ~p"/conversations?#{[with: @user.id]}")
|
|
|
|
li = link("Report this user", to: ~p"/profiles/#{@user}/reports/new")
|
2019-11-12 02:27:09 +01:00
|
|
|
|
|
|
|
ul.profile-top__options__column
|
2024-06-06 22:28:35 +02:00
|
|
|
li = link("Uploads", to: ~p"/search?#{[q: "uploader_id:#{@user.id}"]}")
|
|
|
|
li = link("Comments", to: ~p"/comments?#{[cq: "user_id:#{@user.id}"]}")
|
|
|
|
li = link("Posts", to: ~p"/posts?#{[pq: "user_id:#{@user.id}"]}")
|
2019-12-05 19:32:53 +01:00
|
|
|
= if current?(@user, @conn.assigns.current_user) do
|
2024-06-06 22:28:35 +02:00
|
|
|
li = link "My reports", to: ~p"/reports"
|
2019-11-12 02:27:09 +01:00
|
|
|
|
|
|
|
ul.profile-top__options__column
|
2024-06-06 22:28:35 +02:00
|
|
|
li = link("Favorites", to: ~p"/search?#{[q: "faved_by_id:#{@user.id}"]}")
|
|
|
|
li = link("Tag changes", to: ~p"/profiles/#{@user}/tag_changes")
|
|
|
|
li = link("Source changes", to: ~p"/profiles/#{@user}/source_changes")
|
2019-11-12 02:27:09 +01:00
|
|
|
|
2019-12-17 06:44:24 +01:00
|
|
|
= if can_index_user?(@conn) do
|
2019-12-20 23:35:46 +01:00
|
|
|
.js-staff-action
|
|
|
|
= render PhilomenaWeb.ProfileView, "_admin_block.html", assigns
|
2019-12-17 06:44:24 +01:00
|
|
|
|
2020-07-06 09:43:12 +02:00
|
|
|
= if @forced && (current?(@user, @conn.assigns.current_user) or can_index_user?(@conn)) do
|
|
|
|
.block
|
2024-05-20 22:30:41 +02:00
|
|
|
i.fa.icon--padded.small.fa-filter>
|
2020-07-06 09:43:12 +02:00
|
|
|
strong.comment_deleted> Forced Filter:
|
2024-06-06 22:28:35 +02:00
|
|
|
= link @forced.name, to: ~p"/filters/#{@forced}"
|
2020-07-06 09:43:12 +02:00
|
|
|
|
2019-12-20 01:00:09 +01:00
|
|
|
= if (current?(@user, @conn.assigns.current_user) or can?(@conn, :index, Philomena.Bans.User)) and Enum.any?(@bans) do
|
2023-11-23 17:07:49 +01:00
|
|
|
.block.block--warning
|
|
|
|
.block__header
|
|
|
|
i.fa.fa-ban
|
|
|
|
| Ban History
|
2019-12-08 21:32:54 +01:00
|
|
|
.block__content
|
|
|
|
= render PhilomenaWeb.BanView, "_bans.html", bans: @bans, conn: @conn
|
|
|
|
|
2019-11-12 02:27:09 +01:00
|
|
|
.column-layout
|
|
|
|
.column-layout__left
|
2019-12-06 00:11:15 +01:00
|
|
|
.block
|
|
|
|
.block__header
|
2023-11-23 17:07:49 +01:00
|
|
|
i.fa.fa-briefcase
|
|
|
|
| Commissions
|
2019-12-06 00:11:15 +01:00
|
|
|
= render PhilomenaWeb.ProfileView, "_commission.html", user: @user, commission_information: @commission_information, conn: @conn
|
|
|
|
|
2019-11-12 02:27:09 +01:00
|
|
|
.block
|
2024-06-13 00:01:15 +02:00
|
|
|
.block__header.flex
|
|
|
|
span
|
|
|
|
i.fa.fa-link
|
|
|
|
| Artist Links
|
|
|
|
= if current?(@user, @conn.assigns.current_user) or manages_links?(@conn, @user) do
|
|
|
|
.block__header__buttons
|
|
|
|
a.button href=~p"/profiles/#{@user}/artist_links/new"
|
|
|
|
i.fa.fa-link>
|
|
|
|
| Create
|
2023-11-23 17:07:49 +01:00
|
|
|
|
2020-08-27 23:47:07 +02:00
|
|
|
= for link <- @user.verified_links, should_see_link?(@conn, @user, link) do
|
2019-12-11 03:58:16 +01:00
|
|
|
- watchers = if link.tag, do: @watcher_counts[link.tag.id] || 0, else: 0
|
2019-12-11 01:59:43 +01:00
|
|
|
|
2020-08-27 23:47:07 +02:00
|
|
|
.block__content.alternating-color.break-word class=link_block_class(link)
|
2019-11-12 02:27:09 +01:00
|
|
|
.center
|
|
|
|
= if link.tag do
|
2019-12-06 18:12:55 +01:00
|
|
|
.tag_list = render PhilomenaWeb.TagView, "_tag.html", tag: link.tag, conn: @conn
|
2019-11-12 02:27:09 +01:00
|
|
|
= link(link.uri, to: link.uri)
|
|
|
|
|
2020-08-27 23:47:07 +02:00
|
|
|
= if current?(@user, @conn.assigns.current_user) or manages_links?(@conn, @user) do
|
2019-12-11 01:59:43 +01:00
|
|
|
br
|
|
|
|
' Watched by
|
|
|
|
=> watchers
|
|
|
|
= pluralize("user", "users", watchers)
|
|
|
|
|
2019-12-21 15:54:13 +01:00
|
|
|
= if manages_links?(@conn, @user) do
|
|
|
|
br
|
2019-12-31 00:56:29 +01:00
|
|
|
=> if link.public do
|
|
|
|
' Public
|
|
|
|
- else
|
|
|
|
' Hidden
|
|
|
|
' •
|
2024-06-06 22:28:35 +02:00
|
|
|
a href=~p"/profiles/#{@user}/artist_links/#{link}/edit"
|
2019-12-21 15:54:13 +01:00
|
|
|
' Edit
|
2020-09-28 16:36:27 +02:00
|
|
|
' •
|
2024-06-06 22:28:35 +02:00
|
|
|
a href=~p"/admin/artist_links/#{link}/reject" data-method="post"
|
2020-09-28 16:36:27 +02:00
|
|
|
' Reject
|
2020-08-27 23:47:07 +02:00
|
|
|
- else
|
|
|
|
=> unless link.public do
|
|
|
|
br
|
|
|
|
' Hidden
|
2024-06-13 00:01:15 +02:00
|
|
|
= if Enum.count(@user.verified_links) == 0 do
|
|
|
|
.block__content
|
|
|
|
p
|
|
|
|
span: i.fa.icon--padded--right.fa-info-circle
|
|
|
|
| No artist links associated
|
2019-12-21 15:54:13 +01:00
|
|
|
|
2019-11-12 02:27:09 +01:00
|
|
|
.block
|
2024-06-13 00:01:15 +02:00
|
|
|
.block__header.flex
|
|
|
|
span
|
|
|
|
i.fa.fa-award
|
|
|
|
| Badges
|
|
|
|
= if manages_awards?(@conn) and not hide_staff_tools?(@conn) do
|
|
|
|
.block__header__buttons
|
|
|
|
a.button href=~p"/profiles/#{@user}/awards/new"
|
|
|
|
i.fa.fa-trophy>
|
|
|
|
| Award
|
2019-11-12 02:27:09 +01:00
|
|
|
= for award <- award_order(@user.awards) do
|
|
|
|
.block__content.flex.flex--centered.flex--center-distributed.alternating-color.no-overflow title=award.label
|
|
|
|
.flex__grow.center
|
2019-11-12 02:37:11 +01:00
|
|
|
.badge = badge_image(award.badge, alt: award.label, width: "32", height: "32")
|
2019-11-12 02:27:09 +01:00
|
|
|
br
|
2019-11-12 02:41:26 +01:00
|
|
|
= award_title(award)
|
2019-11-12 02:27:09 +01:00
|
|
|
.flex__grow.center
|
2019-12-25 22:10:56 +01:00
|
|
|
=> pretty_time(award.awarded_on)
|
|
|
|
= if manages_awards?(@conn) do
|
2024-06-06 22:28:35 +02:00
|
|
|
= user_abbrv(award.awarded_by)
|
2019-11-12 02:27:09 +01:00
|
|
|
|
2019-12-15 21:02:13 +01:00
|
|
|
= if manages_awards?(@conn) do
|
|
|
|
.flex__grow.center
|
2024-06-06 22:28:35 +02:00
|
|
|
a href=~p"/profiles/#{@user}/awards/#{award}" data-method="delete" data-confirm="Are you really, really sure?"
|
2019-12-15 21:02:13 +01:00
|
|
|
' Remove
|
|
|
|
br
|
2024-06-06 22:28:35 +02:00
|
|
|
a href=~p"/profiles/#{@user}/awards/#{award}/edit"
|
2019-12-15 21:02:13 +01:00
|
|
|
' Edit
|
2024-06-13 00:01:15 +02:00
|
|
|
= if Enum.count(@user.awards) == 0 do
|
|
|
|
.block__content
|
2024-09-30 23:10:55 +02:00
|
|
|
p
|
2024-06-13 00:01:15 +02:00
|
|
|
span: i.fa.icon--padded--right.fa-info-circle
|
|
|
|
| No badge awards received
|
2019-12-05 19:35:44 +01:00
|
|
|
.block
|
2024-06-13 00:01:15 +02:00
|
|
|
.block__header.flex
|
|
|
|
span
|
|
|
|
i.fa.fa-question
|
|
|
|
| About Me
|
|
|
|
= if can?(@conn, :edit_description, @user) do
|
|
|
|
.block__header__buttons
|
|
|
|
a.button href=~p"/profiles/#{@user}/description/edit"
|
|
|
|
i.fa.fa-edit>
|
|
|
|
| Edit
|
2019-12-06 01:36:45 +01:00
|
|
|
|
2019-12-05 19:35:44 +01:00
|
|
|
= render PhilomenaWeb.ProfileView, "_about_me.html", user: @user, about_me: @about_me, conn: @conn
|
|
|
|
|
2019-12-20 23:35:46 +01:00
|
|
|
= if can_read_mod_notes?(@conn) and not hide_staff_tools?(@conn) do
|
2023-11-23 17:07:49 +01:00
|
|
|
.block.block--warning
|
2024-06-13 00:01:15 +02:00
|
|
|
.block__header.flex
|
|
|
|
span
|
|
|
|
i.fa.fa-sticky-note
|
|
|
|
| Mod Notes
|
|
|
|
.block__header__buttons
|
|
|
|
a.button href=~p"/profiles/#{@user}/details"
|
|
|
|
i.fa.fa-plus>
|
2024-06-13 00:22:58 +02:00
|
|
|
| Add / Edit
|
2023-11-23 17:07:49 +01:00
|
|
|
.block__content
|
2024-06-13 00:01:15 +02:00
|
|
|
= if Enum.count(@mod_notes) > 0 do
|
|
|
|
table.table
|
|
|
|
thead
|
|
|
|
tr
|
|
|
|
th Note
|
|
|
|
th Created
|
|
|
|
tbody
|
2024-09-30 23:10:55 +02:00
|
|
|
= for {mod_note, body} <- @mod_notes do
|
2024-06-13 00:01:15 +02:00
|
|
|
tr
|
|
|
|
td = body
|
|
|
|
td = pretty_time(mod_note.created_at)
|
|
|
|
- else
|
2024-09-30 23:10:55 +02:00
|
|
|
p
|
2024-06-13 00:01:15 +02:00
|
|
|
span: i.fa.icon--padded--right.fa-info-circle
|
|
|
|
| No mod notes
|
2019-12-22 23:17:20 +01:00
|
|
|
= if can_index_user?(@conn) do
|
2023-11-23 17:07:49 +01:00
|
|
|
.block.block--warning
|
2024-06-13 00:01:15 +02:00
|
|
|
.block__header.flex
|
|
|
|
span
|
|
|
|
i.fa.fa-clipboard
|
|
|
|
| Moderation Scratchpad
|
|
|
|
.block__header__buttons
|
|
|
|
a.button href=~p"/profiles/#{@user}/scratchpad/edit"
|
|
|
|
i.fa.fa-edit>
|
|
|
|
| Edit
|
2019-12-22 23:17:20 +01:00
|
|
|
.block__content.profile-about
|
2024-06-13 00:01:15 +02:00
|
|
|
- {_, contents} = @scratchpad
|
|
|
|
= if String.trim(contents) != "" do
|
|
|
|
= @scratchpad
|
|
|
|
- else
|
2024-09-30 23:10:55 +02:00
|
|
|
p
|
2024-06-13 00:01:15 +02:00
|
|
|
span: i.fa.icon--padded--right.fa-info-circle
|
|
|
|
| No information present
|
2019-12-17 18:29:18 +01:00
|
|
|
|
2019-11-12 02:27:09 +01:00
|
|
|
.column-layout__main
|
2019-12-05 14:55:49 +01:00
|
|
|
= render PhilomenaWeb.ProfileView, "_statistics.html", user: @user, statistics: @statistics, conn: @conn
|
2024-06-06 22:28:35 +02:00
|
|
|
= render PhilomenaWeb.ProfileView, "_recent_images.html", title: "Recent Artwork", images: @recent_artwork, view_all_path: ~p"/search?#{[q: tag_disjunction(@tags)]}", conn: @conn
|
|
|
|
= render PhilomenaWeb.ProfileView, "_recent_images.html", title: "Recent Uploads", images: @recent_uploads, view_all_path: ~p"/search?#{[q: "uploader_id:#{@user.id}"]}", conn: @conn
|
|
|
|
= render PhilomenaWeb.ProfileView, "_recent_images.html", title: "Recent Favorites", images: @recent_faves, view_all_path: ~p"/search?#{[q: "faved_by_id:#{@user.id}"]}", conn: @conn
|
2019-12-05 05:53:56 +01:00
|
|
|
= render PhilomenaWeb.ProfileView, "_recent_galleries.html", galleries: @recent_galleries, user: @user, conn: @conn
|
|
|
|
= render PhilomenaWeb.ProfileView, "_recent_comments.html", comments: @recent_comments, user: @user, conn: @conn
|
2019-12-13 20:26:43 +01:00
|
|
|
= render PhilomenaWeb.ProfileView, "_recent_posts.html", posts: @recent_posts, user: @user, conn: @conn
|