Add the ability to start the tracker when submitting an entry
All checks were successful
CI / test (push) Successful in 1m1s

This commit is contained in:
Justin Hawkins 2025-06-20 17:08:39 +02:00
parent 6116e89aac
commit c7798c5784

View File

@ -35,6 +35,7 @@ func (m model) updateForm(msg tea.Msg) (tea.Model, tea.Cmd) {
projectID := m.formData.form.GetString("project")
description := m.formData.form.GetString("description")
minutes := m.formData.form.GetString("minutes")
tracker := m.formData.form.GetBool("tracker")
minutesInt, err1 := strconv.ParseInt(minutes, 10, 64)
serviceIDInt, err2 := strconv.ParseInt(serviceID, 10, 64)
@ -45,16 +46,29 @@ func (m model) updateForm(msg tea.Msg) (tea.Model, tea.Cmd) {
m.tuiMode = MODE_CAL
} else {
err := m.miteAPI.AddTimeEntry(m.dest.Format(time.DateOnly), int(minutesInt), description, int(projectIDInt), int(serviceIDInt))
id, err := m.miteAPI.AddTimeEntry(m.dest.Format(time.DateOnly), int(minutesInt), description, int(projectIDInt), int(serviceIDInt))
if err != nil {
m.statusBarMessage = err.Error()
m.tuiMode = MODE_CAL
} else {
if tracker {
_, _, err = m.miteAPI.StartTimeTracker(id)
if err != nil {
m.statusBarMessage = err.Error()
m.tuiMode = MODE_CAL
} else {
m.statusBarMessage = "Successfully logged time and started tracker"
m.tuiMode = MODE_CAL
return m, m.fetchMiteData()
}
} else {
m.statusBarMessage = "Successfully logged time"
m.tuiMode = MODE_CAL
return m, m.fetchMiteData()
}
}
}
}
@ -101,15 +115,9 @@ func (m model) buildForm() *huh.Form {
Key("project").
Title("Project").
Options(projOptions...).
Height(10)
Height(6)
form := huh.NewForm(
huh.NewGroup(
pl,
sl,
),
huh.NewGroup(
huh.NewText().
description := huh.NewText().
Key("description").
Title("description").
Validate(func(s string) error {
@ -117,8 +125,10 @@ func (m model) buildForm() *huh.Form {
return errors.New("must enter a description")
}
return nil
}),
huh.NewInput().
})
defMinutes := "0"
minutes := huh.NewInput().
Key("minutes").
CharLimit(5).
Validate(
@ -132,7 +142,24 @@ func (m model) buildForm() *huh.Form {
}
return err
}).
Title("Minutes"),
Title("Minutes").
Value(&defMinutes)
confirmTracker := huh.NewConfirm().
Key("tracker").
Affirmative("Yes").
Negative("No").
Title("Start tracker")
form := huh.NewForm(
huh.NewGroup(
pl,
sl,
description,
),
huh.NewGroup(
minutes,
confirmTracker,
),
)
return form