Working more on timer modifications
This commit is contained in:
parent
0d2a887618
commit
95acb78140
@ -10,17 +10,32 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
func cmdModifyTimer(args []string) int {
|
func cmdModifyTimer(args []string) int {
|
||||||
|
var err error
|
||||||
// If no timer id is specified, edit the most recent one
|
// If no timer id is specified, edit the most recent one
|
||||||
modId := "@0"
|
modId := "@0"
|
||||||
var tags, remTags, rem []string
|
var tags, remTags, rem []string
|
||||||
tags, rem = pullTagsFromArgs(args)
|
tags, rem = pullTagsFromArgs(args)
|
||||||
remTags, rem = pullRemoveTagsFromArgs(rem)
|
remTags, rem = pullRemoveTagsFromArgs(rem)
|
||||||
|
var start, end time.Time
|
||||||
for i := range rem {
|
for i := range rem {
|
||||||
if rem[i][0] == '@' {
|
if rem[i][0] == '@' {
|
||||||
modId = rem[i]
|
modId = rem[i]
|
||||||
}
|
}
|
||||||
if strings.HasPrefix(rem, "start:") {
|
if strings.HasPrefix(rem[i], "start:") {
|
||||||
|
stStr := strings.TrimPrefix(rem[i], "start:")
|
||||||
|
start, err = parseFuzzyTime(stStr)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Unable to parse start time: " + stStr)
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if strings.HasPrefix(rem[i], "end:") {
|
||||||
|
endStr := strings.TrimPrefix(rem[i], "end:")
|
||||||
|
end, err = parseFuzzyTime(endStr)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Unable to parse end time: " + endStr)
|
||||||
|
return 1
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
timerId, err := strconv.Atoi(modId[1:])
|
timerId, err := strconv.Atoi(modId[1:])
|
||||||
@ -39,6 +54,20 @@ func cmdModifyTimer(args []string) int {
|
|||||||
for i := range remTags {
|
for i := range remTags {
|
||||||
tmr.RemoveTag(remTags[i])
|
tmr.RemoveTag(remTags[i])
|
||||||
}
|
}
|
||||||
|
if !start.IsZero() {
|
||||||
|
// TODO: Fix keying by start time
|
||||||
|
fmt.Println("Not supported")
|
||||||
|
return 1
|
||||||
|
//tmr.SetStart(start)
|
||||||
|
}
|
||||||
|
if tmr.GetEnd().IsZero() {
|
||||||
|
// At this point, timers must be stopped to modify the end date
|
||||||
|
fmt.Println("Timer has not been stopped. Cowardly refusing to modify stop time.")
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
if !end.IsZero() {
|
||||||
|
tmr.SetEnd(end)
|
||||||
|
}
|
||||||
if err = gdb.SaveTimeEntry(tmr); err != nil {
|
if err = gdb.SaveTimeEntry(tmr); err != nil {
|
||||||
fmt.Println("Error saving modified timer:", err.Error())
|
fmt.Println("Error saving modified timer:", err.Error())
|
||||||
return 1
|
return 1
|
||||||
|
Loading…
Reference in New Issue
Block a user