commit 8e38d3076cc34bcf04dccfbb96560b2361920113
parent 661575b26bf290fbd2680a2b85d8cd0ab697f7c1
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Sat, 27 May 2023 00:24:27 -0700
add PreventRefresh query param to control menu refresh in stream chat mode
Diffstat:
6 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/pkg/web/handlers/api/v1/data.go b/pkg/web/handlers/api/v1/data.go
@@ -27,13 +27,13 @@ type ChatMenuData struct {
VisibleMemberInChat bool // either or not at least 1 user is "visible" (not hellbanned)
RoomName string
TopBarQueryParams string
+ PreventRefresh bool
}
type ChatMessagesData struct {
ChatMenuData
NbButtons int64
Messages []database.ChatMessage
- PreventRefresh bool
RoomName string
ManualRefreshTimeout int64
ReadMarker database.ChatReadMarker
diff --git a/pkg/web/handlers/api/v1/handlers.go b/pkg/web/handlers/api/v1/handlers.go
@@ -94,6 +94,7 @@ func GetChatMenuData(c echo.Context, room database.ChatRoom) ChatMenuData {
authUser := c.Get("authUser").(*database.User)
data := ChatMenuData{}
+ data.PreventRefresh = utils.DoParseBool(c.QueryParam("r"))
sessionToken := ""
authCookie, _ := c.Cookie(hutils.AuthCookieName)
if authCookie != nil {
@@ -181,7 +182,6 @@ func chatMessages(c echo.Context) (status int, data ChatMessagesData) {
data.ManualRefreshTimeout = authUser.RefreshRate + 25
data.Messages = msgs
- data.PreventRefresh = utils.DoParseBool(c.QueryParam("r"))
data.ReadMarker, _ = db.GetUserReadMarker(authUser.ID, room.ID)
data.NbButtons = authUser.CountUIButtons()
diff --git a/pkg/web/handlers/api/v1/messages.qtpl b/pkg/web/handlers/api/v1/messages.qtpl
@@ -201,7 +201,7 @@
<html lang="en">
<head>
<title></title>
- {%- if !Data.PreventRefresh && !Data.ForceManualRefresh -%}<meta http-equiv="refresh" content="{%dl AuthUser.RefreshRate %}">{%- endif -%}
+ {%- if !Data.ChatMenuData.PreventRefresh && !Data.ForceManualRefresh -%}<meta http-equiv="refresh" content="{%dl AuthUser.RefreshRate %}">{%- endif -%}
{%- if AuthUser.CollectMetadata -%}<link rel="stylesheet" type="text/css" href="/public/css/meta.css?v={%s VERSION %}" />{%- endif -%}
{%-= GenerateStyle(AuthUser, Data) -%}
</head>
@@ -214,7 +214,7 @@
<input type="submit" value="Reload" />
</form>
</div>
- {%- elseif !Data.PreventRefresh -%}
+ {%- elseif !Data.ChatMenuData.PreventRefresh -%}
<div id="manualrefresh">
<h4>Manual refresh required</h4>
<form method="get">
diff --git a/pkg/web/handlers/api/v1/messages.qtpl.go b/pkg/web/handlers/api/v1/messages.qtpl.go
@@ -291,7 +291,7 @@ func StreamMessages(qw422016 *qt422016.Writer, VERSION, CSRF, NullUsername strin
<title></title>
`)
//line messages.qtpl:204
- if !Data.PreventRefresh && !Data.ForceManualRefresh {
+ if !Data.ChatMenuData.PreventRefresh && !Data.ForceManualRefresh {
//line messages.qtpl:204
qw422016.N().S(`<meta http-equiv="refresh" content="`)
//line messages.qtpl:204
@@ -332,7 +332,7 @@ func StreamMessages(qw422016 *qt422016.Writer, VERSION, CSRF, NullUsername strin
</div>
`)
//line messages.qtpl:217
- } else if !Data.PreventRefresh {
+ } else if !Data.ChatMenuData.PreventRefresh {
//line messages.qtpl:217
qw422016.N().S(` <div id="manualrefresh">
<h4>Manual refresh required</h4>
diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go
@@ -4877,7 +4877,10 @@ func ChatStreamMenuHandler(c echo.Context) error {
data := v1.GetChatMenuData(c, room)
- s := `<meta http-equiv="refresh" content="5" />`
+ s := ""
+ if !data.PreventRefresh {
+ s += `<meta http-equiv="refresh" content="5" />`
+ }
s += v1.GenerateStyle(authUser, v1.ChatMessagesData{})
s += v1.RenderRightColumn(authUser, data)
return c.HTML(http.StatusOK, s)
diff --git a/pkg/web/public/views/pages/chat.gohtml b/pkg/web/public/views/pages/chat.gohtml
@@ -158,7 +158,7 @@
{{ if .AuthUser.ChatBarAtBottom }}
<div>
<iframe id="chat-content" name="iframe2" src="/api/v1/chat/messages/{{ .Data.Room.Name }}{{ if .Data.IsStream }}/stream{{ end }}{{ .Data.ChatQueryParams }}"></iframe>
- {{ if .Data.IsStream }}<iframe id="chat-menu" src="/api/v1/chat/messages/{{ .Data.Room.Name }}/stream/menu"></iframe>{{ end }}
+ {{ if .Data.IsStream }}<iframe id="chat-menu" src="/api/v1/chat/messages/{{ .Data.Room.Name }}/stream/menu{{ .Data.ChatQueryParams }}"></iframe>{{ end }}
</div>
{{ end }}
<div>
@@ -233,7 +233,7 @@
allow-popups-to-escape-sandbox"
*/}}
<iframe id="chat-content" name="iframe2" src="/api/v1/chat/messages/{{ .Data.Room.Name }}{{ if .Data.IsStream }}/stream{{ end }}{{ .Data.ChatQueryParams }}"></iframe>
- {{ if .Data.IsStream }}<iframe id="chat-menu" src="/api/v1/chat/messages/{{ .Data.Room.Name }}/stream/menu"></iframe>{{ end }}
+ {{ if .Data.IsStream }}<iframe id="chat-menu" src="/api/v1/chat/messages/{{ .Data.Room.Name }}/stream/menu{{ .Data.ChatQueryParams }}"></iframe>{{ end }}
</div>
{{ end }}
<div>