1
0
mirror of https://github.com/muety/wakapi.git synced 2023-08-10 21:12:56 +03:00

Merge pull request #425 from Daste745/persistent-summary-interval

Persistent summary time interval
This commit is contained in:
Ferdinand Mütsch 2022-12-05 19:27:07 +01:00 committed by GitHub
commit 9f38246fe2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 3 deletions

View File

@ -12,9 +12,10 @@ import (
) )
const ( const (
UserKey = "user" UserKey = "user"
ImprintKey = "imprint" ImprintKey = "imprint"
AuthCookieKey = "wakapi_auth" AuthCookieKey = "wakapi_auth"
PersistentIntervalKey = "wakapi_summary_interval"
) )
type MigrationFunc func(db *gorm.DB) error type MigrationFunc func(db *gorm.DB) error

View File

@ -5,10 +5,12 @@ import (
conf "github.com/muety/wakapi/config" conf "github.com/muety/wakapi/config"
"github.com/muety/wakapi/helpers" "github.com/muety/wakapi/helpers"
"github.com/muety/wakapi/middlewares" "github.com/muety/wakapi/middlewares"
"github.com/muety/wakapi/models"
"github.com/muety/wakapi/models/view" "github.com/muety/wakapi/models/view"
su "github.com/muety/wakapi/routes/utils" su "github.com/muety/wakapi/routes/utils"
"github.com/muety/wakapi/services" "github.com/muety/wakapi/services"
"github.com/muety/wakapi/utils" "github.com/muety/wakapi/utils"
"fmt"
"net/http" "net/http"
) )
@ -44,8 +46,18 @@ func (h *SummaryHandler) GetIndex(w http.ResponseWriter, r *http.Request) {
rawQuery := r.URL.RawQuery rawQuery := r.URL.RawQuery
q := r.URL.Query() q := r.URL.Query()
if q.Get("interval") == "" && q.Get("from") == "" { if q.Get("interval") == "" && q.Get("from") == "" {
// If the PersistentIntervalKey cookie is set, redirect to the correct summary page
if intervalCookie, _ := r.Cookie(models.PersistentIntervalKey); intervalCookie != nil {
redirectAddress := fmt.Sprintf("%s/summary?interval=%s", h.config.Server.BasePath, intervalCookie.Value)
http.Redirect(w, r, redirectAddress, http.StatusFound)
}
q.Set("interval", "today") q.Set("interval", "today")
r.URL.RawQuery = q.Encode() r.URL.RawQuery = q.Encode()
} else if q.Get("interval") != "" {
// Send a Set-Cookie header to persist the interval
headerValue := fmt.Sprintf("%s=%s", models.PersistentIntervalKey, q.Get("interval"))
w.Header().Add("Set-Cookie", headerValue)
} }
summaryParams, _ := helpers.ParseSummaryParams(r) summaryParams, _ := helpers.ParseSummaryParams(r)