diff options
Diffstat (limited to 'templates/shared/user')
-rw-r--r-- | templates/shared/user/authorlink.tmpl | 1 | ||||
-rw-r--r-- | templates/shared/user/avatarlink.tmpl | 1 | ||||
-rw-r--r-- | templates/shared/user/blocked_users.tmpl | 83 | ||||
-rw-r--r-- | templates/shared/user/name.tmpl | 1 | ||||
-rw-r--r-- | templates/shared/user/namelink.tmpl | 1 | ||||
-rw-r--r-- | templates/shared/user/org_profile_avatar.tmpl | 16 | ||||
-rw-r--r-- | templates/shared/user/profile_big_avatar.tmpl | 129 |
7 files changed, 232 insertions, 0 deletions
diff --git a/templates/shared/user/authorlink.tmpl b/templates/shared/user/authorlink.tmpl new file mode 100644 index 0000000..d57a635 --- /dev/null +++ b/templates/shared/user/authorlink.tmpl @@ -0,0 +1 @@ +<a class="author text black tw-font-semibold muted"{{if gt .ID 0}} href="{{.HomeLink}}"{{end}}>{{.GetDisplayName}}</a>{{if .IsBot}}<span class="ui basic label tw-p-1">bot</span>{{end}} diff --git a/templates/shared/user/avatarlink.tmpl b/templates/shared/user/avatarlink.tmpl new file mode 100644 index 0000000..5e3ed7a --- /dev/null +++ b/templates/shared/user/avatarlink.tmpl @@ -0,0 +1 @@ +<a class="avatar"{{if gt .user.ID 0}} href="{{.user.HomeLink}}"{{end}}>{{ctx.AvatarUtils.Avatar .user}}</a> diff --git a/templates/shared/user/blocked_users.tmpl b/templates/shared/user/blocked_users.tmpl new file mode 100644 index 0000000..e83a039 --- /dev/null +++ b/templates/shared/user/blocked_users.tmpl @@ -0,0 +1,83 @@ +<h4 class="ui top attached header"> + {{ctx.Locale.Tr "user.block.title"}} +</h4> +<div class="ui attached segment"> + <p>{{ctx.Locale.Tr "user.block.info_1"}}</p> + <ul> + <li>{{ctx.Locale.Tr "user.block.info_2"}}</li> + <li>{{ctx.Locale.Tr "user.block.info_3"}}</li> + <li>{{ctx.Locale.Tr "user.block.info_4"}}</li> + <li>{{ctx.Locale.Tr "user.block.info_5"}}</li> + <li>{{ctx.Locale.Tr "user.block.info_6"}}</li> + <li>{{ctx.Locale.Tr "user.block.info_7"}}</li> + </ul> +</div> +<div class="ui segment"> + <form class="ui form ignore-dirty" action="{{$.Link}}" method="post"> + {{.CsrfTokenHtml}} + <input type="hidden" name="action" value="block" /> + <div id="search-user-box" class="field ui fluid search input"> + <input class="prompt tw-mr-2" name="blockee" placeholder="{{ctx.Locale.Tr "search.user_kind"}}" autocomplete="off" required> + <button class="ui red button">{{ctx.Locale.Tr "user.block.block"}}</button> + </div> + <div class="field"> + <label>{{ctx.Locale.Tr "user.block.note.title"}}</label> + <input name="note"> + <p class="help">{{ctx.Locale.Tr "user.block.note.info"}}</p> + </div> + </form> +</div> +<h4 class="ui top attached header"> + {{ctx.Locale.Tr "user.block.list"}} +</h4> +<div class="ui attached segment"> + <div class="flex-list"> + {{range .UserBlocks}} + <div class="flex-item"> + <div class="flex-item-leading"> + {{ctx.AvatarUtils.Avatar .Blockee}} + </div> + <div class="flex-item-main"> + <div class="flex-item-title"> + <a class="item" href="{{.Blockee.HTMLURL}}">{{.Blockee.GetDisplayName}}</a> + </div> + {{if .Note}} + <div class="flex-item-body"> + <i>{{ctx.Locale.Tr "user.block.note"}}:</i> {{.Note}} + </div> + {{end}} + </div> + <div class="flex-item-trailing"> + <button class="ui compact mini button show-modal" data-modal="#block-user-note-modal" data-modal-modal-blockee="{{.Blockee.Name}}" data-modal-modal-note="{{.Note}}">{{ctx.Locale.Tr "user.block.note.edit"}}</button> + <form action="{{$.Link}}" method="post"> + {{$.CsrfTokenHtml}} + <input type="hidden" name="action" value="unblock" /> + <input type="hidden" name="blockee" value="{{.Blockee.Name}}" /> + <button class="ui compact mini button">{{ctx.Locale.Tr "user.block.unblock"}}</button> + </form> + </div> + </div> + {{else}} + <div class="item">{{ctx.Locale.Tr "user.block.list.none"}}</div> + {{end}} + </div> +</div> +<div class="ui small modal" id="block-user-note-modal"> + <div class="header">{{ctx.Locale.Tr "user.block.note.edit"}}</div> + <div class="content"> + <form class="ui form" action="{{$.Link}}" method="post"> + {{.CsrfTokenHtml}} + <input type="hidden" name="action" value="note" /> + <input type="hidden" name="blockee" class="modal-blockee" /> + <div class="field"> + <label>{{ctx.Locale.Tr "user.block.note.title"}}</label> + <input name="note" class="modal-note" /> + <p class="help">{{ctx.Locale.Tr "user.block.note.info"}}</p> + </div> + <div class="text right actions"> + <button class="ui cancel button">{{ctx.Locale.Tr "cancel"}}</button> + <button class="ui primary button">{{ctx.Locale.Tr "save"}}</button> + </div> + </form> + </div> +</div> diff --git a/templates/shared/user/name.tmpl b/templates/shared/user/name.tmpl new file mode 100644 index 0000000..896349f --- /dev/null +++ b/templates/shared/user/name.tmpl @@ -0,0 +1 @@ +<a class="text muted" href="{{.HomeLink}}">{{.Name}}{{if .FullName}} ({{.FullName}}){{end}}</a> diff --git a/templates/shared/user/namelink.tmpl b/templates/shared/user/namelink.tmpl new file mode 100644 index 0000000..a122f4f --- /dev/null +++ b/templates/shared/user/namelink.tmpl @@ -0,0 +1 @@ +<a{{if gt .ID 0}} href="{{.HomeLink}}"{{end}}>{{.GetDisplayName}}</a> diff --git a/templates/shared/user/org_profile_avatar.tmpl b/templates/shared/user/org_profile_avatar.tmpl new file mode 100644 index 0000000..c0abcab --- /dev/null +++ b/templates/shared/user/org_profile_avatar.tmpl @@ -0,0 +1,16 @@ +{{with .ContextUser}} + <div class="ui container"> + <div class="ui vertically grid head"> + <div class="column"> + <div class="ui header tw-flex tw-items-center tw-break-anywhere"> + {{ctx.AvatarUtils.Avatar . 100}} + <span class="text grey"><a class="muted" href="{{.HomeLink}}">{{.DisplayName}}</a></span> + <span class="org-visibility"> + {{if .Visibility.IsLimited}}<div class="ui medium basic horizontal label">{{ctx.Locale.Tr "org.settings.visibility.limited_shortname"}}</div>{{end}} + {{if .Visibility.IsPrivate}}<div class="ui medium basic horizontal label">{{ctx.Locale.Tr "org.settings.visibility.private_shortname"}}</div>{{end}} + </span> + </div> + </div> + </div> + </div> +{{end}} diff --git a/templates/shared/user/profile_big_avatar.tmpl b/templates/shared/user/profile_big_avatar.tmpl new file mode 100644 index 0000000..d3033b4 --- /dev/null +++ b/templates/shared/user/profile_big_avatar.tmpl @@ -0,0 +1,129 @@ +{{if .IsHTMX}} + {{template "base/alert" .}} +{{end}} +<div id="profile-avatar-card" class="ui card" hx-swap="morph"> + <div id="profile-avatar" class="content tw-flex"> + {{if eq .SignedUserID .ContextUser.ID}} + <a class="image" href="{{AppSubUrl}}/user/settings" data-tooltip-content="{{ctx.Locale.Tr "user.change_avatar"}}"> + {{/* the size doesn't take affect (and no need to take affect), image size(width) should be controlled by the parent container since this is not a flex layout*/}} + {{ctx.AvatarUtils.Avatar .ContextUser 256}} + </a> + {{else}} + <span class="image"> + {{ctx.AvatarUtils.Avatar .ContextUser 256}} + </span> + {{end}} + </div> + <div class="content tw-break-anywhere profile-avatar-name"> + {{if .ContextUser.FullName}}<span class="header text center">{{.ContextUser.FullName}}</span>{{end}} + <span class="username text center">{{.ContextUser.Name}}{{if .ContextUser.Pronouns}} · {{.ContextUser.Pronouns}}{{end}} {{if .IsAdmin}} + <a class="muted" href="{{AppSubUrl}}/admin/users/{{.ContextUser.ID}}" data-tooltip-content="{{ctx.Locale.Tr "admin.users.details"}}"> + {{svg "octicon-gear" 18}} + </a> + {{end}}</span> + <div class="tw-mt-2"> + <a class="muted" href="{{.ContextUser.HomeLink}}?tab=followers">{{svg "octicon-people" 18 "tw-mr-1"}}{{ctx.Locale.TrN .NumFollowers "user.followers_one" "user.followers_few" .NumFollowers}}</a> · <a class="muted" href="{{.ContextUser.HomeLink}}?tab=following">{{ctx.Locale.TrN .NumFollowing "user.following_one" "user.following_few" .NumFollowing}}</a> + {{if and .EnableFeed (or .IsAdmin (eq .SignedUserID .ContextUser.ID) (not .ContextUser.KeepActivityPrivate))}} + <a href="{{.ContextUser.HomeLink}}.rss"><i class="ui text grey tw-ml-2" data-tooltip-content="{{ctx.Locale.Tr "rss_feed"}}">{{svg "octicon-rss" 18}}</i></a> + {{end}} + </div> + </div> + <div class="extra content tw-break-anywhere"> + <ul> + {{if .ContextUser.Location}} + <li> + {{svg "octicon-location"}} + <span class="tw-flex-1">{{.ContextUser.Location}}</span> + {{if .ContextUserLocationMapURL}} + <a href="{{.ContextUserLocationMapURL}}" rel="nofollow noreferrer" data-tooltip-content="{{ctx.Locale.Tr "user.show_on_map"}}"> + {{svg "octicon-link-external"}} + </a> + {{end}} + </li> + {{end}} + {{if .ShowUserEmail}} + <li> + {{svg "octicon-mail"}} + <a class="tw-flex-1" href="mailto:{{.ContextUser.Email}}" rel="nofollow">{{.ContextUser.Email}}</a> + {{if (eq .SignedUserID .ContextUser.ID)}} + <a href="{{AppSubUrl}}/user/settings#privacy-user-settings"> + <i data-tooltip-content="{{ctx.Locale.Tr "user.email_visibility.limited"}}"> + {{svg "octicon-unlock"}} + </i> + </a> + {{end}} + </li> + {{end}} + {{if .ContextUser.Website}} + <li> + {{svg "octicon-link"}} + <a target="_blank" rel="noopener noreferrer me" href="{{.ContextUser.Website}}">{{.ContextUser.Website}}</a> + </li> + {{end}} + {{if $.RenderedDescription}} + <li> + <div class="render-content markup">{{$.RenderedDescription}}</div> + </li> + {{end}} + {{range .OpenIDs}} + {{if .Show}} + <li> + {{svg "fontawesome-openid"}} + <a target="_blank" rel="noopener noreferrer" href="{{.URI}}">{{.URI}}</a> + </li> + {{end}} + {{end}} + <li>{{svg "octicon-calendar"}} <span>{{ctx.Locale.Tr "user.joined_on" (DateTime "short" .ContextUser.CreatedUnix)}}</span></li> + {{if and .Orgs .HasOrgsVisible}} + <li> + <ul class="user-orgs"> + {{range .Orgs}} + {{if (or .Visibility.IsPublic (and ($.SignedUser) (or .Visibility.IsLimited (and (.HasMemberWithUserID ctx $.SignedUserID) .Visibility.IsPrivate) ($.IsAdmin))))}} + <li> + <a href="{{.HomeLink}}" data-tooltip-content="{{.Name}}"> + {{ctx.AvatarUtils.Avatar .}} + </a> + </li> + {{end}} + {{end}} + </ul> + </li> + {{end}} + {{if .Badges}} + <li> + <ul class="user-badges"> + {{range .Badges}} + <li> + <img width="64" height="64" src="{{.ImageURL}}" alt="{{.Description}}" data-tooltip-content="{{.Description}}"> + </li> + {{end}} + </ul> + </li> + {{end}} + {{if and .IsSigned (ne .SignedUserID .ContextUser.ID)}} + <li class="follow" hx-target="#profile-avatar-card" hx-indicator="#profile-avatar-card"> + {{if $.IsFollowing}} + <button hx-post="{{.ContextUser.HomeLink}}?action=unfollow" class="ui basic red button"> + {{svg "octicon-person"}} {{ctx.Locale.Tr "user.unfollow"}} + </button> + {{else}} + <button hx-post="{{.ContextUser.HomeLink}}?action=follow" class="ui basic primary button"> + {{svg "octicon-person"}} {{ctx.Locale.Tr "user.follow"}} + </button> + {{end}} + </li> + <li class="block" hx-target="#profile-avatar-card" hx-indicator="#profile-avatar-card"> + {{if $.IsBlocked}} + <button class="ui basic red button" hx-post="{{.ContextUser.HomeLink}}?action=unblock"> + {{svg "octicon-person"}} {{ctx.Locale.Tr "user.unblock"}} + </button> + {{else}} + <button type="submit" class="ui basic orange button" data-modal-id="block-user" hx-post="{{.ContextUser.HomeLink}}?action=block" hx-confirm="-"> + {{svg "octicon-blocked"}} {{ctx.Locale.Tr "user.block"}} + </button> + {{end}} + </li> + {{end}} + </ul> + </div> +</div> |