mirror of
https://github.com/aljazceru/njump.git
synced 2025-12-17 22:34:25 +01:00
Show correct datetime in relation to time zone
This commit is contained in:
@@ -45,7 +45,7 @@ templ calendarEventTemplate(params CalendarPageParams) {
|
||||
<div class="py-2 px-4 bg-strongpink text-white rounded-md">
|
||||
<div>{ params.StartAtDate }</div>
|
||||
if params.StartAtTime != "" && params.EndAtTime != "" {
|
||||
<div class="text-sm whitespace-nowrap">From { params.StartAtTime } to { params.EndAtTime } (UTC)</div>
|
||||
<div class="text-sm whitespace-nowrap">From { params.StartAtTime } to { params.EndAtTime } ({ params.TimeZone })</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
@@ -54,7 +54,7 @@ templ calendarEventTemplate(params CalendarPageParams) {
|
||||
<div class="font-semibold text-sm ml-2">Start date</div>
|
||||
<div class="py-2 px-4 bg-strongpink text-white rounded-md">
|
||||
<div class="whitespace-nowrap">{ params.StartAtDate }</div>
|
||||
<div class="text-sm">{ params.StartAtTime } (UTC)</div>
|
||||
<div class="text-sm">{ params.StartAtTime } ({ params.TimeZone })</div>
|
||||
</div>
|
||||
</div>
|
||||
if params.EndAtTime != "" {
|
||||
@@ -62,7 +62,7 @@ templ calendarEventTemplate(params CalendarPageParams) {
|
||||
<div class="font-semibold text-sm ml-2">End date</div>
|
||||
<div class="py-2 px-4 bg-strongpink text-white rounded-md">
|
||||
<div class="whitespace-nowrap">{ params.EndAtDate }</div>
|
||||
<div class="text-sm">{ params.EndAtTime } (UTC)</div>
|
||||
<div class="text-sm">{ params.EndAtTime } ({ params.TimeZone })</div>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
2
justfile
2
justfile
@@ -14,7 +14,7 @@ deploy: templ tailwind
|
||||
ssh njump 'systemctl start njump'
|
||||
|
||||
debug-build: templ tailwind
|
||||
go build -tags=nocache -o /tmp/njump .
|
||||
go build -o /tmp/njump .
|
||||
|
||||
templ:
|
||||
templ generate
|
||||
|
||||
1
pages.go
1
pages.go
@@ -246,6 +246,7 @@ type CalendarPageParams struct {
|
||||
OpenGraphParams
|
||||
HeadParams
|
||||
Details DetailsParams
|
||||
TimeZone string
|
||||
StartAtDate string
|
||||
StartAtTime string
|
||||
EndAtDate string
|
||||
|
||||
@@ -464,11 +464,20 @@ func renderEvent(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
var StartAtDate, StartAtTime string
|
||||
var EndAtDate, EndAtTime string
|
||||
StartAtDate = data.kind31922Or31923Metadata.Start.Format("02 Jan 2006")
|
||||
EndAtDate = data.kind31922Or31923Metadata.End.Format("02 Jan 2006")
|
||||
var TimeZone string
|
||||
|
||||
location, err := time.LoadLocation(data.kind31922Or31923Metadata.StartTzid)
|
||||
if err != nil {
|
||||
// Set default TimeZone to UTC
|
||||
location = time.UTC
|
||||
}
|
||||
TimeZone = getUTCOffset(location)
|
||||
|
||||
StartAtDate = data.kind31922Or31923Metadata.Start.In(location).Format("02 Jan 2006")
|
||||
EndAtDate = data.kind31922Or31923Metadata.End.In(location).Format("02 Jan 2006")
|
||||
if data.kind31922Or31923Metadata.CalendarEventKind == 31923 {
|
||||
StartAtTime = data.kind31922Or31923Metadata.Start.Format("15:04")
|
||||
EndAtTime = data.kind31922Or31923Metadata.End.Format("15:04")
|
||||
StartAtTime = data.kind31922Or31923Metadata.Start.In(location).Format("15:04")
|
||||
EndAtTime = data.kind31922Or31923Metadata.End.In(location).Format("15:04")
|
||||
}
|
||||
|
||||
// Reset EndDate/Time if it is non initialized (beginning of the Unix epoch)
|
||||
@@ -485,7 +494,7 @@ func renderEvent(w http.ResponseWriter, r *http.Request) {
|
||||
NaddrNaked: data.naddrNaked,
|
||||
NeventNaked: data.neventNaked,
|
||||
},
|
||||
|
||||
TimeZone: TimeZone,
|
||||
StartAtDate: StartAtDate,
|
||||
StartAtTime: StartAtTime,
|
||||
EndAtDate: EndAtDate,
|
||||
|
||||
16
utils.go
16
utils.go
@@ -478,3 +478,19 @@ func clamp(val, low, high int) int {
|
||||
}
|
||||
return val
|
||||
}
|
||||
|
||||
func getUTCOffset(loc *time.Location) string {
|
||||
// Get the offset from UTC
|
||||
_, offset := time.Now().In(loc).Zone()
|
||||
|
||||
// Calculate the offset in hours
|
||||
offsetHours := offset / 3600
|
||||
|
||||
// Format the UTC offset string
|
||||
sign := "+"
|
||||
if offsetHours < 0 {
|
||||
sign = "-"
|
||||
offsetHours = -offsetHours
|
||||
}
|
||||
return fmt.Sprintf("UTC%s%d", sign, offsetHours)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user