public-profile.gohtml (4071B)
1 {{ define "extra-head" }} 2 <style> 3 table td { 4 padding-right: 10px; 5 } 6 .thumbnail { width: 130px; height: 130px; margin-right: 10px; } 7 .username { font-size: 25px; } 8 </style> 9 {{ end }} 10 11 {{ define "title" }}dkf - /u/{{ .Data.User.Username }}{{ end }} 12 13 {{ define "content" }} 14 <div class="container"> 15 <table> 16 <tr> 17 <td rowspan="5"> 18 <div class="img-thumbnail thumbnail"> 19 {{ if .Data.User.Avatar }} 20 <img src="data:image;base64,{{ .Data.User.Avatar | b64 }}" alt="avatar" /> 21 {{ else }} 22 <img src="/public/img/avatar-placeholder.png" alt="avatar" /> 23 {{ end }} 24 </div> 25 </td> 26 <td colspan="2"> 27 <span {{ .Data.UserStyle | attr }}><span class="username">{{ .Data.User.Username }}</span></span> 28 {{ if .AuthUser }} 29 {{ if .AuthUser.IsAdmin }} 30 <a href="/admin/users/{{ .Data.User.ID }}/edit" class="btn btn-secondary btn-sm">Edit</a> 31 {{ end }} 32 {{ end }} 33 </td> 34 </tr> 35 <tr> 36 <td>Joined:</td> 37 <td> 38 <span> 39 {{ .Data.User.CreatedAt.Format "Jan 02, 2006" }} 40 {{ if .AuthUser }}{{ if .AuthUser.IsAdmin }}<span style="color: red;">{{ .Data.User.CreatedAt.Format "15:04:05" }}</span>{{ end }}{{ end }} 41 </span> 42 </td> 43 </tr> 44 {{ if .Data.User.LastSeenPublic }} 45 <tr> 46 <td>Last seen:</td> 47 <td> 48 <span> 49 {{ .Data.User.LastSeenAt.Format "Jan 02, 2006" }} 50 {{ if .AuthUser }}{{ if .AuthUser.IsAdmin }}<span style="color: red;">{{ .Data.User.LastSeenAt.Format "15:04:05" }}</span>{{ end }}{{ end }} 51 </span> 52 </td> 53 </tr> 54 {{ else if .AuthUser }} 55 {{ if .AuthUser.IsAdmin }} 56 <tr><td>Last seen (admin only):</td><td><span>{{ .Data.User.LastSeenAt.Format "Jan 02, 2006 15:04:05" }}</span></td></tr> 57 {{ end }} 58 {{ end }} 59 {{/* <tr><td>Last visit:</td><td><span>{{ .Data.User.CreatedAt.Format "Jan 02, 2006 15:04:05" }}</span></td></tr> */}} 60 <tr><td>Homepage:</td><td><span>{{ if .Data.User.Website }}<a href="{{ .Data.User.Website }}" rel="noopener noreferrer" target="_blank">{{ .Data.User.Website }}</a>{{ else }}none{{ end }}</span></td></tr> 61 <tr><td>Email:</td><td><span>{{ if .Data.User.Email }}{{ .Data.User.Email }}{{ else }}none{{ end }}</span></td></tr> 62 </table> 63 <a href="/forum/search?author={{ .Data.User.Username }}">forum threads</a> 64 <div class="mt-3"> 65 <label>Age public key:</label> 66 <span style="color: #c0ebff;">{{ if .Data.User.AgePublicKey }}{{ .Data.User.AgePublicKey }}{{ else }}none{{ end }}</span> 67 </div> 68 <div class="mt-3"> 69 <label for="pgpPublicKey"> 70 PGP key: 71 <span style="color: #82e17f;">{{ .Data.User.GPGPublicKey | getKeyFingerprint }}</span> 72 {{ if .Data.GpgKeyExpiredTime }} 73 <br /> 74 Expires on: 75 <span style="color: {{ if .Data.GpgKeyExpired }}#ff5959;{{ else if .Data.GpgKeyExpiredSoon }}orange{{ else }}#82e17f{{ end }};"> 76 {{ .Data.GpgKeyExpiredTime.Format "Jan 02, 2006 15:04:05" }} 77 </span> 78 {{ end }} 79 </label><br /> 80 <textarea id="pgpPublicKey" rows="10" class="form-control mono" readonly>{{ .Data.User.GPGPublicKey }}</textarea> 81 </div> 82 <div class="mt-3"> 83 <label for="publicNotes">Public notes:{{ if .Data.PublicNotes.Notes }} <small>(last edited: {{ .Data.PublicNotes.UpdatedAt.Format "Jan 02, 2006" }}){{ end }}</small></label><br /> 84 <textarea id="publicNotes" rows="10" class="form-control" readonly>{{ .Data.PublicNotes.Notes }}</textarea> 85 </div> 86 </div> 87 {{ end }}