dkforest

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

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:
Mpkg/web/handlers/api/v1/data.go | 2+-
Mpkg/web/handlers/api/v1/handlers.go | 2+-
Mpkg/web/handlers/api/v1/messages.qtpl | 4++--
Mpkg/web/handlers/api/v1/messages.qtpl.go | 4++--
Mpkg/web/handlers/handlers.go | 5++++-
Mpkg/web/public/views/pages/chat.gohtml | 4++--
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>