commit 88a4c654bd2a7536da0094f43d2fdb86b27ba3de
parent e6b0f27084081763d2aa95cc57ed8b3dd336e985
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Fri, 26 May 2023 17:38:05 -0700
hack to stop spinning icon in browser tab
Diffstat:
3 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/pkg/web/handlers/handlers.go b/pkg/web/handlers/handlers.go
@@ -5008,6 +5008,12 @@ func applyUserFilters(db *database.DkfDB, authUser *database.User, msg *database
return true
}
+func ChatStreamMessagesRefreshHandler(c echo.Context) error {
+ authUser := c.Get("authUser").(*database.User)
+ database.MsgPubSub.Pub("refresh_"+string(authUser.Username), database.ChatMessageType{Typ: database.ForceRefresh})
+ return c.NoContent(http.StatusOK)
+}
+
func ChatStreamMessagesHandler(c echo.Context) error {
db := c.Get("database").(*database.DkfDB)
authUser := c.Get("authUser").(*database.User)
diff --git a/pkg/web/public/views/pages/chat.gohtml b/pkg/web/public/views/pages/chat.gohtml
@@ -238,6 +238,7 @@
{{ end }}
<div>
<a href="/api/v1/chat/messages/{{ .Data.Room.Name }}{{ if .Data.IsStream }}/stream{{ end }}{{ .Data.ChatQueryParams }}" target="iframe2" class="btn btn-xs btn-secondary" title="Refresh messages">↻</a>
+ {{ if .Data.IsStream }}<a href="/api/v1/chat/messages/{{ .Data.Room.Name }}/refresh{{ .Data.ChatQueryParams }}" target="_blank" class="btn btn-xs btn-secondary" title="Refresh messages">□</a>{{ end }}
<a href="/chat/{{ .Data.Room.Name }}/archive">{{ t "Read all messages" . }}</a>
{{ if .Data.ToggleMentions }}
<a href="?mentionsOnly=0" class="btn btn-xs btn-success" title="Only Mentions are displayed">Toggle @</a>
diff --git a/pkg/web/web.go b/pkg/web/web.go
@@ -145,6 +145,7 @@ func getMainServer(db *database.DkfDB, i18nBundle *i18n.Bundle, renderer *tmp.Te
authGroup.GET("/api/v1/chat/top-bar/:roomName", v1.ChatTopBarHandler)
authGroup.POST("/api/v1/chat/top-bar/:roomName", v1.ChatTopBarHandler, middlewares.AuthRateLimitMiddleware(1*time.Second, 3))
authGroup.GET("/api/v1/chat/messages/:roomName", v1.ChatMessagesHandler)
+ authGroup.GET("/api/v1/chat/messages/:roomName/refresh", handlers.ChatStreamMessagesRefreshHandler, middlewares.AuthRateLimitMiddleware(1*time.Second, 4))
authGroup.GET("/api/v1/chat/messages/:roomName/stream", handlers.ChatStreamMessagesHandler, middlewares.AuthRateLimitMiddleware(1*time.Second, 4))
authGroup.GET("/api/v1/chat/messages/:roomName/stream/menu", handlers.ChatStreamMenuHandler)
authGroup.POST("/api/v1/notifications/delete/:notificationID", v1.DeleteNotificationHandler)