58 lines
1.3 KiB
Go
58 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
"time"
|
|
|
|
"fyne.io/fyne/v2"
|
|
"fyne.io/fyne/v2/container"
|
|
"fyne.io/fyne/v2/layout"
|
|
"fyne.io/fyne/v2/widget"
|
|
"go.elara.ws/itd/api"
|
|
)
|
|
|
|
func timeTab(ctx context.Context, client *api.Client, w fyne.Window) fyne.CanvasObject {
|
|
c := container.NewVBox()
|
|
c.Add(layout.NewSpacer())
|
|
|
|
// Create entry for time string
|
|
timeEntry := widget.NewEntry()
|
|
timeEntry.SetText(time.Now().Format(time.RFC1123))
|
|
timeEntry.SetPlaceHolder("RFC1123")
|
|
|
|
// Create button to set current time
|
|
setCurrentBtn := widget.NewButton("Set current time", func() {
|
|
// Set current time
|
|
err := client.SetTime(ctx, time.Now())
|
|
if err != nil {
|
|
guiErr(err, "Error setting time", false, w)
|
|
return
|
|
}
|
|
// Set time entry to current time
|
|
timeEntry.SetText(time.Now().Format(time.RFC1123))
|
|
})
|
|
|
|
// Create button to set time from entry
|
|
setBtn := widget.NewButton("Set", func() {
|
|
// Parse RFC1123 time string in entry
|
|
newTime, err := time.Parse(time.RFC1123, timeEntry.Text)
|
|
if err != nil {
|
|
guiErr(err, "Error parsing time string", false, w)
|
|
return
|
|
}
|
|
// Set time from parsed string
|
|
err = client.SetTime(ctx, newTime)
|
|
if err != nil {
|
|
guiErr(err, "Error setting time", false, w)
|
|
return
|
|
}
|
|
})
|
|
|
|
c.Add(timeEntry)
|
|
c.Add(setBtn)
|
|
c.Add(setCurrentBtn)
|
|
|
|
c.Add(layout.NewSpacer())
|
|
return c
|
|
}
|