dkforest

A forum and chat platform (onion)
git clone https://git.dasho.dev/n0tr1v/dkforest.git
Log | Files | Refs | LICENSE

commit 8acfdde1887d8138c3087d84bfd228a2866ff12f
parent 8e93f8fb55d0ed3d033aabd7adf71926ec5ee57a
Author: n0tr1v <n0tr1v@protonmail.com>
Date:   Mon, 22 May 2023 01:47:47 -0700

improve template

Diffstat:
Mpkg/web/handlers/api/v1/messages.qtpl | 92+++++++++++++++++++++++++++++++++++++++++--------------------------------------
Mpkg/web/handlers/api/v1/messages.qtpl.go | 1013+++++++++++++++++++++++++++++++++++++++++--------------------------------------
2 files changed, 572 insertions(+), 533 deletions(-)

diff --git a/pkg/web/handlers/api/v1/messages.qtpl b/pkg/web/handlers/api/v1/messages.qtpl @@ -208,50 +208,7 @@ </div> {% if !AuthUser.HideRightColumn %} - <div id="rgt-pane"> - <div class="mb-20px"> - <div class="rgt-title">Inbox (<a href="/settings/inbox" target="_top"{% if Data.InboxCount > 0 %}class="notif"{% endif %}>{%dl Data.InboxCount %}</a>)</div> - </div> - <div class="mb-20px"> - <div class="rgt-title">Rooms:</div> - {%- for _, e := range Data.OfficialRooms -%} - {%- if e.Name == "club" -%} - {%- if AuthUser.IsClubMember -%} - <div><a href="/chat/club" target="_top"{% if e.IsUnread %} class="unread_room"{% endif %}>#club</a></div> - {%- endif -%} - {%- elseif e.Name == "moderators" -%} - {%- if AuthUser.IsModerator() -%} - <div><a href="/chat/moderators" target="_top"{% if e.IsUnread %} class="unread_room"{% endif %}>#moderators</a></div> - {%- endif -%} - {%- else -%} - <div><a href="/chat/{%s e.Name %}" target="_top"{% if e.IsUnread %} class="unread_room"{% endif %}>#{%s e.Name %}</a></div> - {%- endif -%} - {%- endfor -%} - {%- if len(Data.SubscribedRooms) > 0 -%} - <div class="mt-10px"></div> - {%- for _, e := range Data.SubscribedRooms -%} - <div><a href="/chat/{%s e.Name %}" target="_top"{% if e.IsUnread %} class="unread_room"{% endif %}>#{%s e.Name %}</a></div> - {%- endfor -%} - {%- endif -%} - <div class="mt-5px"><a href="/rooms" target="_top">[...]</a></div> - </div> - <div class="mb-20px"> - <div class="rgt-title">In this room:</div> - {%- for _, e := range Data.Members -%} - {%= Member(AuthUser, Data, e) %} - {%- endfor -%} - </div> - {%- if Data.VisibleMemberInChat || AuthUser.DisplayHellbanned -%} - <div class="mb-30px"> - {%- if len(Data.MembersInChat) > 0 -%} - <div class="rgt-title">In other rooms:</div> - {%- for _, e := range Data.MembersInChat -%} - {%= Member(AuthUser, Data, e) %} - {%- endfor -%} - {%- endif -%} - </div> - {%- endif -%} - </div> + {%-= RenderRightColumn(AuthUser, Data) -%} {%- endif -%} {%- if AuthUser.CollectMetadata -%} <div class="div_1"></div> @@ -263,6 +220,53 @@ {% endfunc %} +{%- func RenderRightColumn(AuthUser *database.User, Data ChatMessagesData) -%} +<div id="rgt-pane"> + <div class="mb-20px"> + <div class="rgt-title">Inbox (<a href="/settings/inbox" target="_top"{% if Data.InboxCount > 0 %}class="notif"{% endif %}>{%dl Data.InboxCount %}</a>)</div> + </div> + <div class="mb-20px"> + <div class="rgt-title">Rooms:</div> + {%- for _, e := range Data.OfficialRooms -%} + {%- if e.Name == "club" -%} + {%- if AuthUser.IsClubMember -%} + <div><a href="/chat/club" target="_top"{% if e.IsUnread %} class="unread_room"{% endif %}>#club</a></div> + {%- endif -%} + {%- elseif e.Name == "moderators" -%} + {%- if AuthUser.IsModerator() -%} + <div><a href="/chat/moderators" target="_top"{% if e.IsUnread %} class="unread_room"{% endif %}>#moderators</a></div> + {%- endif -%} + {%- else -%} + <div><a href="/chat/{%s e.Name %}" target="_top"{% if e.IsUnread %} class="unread_room"{% endif %}>#{%s e.Name %}</a></div> + {%- endif -%} + {%- endfor -%} + {%- if len(Data.SubscribedRooms) > 0 -%} + <div class="mt-10px"></div> + {%- for _, e := range Data.SubscribedRooms -%} + <div><a href="/chat/{%s e.Name %}" target="_top"{% if e.IsUnread %} class="unread_room"{% endif %}>#{%s e.Name %}</a></div> + {%- endfor -%} + {%- endif -%} + <div class="mt-5px"><a href="/rooms" target="_top">[...]</a></div> + </div> + <div class="mb-20px"> + <div class="rgt-title">In this room:</div> + {%- for _, e := range Data.Members -%} + {%= Member(AuthUser, Data, e) %} + {%- endfor -%} + </div> + {%- if Data.VisibleMemberInChat || AuthUser.DisplayHellbanned -%} + <div class="mb-30px"> + {%- if len(Data.MembersInChat) > 0 -%} + <div class="rgt-title">In other rooms:</div> + {%- for _, e := range Data.MembersInChat -%} + {%= Member(AuthUser, Data, e) %} + {%- endfor -%} + {%- endif -%} + </div> + {%- endif -%} +</div> +{%- endfunc -%} + {%- func RenderMessages(AuthUser *database.User, Data ChatMessagesData, CSRF, NullUsername string) -%} {%- code baseTopBarURL := "/api/v1/chat/top-bar/" + Data.RoomName diff --git a/pkg/web/handlers/api/v1/messages.qtpl.go b/pkg/web/handlers/api/v1/messages.qtpl.go @@ -360,99 +360,83 @@ func StreamMessages(qw422016 *qt422016.Writer, VERSION, CSRF, NullUsername strin if !AuthUser.HideRightColumn { //line messages.qtpl:210 qw422016.N().S(` - <div id="rgt-pane"> - <div class="mb-20px"> - <div class="rgt-title">Inbox (<a href="/settings/inbox" target="_top"`) -//line messages.qtpl:213 - if Data.InboxCount > 0 { -//line messages.qtpl:213 - qw422016.N().S(`class="notif"`) -//line messages.qtpl:213 - } -//line messages.qtpl:213 - qw422016.N().S(`>`) +`) +//line messages.qtpl:211 + StreamRenderRightColumn(qw422016, AuthUser, Data) +//line messages.qtpl:212 + } //line messages.qtpl:213 - qw422016.N().DL(Data.InboxCount) + if AuthUser.CollectMetadata { //line messages.qtpl:213 - qw422016.N().S(`</a>)</div> - </div> - <div class="mb-20px"> - <div class="rgt-title">Rooms:</div> + qw422016.N().S(` <div class="div_1"></div> + <div class="div_2"></div> + <div class="div_f0">a</div> `) //line messages.qtpl:217 - for _, e := range Data.OfficialRooms { -//line messages.qtpl:218 - if e.Name == "club" { -//line messages.qtpl:219 - if AuthUser.IsClubMember { -//line messages.qtpl:219 - qw422016.N().S(` <div><a href="/chat/club" target="_top"`) + } +//line messages.qtpl:217 + qw422016.N().S(` </body> +</html> +`) //line messages.qtpl:220 - if e.IsUnread { +} + //line messages.qtpl:220 - qw422016.N().S(` class="unread_room"`) +func WriteMessages(qq422016 qtio422016.Writer, VERSION, CSRF, NullUsername string, AuthUser *database.User, Data ChatMessagesData) { //line messages.qtpl:220 - } + qw422016 := qt422016.AcquireWriter(qq422016) //line messages.qtpl:220 - qw422016.N().S(`>#club</a></div> -`) -//line messages.qtpl:221 - } -//line messages.qtpl:222 - } else if e.Name == "moderators" { + StreamMessages(qw422016, VERSION, CSRF, NullUsername, AuthUser, Data) +//line messages.qtpl:220 + qt422016.ReleaseWriter(qw422016) +//line messages.qtpl:220 +} + +//line messages.qtpl:220 +func Messages(VERSION, CSRF, NullUsername string, AuthUser *database.User, Data ChatMessagesData) string { +//line messages.qtpl:220 + qb422016 := qt422016.AcquireByteBuffer() +//line messages.qtpl:220 + WriteMessages(qb422016, VERSION, CSRF, NullUsername, AuthUser, Data) +//line messages.qtpl:220 + qs422016 := string(qb422016.B) +//line messages.qtpl:220 + qt422016.ReleaseByteBuffer(qb422016) +//line messages.qtpl:220 + return qs422016 +//line messages.qtpl:220 +} + //line messages.qtpl:223 - if AuthUser.IsModerator() { +func StreamRenderRightColumn(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatMessagesData) { //line messages.qtpl:223 - qw422016.N().S(` <div><a href="/chat/moderators" target="_top"`) -//line messages.qtpl:224 - if e.IsUnread { -//line messages.qtpl:224 - qw422016.N().S(` class="unread_room"`) -//line messages.qtpl:224 - } -//line messages.qtpl:224 - qw422016.N().S(`>#moderators</a></div> -`) -//line messages.qtpl:225 - } + qw422016.N().S(`<div id="rgt-pane"> + <div class="mb-20px"> + <div class="rgt-title">Inbox (<a href="/settings/inbox" target="_top"`) //line messages.qtpl:226 - } else { + if Data.InboxCount > 0 { //line messages.qtpl:226 - qw422016.N().S(` <div><a href="/chat/`) -//line messages.qtpl:227 - qw422016.E().S(e.Name) -//line messages.qtpl:227 - qw422016.N().S(`" target="_top"`) -//line messages.qtpl:227 - if e.IsUnread { -//line messages.qtpl:227 - qw422016.N().S(` class="unread_room"`) -//line messages.qtpl:227 - } -//line messages.qtpl:227 - qw422016.N().S(`>#`) -//line messages.qtpl:227 - qw422016.E().S(e.Name) -//line messages.qtpl:227 - qw422016.N().S(`</a></div> + qw422016.N().S(`class="notif"`) +//line messages.qtpl:226 + } +//line messages.qtpl:226 + qw422016.N().S(`>`) +//line messages.qtpl:226 + qw422016.N().DL(Data.InboxCount) +//line messages.qtpl:226 + qw422016.N().S(`</a>)</div> + </div> + <div class="mb-20px"> + <div class="rgt-title">Rooms:</div> `) -//line messages.qtpl:228 - } -//line messages.qtpl:229 - } -//line messages.qtpl:230 - if len(Data.SubscribedRooms) > 0 { //line messages.qtpl:230 - qw422016.N().S(` <div class="mt-10px"></div> -`) + for _, e := range Data.OfficialRooms { +//line messages.qtpl:231 + if e.Name == "club" { //line messages.qtpl:232 - for _, e := range Data.SubscribedRooms { + if AuthUser.IsClubMember { //line messages.qtpl:232 - qw422016.N().S(` <div><a href="/chat/`) -//line messages.qtpl:233 - qw422016.E().S(e.Name) -//line messages.qtpl:233 - qw422016.N().S(`" target="_top"`) + qw422016.N().S(` <div><a href="/chat/club" target="_top"`) //line messages.qtpl:233 if e.IsUnread { //line messages.qtpl:233 @@ -460,264 +444,306 @@ func StreamMessages(qw422016 *qt422016.Writer, VERSION, CSRF, NullUsername strin //line messages.qtpl:233 } //line messages.qtpl:233 - qw422016.N().S(`>#`) -//line messages.qtpl:233 - qw422016.E().S(e.Name) -//line messages.qtpl:233 - qw422016.N().S(`</a></div> + qw422016.N().S(`>#club</a></div> `) //line messages.qtpl:234 } //line messages.qtpl:235 - } -//line messages.qtpl:235 - qw422016.N().S(` <div class="mt-5px"><a href="/rooms" target="_top">[...]</a></div> - </div> - <div class="mb-20px"> - <div class="rgt-title">In this room:</div> + } else if e.Name == "moderators" { +//line messages.qtpl:236 + if AuthUser.IsModerator() { +//line messages.qtpl:236 + qw422016.N().S(` <div><a href="/chat/moderators" target="_top"`) +//line messages.qtpl:237 + if e.IsUnread { +//line messages.qtpl:237 + qw422016.N().S(` class="unread_room"`) +//line messages.qtpl:237 + } +//line messages.qtpl:237 + qw422016.N().S(`>#moderators</a></div> `) +//line messages.qtpl:238 + } +//line messages.qtpl:239 + } else { +//line messages.qtpl:239 + qw422016.N().S(` <div><a href="/chat/`) //line messages.qtpl:240 - for _, e := range Data.Members { + qw422016.E().S(e.Name) //line messages.qtpl:240 - qw422016.N().S(` `) -//line messages.qtpl:241 - StreamMember(qw422016, AuthUser, Data, e) -//line messages.qtpl:241 - qw422016.N().S(` + qw422016.N().S(`" target="_top"`) +//line messages.qtpl:240 + if e.IsUnread { +//line messages.qtpl:240 + qw422016.N().S(` class="unread_room"`) +//line messages.qtpl:240 + } +//line messages.qtpl:240 + qw422016.N().S(`>#`) +//line messages.qtpl:240 + qw422016.E().S(e.Name) +//line messages.qtpl:240 + qw422016.N().S(`</a></div> `) -//line messages.qtpl:242 +//line messages.qtpl:241 } //line messages.qtpl:242 - qw422016.N().S(` </div> -`) -//line messages.qtpl:244 - if Data.VisibleMemberInChat || AuthUser.DisplayHellbanned { -//line messages.qtpl:244 - qw422016.N().S(` <div class="mb-30px"> + } +//line messages.qtpl:243 + if len(Data.SubscribedRooms) > 0 { +//line messages.qtpl:243 + qw422016.N().S(` <div class="mt-10px"></div> `) +//line messages.qtpl:245 + for _, e := range Data.SubscribedRooms { +//line messages.qtpl:245 + qw422016.N().S(` <div><a href="/chat/`) +//line messages.qtpl:246 + qw422016.E().S(e.Name) +//line messages.qtpl:246 + qw422016.N().S(`" target="_top"`) +//line messages.qtpl:246 + if e.IsUnread { +//line messages.qtpl:246 + qw422016.N().S(` class="unread_room"`) +//line messages.qtpl:246 + } +//line messages.qtpl:246 + qw422016.N().S(`>#`) //line messages.qtpl:246 - if len(Data.MembersInChat) > 0 { + qw422016.E().S(e.Name) //line messages.qtpl:246 - qw422016.N().S(` <div class="rgt-title">In other rooms:</div> + qw422016.N().S(`</a></div> `) +//line messages.qtpl:247 + } //line messages.qtpl:248 - for _, e := range Data.MembersInChat { + } //line messages.qtpl:248 - qw422016.N().S(` `) -//line messages.qtpl:249 - StreamMember(qw422016, AuthUser, Data, e) -//line messages.qtpl:249 - qw422016.N().S(` -`) -//line messages.qtpl:250 - } -//line messages.qtpl:251 - } -//line messages.qtpl:251 - qw422016.N().S(` </div> + qw422016.N().S(` <div class="mt-5px"><a href="/rooms" target="_top">[...]</a></div> + </div> + <div class="mb-20px"> + <div class="rgt-title">In this room:</div> `) //line messages.qtpl:253 - } + for _, e := range Data.Members { //line messages.qtpl:253 - qw422016.N().S(` </div> + qw422016.N().S(` `) +//line messages.qtpl:254 + StreamMember(qw422016, AuthUser, Data, e) +//line messages.qtpl:254 + qw422016.N().S(` `) //line messages.qtpl:255 } -//line messages.qtpl:256 - if AuthUser.CollectMetadata { -//line messages.qtpl:256 - qw422016.N().S(` <div class="div_1"></div> - <div class="div_2"></div> - <div class="div_f0">a</div> +//line messages.qtpl:255 + qw422016.N().S(` </div> `) -//line messages.qtpl:260 - } -//line messages.qtpl:260 - qw422016.N().S(` </body> -</html> +//line messages.qtpl:257 + if Data.VisibleMemberInChat || AuthUser.DisplayHellbanned { +//line messages.qtpl:257 + qw422016.N().S(` <div class="mb-30px"> +`) +//line messages.qtpl:259 + if len(Data.MembersInChat) > 0 { +//line messages.qtpl:259 + qw422016.N().S(` <div class="rgt-title">In other rooms:</div> +`) +//line messages.qtpl:261 + for _, e := range Data.MembersInChat { +//line messages.qtpl:261 + qw422016.N().S(` `) +//line messages.qtpl:262 + StreamMember(qw422016, AuthUser, Data, e) +//line messages.qtpl:262 + qw422016.N().S(` `) //line messages.qtpl:263 + } +//line messages.qtpl:264 + } +//line messages.qtpl:264 + qw422016.N().S(` </div> +`) +//line messages.qtpl:266 + } +//line messages.qtpl:266 + qw422016.N().S(`</div> +`) +//line messages.qtpl:268 } -//line messages.qtpl:263 -func WriteMessages(qq422016 qtio422016.Writer, VERSION, CSRF, NullUsername string, AuthUser *database.User, Data ChatMessagesData) { -//line messages.qtpl:263 +//line messages.qtpl:268 +func WriteRenderRightColumn(qq422016 qtio422016.Writer, AuthUser *database.User, Data ChatMessagesData) { +//line messages.qtpl:268 qw422016 := qt422016.AcquireWriter(qq422016) -//line messages.qtpl:263 - StreamMessages(qw422016, VERSION, CSRF, NullUsername, AuthUser, Data) -//line messages.qtpl:263 +//line messages.qtpl:268 + StreamRenderRightColumn(qw422016, AuthUser, Data) +//line messages.qtpl:268 qt422016.ReleaseWriter(qw422016) -//line messages.qtpl:263 +//line messages.qtpl:268 } -//line messages.qtpl:263 -func Messages(VERSION, CSRF, NullUsername string, AuthUser *database.User, Data ChatMessagesData) string { -//line messages.qtpl:263 +//line messages.qtpl:268 +func RenderRightColumn(AuthUser *database.User, Data ChatMessagesData) string { +//line messages.qtpl:268 qb422016 := qt422016.AcquireByteBuffer() -//line messages.qtpl:263 - WriteMessages(qb422016, VERSION, CSRF, NullUsername, AuthUser, Data) -//line messages.qtpl:263 +//line messages.qtpl:268 + WriteRenderRightColumn(qb422016, AuthUser, Data) +//line messages.qtpl:268 qs422016 := string(qb422016.B) -//line messages.qtpl:263 +//line messages.qtpl:268 qt422016.ReleaseByteBuffer(qb422016) -//line messages.qtpl:263 +//line messages.qtpl:268 return qs422016 -//line messages.qtpl:263 +//line messages.qtpl:268 } -//line messages.qtpl:266 +//line messages.qtpl:270 func StreamRenderMessages(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatMessagesData, CSRF, NullUsername string) { -//line messages.qtpl:268 +//line messages.qtpl:272 baseTopBarURL := "/api/v1/chat/top-bar/" + Data.RoomName readMarkerRendered := false isFirstMsg := true -//line messages.qtpl:272 +//line messages.qtpl:276 for idx, e := range Data.Messages { -//line messages.qtpl:273 +//line messages.qtpl:277 StreamRenderMessage(qw422016, idx, e, AuthUser, Data, baseTopBarURL, &readMarkerRendered, &isFirstMsg, CSRF, NullUsername) -//line messages.qtpl:273 +//line messages.qtpl:277 qw422016.N().S(` `) -//line messages.qtpl:274 +//line messages.qtpl:278 } -//line messages.qtpl:274 +//line messages.qtpl:278 qw422016.N().S(` `) -//line messages.qtpl:275 +//line messages.qtpl:279 if len(Data.Messages) == 0 { -//line messages.qtpl:275 +//line messages.qtpl:279 qw422016.N().S(` <div id="no-msg"><em>No message yet</em></div> `) -//line messages.qtpl:277 +//line messages.qtpl:281 } -//line messages.qtpl:277 +//line messages.qtpl:281 qw422016.N().S(` `) -//line messages.qtpl:278 +//line messages.qtpl:282 } -//line messages.qtpl:278 +//line messages.qtpl:282 func WriteRenderMessages(qq422016 qtio422016.Writer, AuthUser *database.User, Data ChatMessagesData, CSRF, NullUsername string) { -//line messages.qtpl:278 +//line messages.qtpl:282 qw422016 := qt422016.AcquireWriter(qq422016) -//line messages.qtpl:278 +//line messages.qtpl:282 StreamRenderMessages(qw422016, AuthUser, Data, CSRF, NullUsername) -//line messages.qtpl:278 +//line messages.qtpl:282 qt422016.ReleaseWriter(qw422016) -//line messages.qtpl:278 +//line messages.qtpl:282 } -//line messages.qtpl:278 +//line messages.qtpl:282 func RenderMessages(AuthUser *database.User, Data ChatMessagesData, CSRF, NullUsername string) string { -//line messages.qtpl:278 +//line messages.qtpl:282 qb422016 := qt422016.AcquireByteBuffer() -//line messages.qtpl:278 +//line messages.qtpl:282 WriteRenderMessages(qb422016, AuthUser, Data, CSRF, NullUsername) -//line messages.qtpl:278 +//line messages.qtpl:282 qs422016 := string(qb422016.B) -//line messages.qtpl:278 +//line messages.qtpl:282 qt422016.ReleaseByteBuffer(qb422016) -//line messages.qtpl:278 +//line messages.qtpl:282 return qs422016 -//line messages.qtpl:278 +//line messages.qtpl:282 } -//line messages.qtpl:280 +//line messages.qtpl:284 func StreamRenderMessage(qw422016 *qt422016.Writer, idx int, e database.ChatMessage, AuthUser *database.User, Data ChatMessagesData, baseTopBarURL string, readMarkerRendered, isFirstMsg *bool, CSRF, NullUsername string) { -//line messages.qtpl:282 +//line messages.qtpl:286 if e.UserCanSee(*AuthUser) { -//line messages.qtpl:282 +//line messages.qtpl:286 qw422016.N().S(` <div id="msgid-`) -//line messages.qtpl:283 +//line messages.qtpl:287 qw422016.E().S(e.UUID) -//line messages.qtpl:283 +//line messages.qtpl:287 qw422016.N().S(`" class="msg `) -//line messages.qtpl:284 +//line messages.qtpl:288 if (e.User.IsHellbanned || e.IsHellbanned) && AuthUser.DisplayHellbanned { -//line messages.qtpl:284 +//line messages.qtpl:288 qw422016.N().S(` hb-row `) -//line messages.qtpl:285 +//line messages.qtpl:289 } else if AuthUser.ID == e.User.ID && AuthUser.HighlightOwnMessages { -//line messages.qtpl:285 +//line messages.qtpl:289 qw422016.N().S(` own-highlight`) -//line messages.qtpl:285 +//line messages.qtpl:289 } -//line messages.qtpl:286 +//line messages.qtpl:290 if AuthUser.ChatReadMarkerEnabled && e.CreatedAt.Before(Data.ReadMarker.ReadAt) && !*readMarkerRendered { -//line messages.qtpl:286 +//line messages.qtpl:290 qw422016.N().S(` `) -//line messages.qtpl:287 +//line messages.qtpl:291 if idx > 0 { -//line messages.qtpl:287 +//line messages.qtpl:291 qw422016.N().S(`read-marker`) -//line messages.qtpl:287 +//line messages.qtpl:291 } -//line messages.qtpl:288 +//line messages.qtpl:292 *readMarkerRendered = true -//line messages.qtpl:289 +//line messages.qtpl:293 } -//line messages.qtpl:289 +//line messages.qtpl:293 qw422016.N().S(` "> `) -//line messages.qtpl:291 +//line messages.qtpl:295 if e.UserCanDelete(*AuthUser) { -//line messages.qtpl:292 +//line messages.qtpl:296 if !e.TooOldToDelete() { -//line messages.qtpl:293 +//line messages.qtpl:297 if AuthUser.DisplayDeleteButton { -//line messages.qtpl:293 +//line messages.qtpl:297 qw422016.N().S(` <form method="post" action="/api/v1/chat/messages/delete/`) -//line messages.qtpl:294 +//line messages.qtpl:298 qw422016.E().S(e.UUID) -//line messages.qtpl:294 +//line messages.qtpl:298 qw422016.N().S(`" class="d-inline"> <input type="hidden" name="csrf" value="`) -//line messages.qtpl:295 +//line messages.qtpl:299 qw422016.E().S(CSRF) -//line messages.qtpl:295 +//line messages.qtpl:299 qw422016.N().S(`" /> <button class="mod-btn delete_msg_btn" title="delete"></button> </form> `) -//line messages.qtpl:298 +//line messages.qtpl:302 } -//line messages.qtpl:299 +//line messages.qtpl:303 } else if (AuthUser.IsModerator() && e.TooOldToDelete() && e.UserID != AuthUser.ID) || AuthUser.IsAdmin || (e.Room.OwnerUserID != nil && *e.Room.OwnerUserID == AuthUser.ID) { -//line messages.qtpl:300 +//line messages.qtpl:304 if AuthUser.DisplayDeleteButton { -//line messages.qtpl:300 +//line messages.qtpl:304 qw422016.N().S(` <form method="post" action="/api/v1/chat/messages/delete/`) -//line messages.qtpl:301 +//line messages.qtpl:305 qw422016.E().S(e.UUID) -//line messages.qtpl:301 +//line messages.qtpl:305 qw422016.N().S(`" class="d-inline"> <input type="hidden" name="csrf" value="`) -//line messages.qtpl:302 +//line messages.qtpl:306 qw422016.E().S(CSRF) -//line messages.qtpl:302 +//line messages.qtpl:306 qw422016.N().S(`" /> <button class="mod-btn delete_msg_btn f-orange-clr" title="delete"></button> </form> `) -//line messages.qtpl:305 - } -//line messages.qtpl:306 - } else if AuthUser.IsModerator() { -//line messages.qtpl:307 - if AuthUser.DisplayDeleteButton { -//line messages.qtpl:307 - qw422016.N().S(` <div class="spacer16"></div> -`) //line messages.qtpl:309 } //line messages.qtpl:310 - } else { + } else if AuthUser.IsModerator() { //line messages.qtpl:311 if AuthUser.DisplayDeleteButton { //line messages.qtpl:311 @@ -726,420 +752,403 @@ func StreamRenderMessage(qw422016 *qt422016.Writer, idx int, e database.ChatMess //line messages.qtpl:313 } //line messages.qtpl:314 - } + } else { +//line messages.qtpl:315 + if AuthUser.DisplayDeleteButton { //line messages.qtpl:315 + qw422016.N().S(` <div class="spacer16"></div> +`) +//line messages.qtpl:317 + } +//line messages.qtpl:318 + } +//line messages.qtpl:319 if AuthUser.IsModerator() { -//line messages.qtpl:316 +//line messages.qtpl:320 if e.UserID != AuthUser.ID { -//line messages.qtpl:317 +//line messages.qtpl:321 if AuthUser.DisplayHellbanButton { -//line messages.qtpl:318 +//line messages.qtpl:322 if e.User.Username == NullUsername { -//line messages.qtpl:318 +//line messages.qtpl:322 qw422016.N().S(` <div class="spacer16"></div> `) -//line messages.qtpl:320 +//line messages.qtpl:324 } else { -//line messages.qtpl:321 +//line messages.qtpl:325 if e.User.IsHellbanned { -//line messages.qtpl:321 +//line messages.qtpl:325 qw422016.N().S(` <form method="post" action="/api/v1/users/`) -//line messages.qtpl:322 +//line messages.qtpl:326 qw422016.E().S(e.UserID.String()) -//line messages.qtpl:322 +//line messages.qtpl:326 qw422016.N().S(`/unhellban" class="d-inline"> <input type="hidden" name="csrf" value="`) -//line messages.qtpl:323 +//line messages.qtpl:327 qw422016.E().S(CSRF) -//line messages.qtpl:323 +//line messages.qtpl:327 qw422016.N().S(`" /> <button class="mod-btn hb_btn f-orange-clr line-through" title="unhellban"></button> </form> `) -//line messages.qtpl:326 +//line messages.qtpl:330 } else { -//line messages.qtpl:326 +//line messages.qtpl:330 qw422016.N().S(` <form method="post" action="/api/v1/users/`) -//line messages.qtpl:327 +//line messages.qtpl:331 qw422016.E().S(e.UserID.String()) -//line messages.qtpl:327 +//line messages.qtpl:331 qw422016.N().S(`/hellban" class="d-inline"> <input type="hidden" name="csrf" value="`) -//line messages.qtpl:328 +//line messages.qtpl:332 qw422016.E().S(CSRF) -//line messages.qtpl:328 +//line messages.qtpl:332 qw422016.N().S(`" /> <button class="mod-btn hb_btn f-orange-clr" title="hellban"></button> </form> `) -//line messages.qtpl:331 +//line messages.qtpl:335 } -//line messages.qtpl:332 +//line messages.qtpl:336 } -//line messages.qtpl:333 +//line messages.qtpl:337 } -//line messages.qtpl:334 +//line messages.qtpl:338 if AuthUser.DisplayKickButton { -//line messages.qtpl:334 +//line messages.qtpl:338 qw422016.N().S(` <form method="post" action="/api/v1/users/`) -//line messages.qtpl:335 +//line messages.qtpl:339 qw422016.E().S(e.UserID.String()) -//line messages.qtpl:335 +//line messages.qtpl:339 qw422016.N().S(`/kick" class="d-inline"> <input type="hidden" name="csrf" value="`) -//line messages.qtpl:336 +//line messages.qtpl:340 qw422016.E().S(CSRF) -//line messages.qtpl:336 +//line messages.qtpl:340 qw422016.N().S(`" /> <button class="mod-btn k_btn f-orange-clr" title="kick"></button> </form> `) -//line messages.qtpl:339 +//line messages.qtpl:343 } -//line messages.qtpl:340 +//line messages.qtpl:344 } else { -//line messages.qtpl:341 +//line messages.qtpl:345 if AuthUser.DisplayKickButton && AuthUser.DisplayHellbanButton { -//line messages.qtpl:341 +//line messages.qtpl:345 qw422016.N().S(` <div class="spacer36"></div> `) -//line messages.qtpl:343 +//line messages.qtpl:347 } else if AuthUser.DisplayKickButton || AuthUser.DisplayHellbanButton { -//line messages.qtpl:343 +//line messages.qtpl:347 qw422016.N().S(` <div class="spacer16"></div> `) -//line messages.qtpl:345 +//line messages.qtpl:349 } -//line messages.qtpl:346 +//line messages.qtpl:350 } -//line messages.qtpl:347 +//line messages.qtpl:351 } -//line messages.qtpl:348 +//line messages.qtpl:352 } else { -//line messages.qtpl:349 +//line messages.qtpl:353 if Data.NbButtons == 3 { -//line messages.qtpl:349 +//line messages.qtpl:353 qw422016.N().S(` <div class="spacer56"></div> `) -//line messages.qtpl:351 +//line messages.qtpl:355 } else if Data.NbButtons == 2 { -//line messages.qtpl:351 +//line messages.qtpl:355 qw422016.N().S(` <div class="spacer36"></div> `) -//line messages.qtpl:353 +//line messages.qtpl:357 } else if Data.NbButtons == 1 { -//line messages.qtpl:353 +//line messages.qtpl:357 qw422016.N().S(` <div class="spacer16"></div> `) -//line messages.qtpl:355 +//line messages.qtpl:359 } -//line messages.qtpl:356 +//line messages.qtpl:360 } -//line messages.qtpl:357 +//line messages.qtpl:361 if AuthUser.GetDateFormat() != "" { -//line messages.qtpl:357 +//line messages.qtpl:361 qw422016.N().S(` <a href="`) -//line messages.qtpl:358 +//line messages.qtpl:362 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:358 +//line messages.qtpl:362 qw422016.N().S(`?quote=`) -//line messages.qtpl:358 +//line messages.qtpl:362 qw422016.E().S(e.UUID) -//line messages.qtpl:358 +//line messages.qtpl:362 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:358 +//line messages.qtpl:362 qw422016.N().S(`" target="iframe1" class="date date-link" title="`) -//line messages.qtpl:358 +//line messages.qtpl:362 qw422016.E().S(e.CreatedAt.Format("01-02 15:04:05")) -//line messages.qtpl:358 +//line messages.qtpl:362 if *isFirstMsg { -//line messages.qtpl:358 +//line messages.qtpl:362 qw422016.N().S(` (`) -//line messages.qtpl:358 +//line messages.qtpl:362 qw422016.E().S(humanize.Time(e.CreatedAt)) -//line messages.qtpl:358 +//line messages.qtpl:362 qw422016.N().S(`)`) -//line messages.qtpl:358 +//line messages.qtpl:362 } -//line messages.qtpl:358 +//line messages.qtpl:362 qw422016.N().S(`">`) -//line messages.qtpl:358 +//line messages.qtpl:362 qw422016.E().S(e.CreatedAt.Format(AuthUser.GetDateFormat())) -//line messages.qtpl:358 +//line messages.qtpl:362 qw422016.N().S(`</a> `) -//line messages.qtpl:359 +//line messages.qtpl:363 *isFirstMsg = false -//line messages.qtpl:359 +//line messages.qtpl:363 qw422016.N().S(` `) -//line messages.qtpl:360 +//line messages.qtpl:364 } -//line messages.qtpl:360 +//line messages.qtpl:364 qw422016.N().S(` <a href="/u/`) -//line messages.qtpl:361 +//line messages.qtpl:365 qw422016.E().S(e.GetProfile(AuthUser)) -//line messages.qtpl:361 +//line messages.qtpl:365 qw422016.N().S(`" target="_blank" class="f-def-clr">-</a> `) -//line messages.qtpl:362 +//line messages.qtpl:366 if e.System { -//line messages.qtpl:362 +//line messages.qtpl:366 qw422016.N().S(` <span class="sysmsg">`) -//line messages.qtpl:363 +//line messages.qtpl:367 streamunesc(qw422016, e.Message) -//line messages.qtpl:363 +//line messages.qtpl:367 qw422016.N().S(`</span> `) -//line messages.qtpl:364 +//line messages.qtpl:368 } else { -//line messages.qtpl:365 +//line messages.qtpl:369 if e.Moderators { -//line messages.qtpl:365 +//line messages.qtpl:369 qw422016.N().S(`<span class="sysmsg">[<a href="`) -//line messages.qtpl:365 +//line messages.qtpl:369 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:365 +//line messages.qtpl:369 qw422016.N().S(`?m=1`) -//line messages.qtpl:365 +//line messages.qtpl:369 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:365 +//line messages.qtpl:369 qw422016.N().S(`" target="iframe1" class="sysmsg f-white-clr">M</a>]</span>&nbsp;`) -//line messages.qtpl:365 +//line messages.qtpl:369 } -//line messages.qtpl:366 +//line messages.qtpl:370 if e.GroupID != nil { -//line messages.qtpl:366 +//line messages.qtpl:370 qw422016.N().S(`<span class="sysmsg">[<a href="`) -//line messages.qtpl:366 +//line messages.qtpl:370 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:366 +//line messages.qtpl:370 qw422016.N().S(`?g=`) -//line messages.qtpl:366 +//line messages.qtpl:370 qw422016.E().S(e.Group.Name) -//line messages.qtpl:366 +//line messages.qtpl:370 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:366 +//line messages.qtpl:370 qw422016.N().S(`" target="iframe1" class="sysmsg f-white-clr">`) -//line messages.qtpl:366 +//line messages.qtpl:370 qw422016.E().S(e.Group.Name) -//line messages.qtpl:366 +//line messages.qtpl:370 qw422016.N().S(`</a>]</span>&nbsp;`) -//line messages.qtpl:366 +//line messages.qtpl:370 } -//line messages.qtpl:367 +//line messages.qtpl:371 if e.ToUserID != nil { -//line messages.qtpl:367 +//line messages.qtpl:371 qw422016.N().S(` [`) -//line messages.qtpl:368 +//line messages.qtpl:372 streamfromUsername(qw422016, AuthUser, Data, e, baseTopBarURL) -//line messages.qtpl:368 +//line messages.qtpl:372 qw422016.N().S(` → `) -//line messages.qtpl:370 +//line messages.qtpl:374 if e.ToUser.ID == AuthUser.ID { -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.N().S(`<span `) -//line messages.qtpl:370 +//line messages.qtpl:374 streamunesc(qw422016, e.ToUser.GenerateChatStyle()) -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.N().S(`>`) -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.E().S(e.ToUser.Username) -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.N().S(`</span>`) -//line messages.qtpl:370 +//line messages.qtpl:374 } else { -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.N().S(`<a `) -//line messages.qtpl:370 +//line messages.qtpl:374 streamunesc(qw422016, e.ToUser.GenerateChatStyle()) -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.N().S(` href="`) -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.N().S(`?pm=`) -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.E().S(e.ToUser.Username) -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.E().S(Data.TopBarQueryParams) -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.N().S(`" target="iframe1">`) -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.E().S(e.ToUser.Username) -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.N().S(`</a>`) -//line messages.qtpl:370 +//line messages.qtpl:374 } -//line messages.qtpl:370 +//line messages.qtpl:374 qw422016.N().S(`] - `) -//line messages.qtpl:371 +//line messages.qtpl:375 } else { -//line messages.qtpl:372 +//line messages.qtpl:376 streamfromUsername(qw422016, AuthUser, Data, e, baseTopBarURL) -//line messages.qtpl:373 +//line messages.qtpl:377 if !e.IsMe() { -//line messages.qtpl:374 +//line messages.qtpl:378 if AuthUser.CanSeeHB() && (e.IsHellbanned || e.User.IsHellbanned) && (e.ToUserID == nil) { -//line messages.qtpl:374 +//line messages.qtpl:378 qw422016.N().S(` <a href="`) -//line messages.qtpl:375 +//line messages.qtpl:379 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:375 +//line messages.qtpl:379 qw422016.N().S(`?hbm=1`) -//line messages.qtpl:375 +//line messages.qtpl:379 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:375 +//line messages.qtpl:379 qw422016.N().S(`" target="iframe1" class="f-def-clr">-</a> `) -//line messages.qtpl:376 +//line messages.qtpl:380 } else { -//line messages.qtpl:376 +//line messages.qtpl:380 qw422016.N().S(` - `) -//line messages.qtpl:378 +//line messages.qtpl:382 } -//line messages.qtpl:379 +//line messages.qtpl:383 } -//line messages.qtpl:380 +//line messages.qtpl:384 } -//line messages.qtpl:380 +//line messages.qtpl:384 qw422016.N().S(` <span `) -//line messages.qtpl:381 +//line messages.qtpl:385 streamunesc(qw422016, e.User.GenerateChatStyle()) -//line messages.qtpl:381 +//line messages.qtpl:385 qw422016.N().S(`><span class="o-wrap">`) -//line messages.qtpl:381 +//line messages.qtpl:385 qw422016.N().S(unesc(e.MsgToDisplay())) -//line messages.qtpl:381 +//line messages.qtpl:385 qw422016.N().S(`</span></span> `) -//line messages.qtpl:382 +//line messages.qtpl:386 } -//line messages.qtpl:382 +//line messages.qtpl:386 qw422016.N().S(` </div> `) -//line messages.qtpl:384 +//line messages.qtpl:388 } -//line messages.qtpl:385 +//line messages.qtpl:389 } -//line messages.qtpl:385 +//line messages.qtpl:389 func WriteRenderMessage(qq422016 qtio422016.Writer, idx int, e database.ChatMessage, AuthUser *database.User, Data ChatMessagesData, baseTopBarURL string, readMarkerRendered, isFirstMsg *bool, CSRF, NullUsername string) { -//line messages.qtpl:385 +//line messages.qtpl:389 qw422016 := qt422016.AcquireWriter(qq422016) -//line messages.qtpl:385 +//line messages.qtpl:389 StreamRenderMessage(qw422016, idx, e, AuthUser, Data, baseTopBarURL, readMarkerRendered, isFirstMsg, CSRF, NullUsername) -//line messages.qtpl:385 +//line messages.qtpl:389 qt422016.ReleaseWriter(qw422016) -//line messages.qtpl:385 +//line messages.qtpl:389 } -//line messages.qtpl:385 +//line messages.qtpl:389 func RenderMessage(idx int, e database.ChatMessage, AuthUser *database.User, Data ChatMessagesData, baseTopBarURL string, readMarkerRendered, isFirstMsg *bool, CSRF, NullUsername string) string { -//line messages.qtpl:385 +//line messages.qtpl:389 qb422016 := qt422016.AcquireByteBuffer() -//line messages.qtpl:385 +//line messages.qtpl:389 WriteRenderMessage(qb422016, idx, e, AuthUser, Data, baseTopBarURL, readMarkerRendered, isFirstMsg, CSRF, NullUsername) -//line messages.qtpl:385 +//line messages.qtpl:389 qs422016 := string(qb422016.B) -//line messages.qtpl:385 +//line messages.qtpl:389 qt422016.ReleaseByteBuffer(qb422016) -//line messages.qtpl:385 +//line messages.qtpl:389 return qs422016 -//line messages.qtpl:385 +//line messages.qtpl:389 } -//line messages.qtpl:388 +//line messages.qtpl:392 func StreamMember(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatMessagesData, El managers.UserInfo) { -//line messages.qtpl:388 +//line messages.qtpl:392 qw422016.N().S(` `) -//line messages.qtpl:389 +//line messages.qtpl:393 baseTopBarURL := "/api/v1/chat/top-bar/" + Data.RoomName -//line messages.qtpl:390 +//line messages.qtpl:394 if El.Username == AuthUser.Username { -//line messages.qtpl:390 +//line messages.qtpl:394 qw422016.N().S(` <div> <span style="color: `) -//line messages.qtpl:392 +//line messages.qtpl:396 qw422016.E().S(El.Color) -//line messages.qtpl:392 +//line messages.qtpl:396 qw422016.N().S(`;">`) -//line messages.qtpl:392 +//line messages.qtpl:396 qw422016.E().S(El.Username) -//line messages.qtpl:392 +//line messages.qtpl:396 qw422016.N().S(`</span> `) -//line messages.qtpl:393 +//line messages.qtpl:397 if El.AfkIndicatorEnabled { -//line messages.qtpl:393 +//line messages.qtpl:397 qw422016.N().S(` <small class="afk-indicator">afk</small> `) -//line messages.qtpl:395 +//line messages.qtpl:399 } -//line messages.qtpl:395 +//line messages.qtpl:399 qw422016.N().S(` </div> `) -//line messages.qtpl:397 +//line messages.qtpl:401 } else { -//line messages.qtpl:398 +//line messages.qtpl:402 if !El.IsHellbanned || AuthUser.ID == El.UserID || (El.IsHellbanned && AuthUser.IsHellbanned) || AuthUser.DisplayHellbanned { -//line messages.qtpl:398 +//line messages.qtpl:402 qw422016.N().S(` <div> `) -//line messages.qtpl:400 +//line messages.qtpl:404 tagType := "tag" -//line messages.qtpl:401 +//line messages.qtpl:405 if AuthUser.CanSeeHB() && El.IsHellbanned { -//line messages.qtpl:402 +//line messages.qtpl:406 tagType = "htag" -//line messages.qtpl:403 - } -//line messages.qtpl:404 - qw422016.N().S(`<a href="`) -//line messages.qtpl:405 - qw422016.E().S(baseTopBarURL) -//line messages.qtpl:405 - qw422016.N().S(`?`) -//line messages.qtpl:405 - qw422016.E().S(tagType) -//line messages.qtpl:405 - qw422016.N().S(`=`) -//line messages.qtpl:405 - qw422016.E().S(El.Username) -//line messages.qtpl:405 - streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:405 - qw422016.N().S(`"target="iframe1"`) -//line messages.qtpl:407 - if El.IsHellbanned && AuthUser.DisplayHellbanned { -//line messages.qtpl:407 - qw422016.N().S(`class="hb-row"`) //line messages.qtpl:407 } -//line messages.qtpl:407 - qw422016.N().S(`style="color:`) -//line messages.qtpl:408 - qw422016.E().S(El.Color) //line messages.qtpl:408 - qw422016.N().S(`;">`) -//line messages.qtpl:408 - qw422016.E().S(string(El.Username[0])) -//line messages.qtpl:408 - qw422016.N().S(`</a><a href="`) + qw422016.N().S(`<a href="`) //line messages.qtpl:409 qw422016.E().S(baseTopBarURL) //line messages.qtpl:409 - qw422016.N().S(`?pm=`) + qw422016.N().S(`?`) +//line messages.qtpl:409 + qw422016.E().S(tagType) +//line messages.qtpl:409 + qw422016.N().S(`=`) //line messages.qtpl:409 qw422016.E().S(El.Username) //line messages.qtpl:409 @@ -1159,13 +1168,19 @@ func StreamMember(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatM //line messages.qtpl:412 qw422016.N().S(`;">`) //line messages.qtpl:412 - qw422016.E().S(string(El.Username[1 : len(El.Username)-1])) + qw422016.E().S(string(El.Username[0])) //line messages.qtpl:412 - qw422016.N().S(`</a><a href="/u/`) + qw422016.N().S(`</a><a href="`) +//line messages.qtpl:413 + qw422016.E().S(baseTopBarURL) +//line messages.qtpl:413 + qw422016.N().S(`?pm=`) //line messages.qtpl:413 qw422016.E().S(El.Username) //line messages.qtpl:413 - qw422016.N().S(`"rel="noopener noreferrer" target="_blank"`) + streamunesc(qw422016, Data.TopBarQueryParams) +//line messages.qtpl:413 + qw422016.N().S(`"target="iframe1"`) //line messages.qtpl:415 if El.IsHellbanned && AuthUser.DisplayHellbanned { //line messages.qtpl:415 @@ -1179,165 +1194,185 @@ func StreamMember(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatM //line messages.qtpl:416 qw422016.N().S(`;">`) //line messages.qtpl:416 - qw422016.E().S(string(El.Username[len(El.Username)-1])) + qw422016.E().S(string(El.Username[1 : len(El.Username)-1])) //line messages.qtpl:416 + qw422016.N().S(`</a><a href="/u/`) +//line messages.qtpl:417 + qw422016.E().S(El.Username) +//line messages.qtpl:417 + qw422016.N().S(`"rel="noopener noreferrer" target="_blank"`) +//line messages.qtpl:419 + if El.IsHellbanned && AuthUser.DisplayHellbanned { +//line messages.qtpl:419 + qw422016.N().S(`class="hb-row"`) +//line messages.qtpl:419 + } +//line messages.qtpl:419 + qw422016.N().S(`style="color:`) +//line messages.qtpl:420 + qw422016.E().S(El.Color) +//line messages.qtpl:420 + qw422016.N().S(`;">`) +//line messages.qtpl:420 + qw422016.E().S(string(El.Username[len(El.Username)-1])) +//line messages.qtpl:420 qw422016.N().S(`</a>`) -//line messages.qtpl:418 +//line messages.qtpl:422 if El.AfkIndicatorEnabled { -//line messages.qtpl:418 +//line messages.qtpl:422 qw422016.N().S(` <small class="afk-indicator">afk</small> `) -//line messages.qtpl:420 +//line messages.qtpl:424 } -//line messages.qtpl:420 +//line messages.qtpl:424 qw422016.N().S(` </div> `) -//line messages.qtpl:422 +//line messages.qtpl:426 } -//line messages.qtpl:423 +//line messages.qtpl:427 } -//line messages.qtpl:424 +//line messages.qtpl:428 } -//line messages.qtpl:424 +//line messages.qtpl:428 func WriteMember(qq422016 qtio422016.Writer, AuthUser *database.User, Data ChatMessagesData, El managers.UserInfo) { -//line messages.qtpl:424 +//line messages.qtpl:428 qw422016 := qt422016.AcquireWriter(qq422016) -//line messages.qtpl:424 +//line messages.qtpl:428 StreamMember(qw422016, AuthUser, Data, El) -//line messages.qtpl:424 +//line messages.qtpl:428 qt422016.ReleaseWriter(qw422016) -//line messages.qtpl:424 +//line messages.qtpl:428 } -//line messages.qtpl:424 +//line messages.qtpl:428 func Member(AuthUser *database.User, Data ChatMessagesData, El managers.UserInfo) string { -//line messages.qtpl:424 +//line messages.qtpl:428 qb422016 := qt422016.AcquireByteBuffer() -//line messages.qtpl:424 +//line messages.qtpl:428 WriteMember(qb422016, AuthUser, Data, El) -//line messages.qtpl:424 +//line messages.qtpl:428 qs422016 := string(qb422016.B) -//line messages.qtpl:424 +//line messages.qtpl:428 qt422016.ReleaseByteBuffer(qb422016) -//line messages.qtpl:424 +//line messages.qtpl:428 return qs422016 -//line messages.qtpl:424 +//line messages.qtpl:428 } -//line messages.qtpl:427 +//line messages.qtpl:431 func streamfromUsername(qw422016 *qt422016.Writer, AuthUser *database.User, Data ChatMessagesData, El database.ChatMessage, baseTopBarURL string) { -//line messages.qtpl:428 +//line messages.qtpl:432 tagType := "tag" -//line messages.qtpl:429 +//line messages.qtpl:433 if El.ToUserID != nil { -//line messages.qtpl:430 +//line messages.qtpl:434 tagType = "pm" -//line messages.qtpl:431 +//line messages.qtpl:435 } else if AuthUser.CanSeeHB() && (El.IsHellbanned || El.User.IsHellbanned) { -//line messages.qtpl:432 +//line messages.qtpl:436 tagType = "htag" -//line messages.qtpl:433 +//line messages.qtpl:437 } else if AuthUser.IsModerator() && El.Moderators { -//line messages.qtpl:434 +//line messages.qtpl:438 tagType = "mtag" -//line messages.qtpl:435 +//line messages.qtpl:439 } -//line messages.qtpl:436 +//line messages.qtpl:440 if El.User.ID == AuthUser.ID { -//line messages.qtpl:437 +//line messages.qtpl:441 if El.CanBeEdited() { -//line messages.qtpl:437 +//line messages.qtpl:441 qw422016.N().S(`<a `) -//line messages.qtpl:437 +//line messages.qtpl:441 streamunesc(qw422016, El.User.GenerateChatStyle()) -//line messages.qtpl:437 +//line messages.qtpl:441 qw422016.N().S(` href="`) -//line messages.qtpl:437 +//line messages.qtpl:441 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:437 +//line messages.qtpl:441 qw422016.N().S(`?e=`) -//line messages.qtpl:437 +//line messages.qtpl:441 qw422016.E().S(El.CreatedAt.Format("15:04:05")) -//line messages.qtpl:437 +//line messages.qtpl:441 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:437 +//line messages.qtpl:441 qw422016.N().S(`" target="iframe1">`) -//line messages.qtpl:437 +//line messages.qtpl:441 qw422016.E().S(El.User.Username) -//line messages.qtpl:437 +//line messages.qtpl:441 qw422016.N().S(`</a>`) -//line messages.qtpl:437 +//line messages.qtpl:441 } else { -//line messages.qtpl:437 +//line messages.qtpl:441 qw422016.N().S(`<span `) -//line messages.qtpl:437 +//line messages.qtpl:441 streamunesc(qw422016, El.User.GenerateChatStyle()) -//line messages.qtpl:437 +//line messages.qtpl:441 qw422016.N().S(`>`) -//line messages.qtpl:437 +//line messages.qtpl:441 qw422016.E().S(El.User.Username) -//line messages.qtpl:437 +//line messages.qtpl:441 qw422016.N().S(`</span>`) -//line messages.qtpl:437 +//line messages.qtpl:441 } -//line messages.qtpl:438 +//line messages.qtpl:442 } else { -//line messages.qtpl:438 +//line messages.qtpl:442 qw422016.N().S(`<a `) -//line messages.qtpl:438 +//line messages.qtpl:442 streamunesc(qw422016, El.User.GenerateChatStyle()) -//line messages.qtpl:438 +//line messages.qtpl:442 qw422016.N().S(` href="`) -//line messages.qtpl:438 +//line messages.qtpl:442 qw422016.E().S(baseTopBarURL) -//line messages.qtpl:438 +//line messages.qtpl:442 qw422016.N().S(`?`) -//line messages.qtpl:438 +//line messages.qtpl:442 qw422016.E().S(tagType) -//line messages.qtpl:438 +//line messages.qtpl:442 qw422016.N().S(`=`) -//line messages.qtpl:438 +//line messages.qtpl:442 qw422016.E().S(El.User.Username) -//line messages.qtpl:438 +//line messages.qtpl:442 streamunesc(qw422016, Data.TopBarQueryParams) -//line messages.qtpl:438 +//line messages.qtpl:442 qw422016.N().S(`" target="iframe1">`) -//line messages.qtpl:438 +//line messages.qtpl:442 qw422016.E().S(El.User.Username) -//line messages.qtpl:438 +//line messages.qtpl:442 qw422016.N().S(`</a>`) -//line messages.qtpl:438 +//line messages.qtpl:442 } -//line messages.qtpl:439 +//line messages.qtpl:443 } -//line messages.qtpl:439 +//line messages.qtpl:443 func writefromUsername(qq422016 qtio422016.Writer, AuthUser *database.User, Data ChatMessagesData, El database.ChatMessage, baseTopBarURL string) { -//line messages.qtpl:439 +//line messages.qtpl:443 qw422016 := qt422016.AcquireWriter(qq422016) -//line messages.qtpl:439 +//line messages.qtpl:443 streamfromUsername(qw422016, AuthUser, Data, El, baseTopBarURL) -//line messages.qtpl:439 +//line messages.qtpl:443 qt422016.ReleaseWriter(qw422016) -//line messages.qtpl:439 +//line messages.qtpl:443 } -//line messages.qtpl:439 +//line messages.qtpl:443 func fromUsername(AuthUser *database.User, Data ChatMessagesData, El database.ChatMessage, baseTopBarURL string) string { -//line messages.qtpl:439 +//line messages.qtpl:443 qb422016 := qt422016.AcquireByteBuffer() -//line messages.qtpl:439 +//line messages.qtpl:443 writefromUsername(qb422016, AuthUser, Data, El, baseTopBarURL) -//line messages.qtpl:439 +//line messages.qtpl:443 qs422016 := string(qb422016.B) -//line messages.qtpl:439 +//line messages.qtpl:443 qt422016.ReleaseByteBuffer(qb422016) -//line messages.qtpl:439 +//line messages.qtpl:443 return qs422016 -//line messages.qtpl:439 +//line messages.qtpl:443 }