user.tmpl 7.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. {{with .Data}}
  2. {{template "header.tmpl" (WithContext .CommonData $.Ctx)}}
  3. <div class="page-title"> User </div>
  4. <div class="user-info-container">
  5. <div class="user-profile-img-container">
  6. <a class="img-link" href="{{.User.Avatar}}" target="_blank">
  7. <img class="user-profile-img" src="{{.User.Avatar}}" alt="profile-avatar" height="96" />
  8. </a>
  9. </div>
  10. <div class="user-profile-details-container">
  11. <div>
  12. <bdi class="status-dname">{{EmojiFilter (HTML .User.DisplayName) .User.Emojis | Raw}}</bdi>
  13. <span class="status-uname">@{{.User.Acct}}</span>
  14. <a class="remote-link" href="{{.User.URL}}" target="_blank" title="remote profile">
  15. source
  16. </a>
  17. </div>
  18. {{if not .IsCurrent}}
  19. <div>
  20. <span> {{if .User.Pleroma.Relationship.FollowedBy}} follows you - {{end}} </span>
  21. <span> {{if .User.Pleroma.IsAdmin}} your dear admin - {{end}} </span>
  22. <span> {{if .User.Pleroma.IsModerator}} your dear moderator - {{end}} </span>
  23. {{if .User.Pleroma.Relationship.BlockedBy}} blocks you - {{end}}
  24. {{if .User.Pleroma.Relationship.Following}}
  25. <form class="d-inline" action="/unfollow/{{.User.ID}}" method="post">
  26. <input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
  27. <input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
  28. <input type="submit" value="unfollow" class="btn-link">
  29. </form>
  30. {{else}}
  31. <form class="d-inline" action="/follow/{{.User.ID}}" method="post">
  32. <input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
  33. <input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
  34. <input type="submit" value="{{if .User.Pleroma.Relationship.Requested}}resend request{{else}}follow{{end}}" class="btn-link">
  35. </form>
  36. {{end}}
  37. {{if .User.Pleroma.Relationship.Requested}}
  38. -
  39. <form class="d-inline" action="/unfollow/{{.User.ID}}" method="post">
  40. <input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
  41. <input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
  42. <input type="submit" value="cancel request" class="btn-link">
  43. </form>
  44. {{end}}
  45. -
  46. {{if .User.Pleroma.Relationship.Subscribing}}
  47. <form class="d-inline" action="/unsubscribe/{{.User.ID}}" method="post">
  48. <input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
  49. <input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
  50. <input type="submit" value="unsubscribe" class="btn-link">
  51. </form>
  52. {{else}}
  53. <form class="d-inline" action="/subscribe/{{.User.ID}}" method="post">
  54. <input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
  55. <input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
  56. <input type="submit" value="subscribe" class="btn-link">
  57. </form>
  58. {{end}}
  59. </div>
  60. <div>
  61. {{if .User.Pleroma.Relationship.Blocking}}
  62. <form class="d-inline" action="/unblock/{{.User.ID}}" method="post">
  63. <input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
  64. <input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
  65. <input type="submit" value="unblock" class="btn-link">
  66. </form>
  67. {{else}}
  68. <form class="d-inline" action="/block/{{.User.ID}}" method="post">
  69. <input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
  70. <input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
  71. <input type="submit" value="block" class="btn-link">
  72. </form>
  73. {{end}}
  74. -
  75. {{if .User.Pleroma.Relationship.Muting}}
  76. <form class="d-inline" action="/unmute/{{.User.ID}}" method="post">
  77. <input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
  78. <input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
  79. <input type="submit" value="unmute" class="btn-link">
  80. </form>
  81. {{else}}
  82. <a href="/mute/{{.User.ID}}"> mute </a>
  83. {{end}}
  84. {{if .User.Pleroma.Relationship.Following}}
  85. -
  86. {{if .User.Pleroma.Relationship.ShowingReblogs}}
  87. <form class="d-inline" action="/follow/{{.User.ID}}?reblogs=false" method="post">
  88. <input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
  89. <input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
  90. <input type="submit" value="hide retweets" class="btn-link">
  91. </form>
  92. {{else}}
  93. <form class="d-inline" action="/follow/{{.User.ID}}" method="post">
  94. <input type="hidden" name="csrf_token" value="{{$.Ctx.CSRFToken}}">
  95. <input type="hidden" name="referrer" value="{{$.Ctx.Referrer}}">
  96. <input type="submit" value="show retweets" class="btn-link">
  97. </form>
  98. {{end}}
  99. {{end}}
  100. </div>
  101. {{end}}
  102. <div>
  103. <a href="/user/{{.User.ID}}"> statuses ({{.User.StatusesCount}}) </a> -
  104. <a href="/user/{{.User.ID}}/following"> following ({{.User.FollowingCount}}) </a> -
  105. <a href="/user/{{.User.ID}}/followers"> followers ({{.User.FollowersCount}}) </a> -
  106. <a href="/user/{{.User.ID}}/media"> media </a> -
  107. <a href="/user/{{.User.ID}}/pinned"> pinned statuses </a>
  108. </div>
  109. {{if .IsCurrent}}
  110. <div>
  111. <a href="/user/{{.User.ID}}/bookmarks"> bookmarks </a>
  112. - <a href="/user/{{.User.ID}}/likes"> likes </a>
  113. - <a href="/user/{{.User.ID}}/mutes"> mutes </a>
  114. - <a href="/user/{{.User.ID}}/blocks"> blocks </a>
  115. {{if .User.Locked}}- <a href="/user/{{.User.ID}}/requests"> requests </a>{{end}}
  116. </div>
  117. {{end}}
  118. <div>
  119. <a href="/usersearch/{{.User.ID}}"> search statuses </a>
  120. {{if .IsCurrent}} - <a href="/filters"> filters </a> {{end}}
  121. </div>
  122. </div>
  123. <details>
  124. <summary>About user</summary>
  125. <div class="user-profile-decription">
  126. [User created: {{.User.CreatedAt}}]<br>
  127. {{- EmojiFilter .User.Note .User.Emojis | Raw -}}
  128. </div>
  129. </details>
  130. {{if .User.Header}}
  131. <details>
  132. <summary>Banner</summary>
  133. <div class="user-profile-img-container">
  134. <a class="img-link" href="{{.User.Header}}" target="_blank">
  135. <img class="profile-banner" src="{{.User.Header}}" alt="profile-header" loading="lazy" />
  136. </a>
  137. </div>
  138. </details>
  139. {{end}}
  140. {{if .User.Fields}}
  141. <div class="user-fields">
  142. {{range .User.Fields}}
  143. <div>{{- EmojiFilter (HTML .Name) $.Data.User.Emojis | Raw}} - {{EmojiFilter .Value $.Data.User.Emojis | Raw -}}</div>
  144. {{end}}
  145. </div>
  146. {{end}}
  147. </div>
  148. {{if eq .Type ""}}
  149. <div class="page-title"> Statuses </div>
  150. {{range .Statuses}}
  151. {{template "status.tmpl" (WithContext . $.Ctx)}}
  152. {{else}}
  153. <div class="no-data-found">No data found</div>
  154. {{end}}
  155. {{else if eq .Type "following"}}
  156. <div class="page-title"> Following </div>
  157. {{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
  158. {{else if eq .Type "followers"}}
  159. <div class="page-title"> Followers </div>
  160. {{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
  161. {{else if eq .Type "media"}}
  162. <div class="page-title"> Statuses with media </div>
  163. {{range .Statuses}}
  164. {{template "status.tmpl" (WithContext . $.Ctx)}}
  165. {{else}}
  166. <div class="no-data-found">No data found</div>
  167. {{end}}
  168. {{else if eq .Type "pinned"}}
  169. <div class="page-title"> Pinned statuses </div>
  170. {{range .Statuses}}
  171. {{template "status.tmpl" (WithContext . $.Ctx)}}
  172. {{else}}
  173. <div class="no-data-found">No data found</div>
  174. {{end}}
  175. {{else if eq .Type "bookmarks"}}
  176. <div class="page-title"> Bookmarks </div>
  177. {{range .Statuses}}
  178. {{template "status.tmpl" (WithContext . $.Ctx)}}
  179. {{else}}
  180. <div class="no-data-found">No data found</div>
  181. {{end}}
  182. {{else if eq .Type "likes"}}
  183. <div class="page-title"> Likes </div>
  184. {{range .Statuses}}
  185. {{template "status.tmpl" (WithContext . $.Ctx)}}
  186. {{else}}
  187. <div class="no-data-found">No data found</div>
  188. {{end}}
  189. {{else if eq .Type "mutes"}}
  190. <div class="page-title"> Mutes </div>
  191. {{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
  192. {{else if eq .Type "blocks"}}
  193. <div class="page-title"> Blocks </div>
  194. {{template "userlist.tmpl" (WithContext .Users $.Ctx)}}
  195. {{else if eq .Type "requests"}}
  196. <div class="page-title"> Follow requests </div>
  197. {{template "requestlist.tmpl" (WithContext .Users $.Ctx)}}
  198. {{end}}
  199. <div class="pagination">
  200. {{if .NextLink}}
  201. <a href="{{.NextLink}}">[next]</a>
  202. {{end}}
  203. </div>
  204. {{template "footer.tmpl"}}
  205. {{end}}