Fix completing tasks, showing completed tasks, and stable display order. Sorting broken.
parent
b6397a71d4
commit
4b5542b833
2
main.go
2
main.go
|
|
@ -3,6 +3,7 @@ package main
|
|||
import (
|
||||
"local/todo-server/config"
|
||||
"local/todo-server/server"
|
||||
"log"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
|
|
@ -11,6 +12,7 @@ func main() {
|
|||
if err := s.Routes(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
log.Println("listening on", config.Port)
|
||||
if err := http.ListenAndServe(config.Port, s); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import (
|
|||
"local/todo-server/server/ajax/task"
|
||||
"net/http"
|
||||
"path"
|
||||
"sort"
|
||||
"strings"
|
||||
)
|
||||
|
||||
|
|
@ -75,6 +76,9 @@ func (a *Ajax) storageListTasks(listID string, filters ...func(t *task.Task) boo
|
|||
tasks = append(tasks, task)
|
||||
}
|
||||
}
|
||||
sort.SliceStable(tasks, func(i, j int) bool {
|
||||
return tasks[i].Created.Before(tasks[j].Created)
|
||||
})
|
||||
return tasks, nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ func (a *Ajax) loadTasks(w http.ResponseWriter, r *http.Request) error {
|
|||
if form.Get(r, "compl") == "" {
|
||||
return true
|
||||
}
|
||||
return t.Complete == (form.Get(r, "compl") != "0")
|
||||
return form.Get(r, "compl") == "1" || !t.Complete
|
||||
}
|
||||
filterTags := func(t *task.Task) bool {
|
||||
if form.Get(r, "t") == "" {
|
||||
|
|
@ -79,12 +79,18 @@ func (a *Ajax) deleteTask(w http.ResponseWriter, r *http.Request) error {
|
|||
|
||||
func (a *Ajax) completeTask(w http.ResponseWriter, r *http.Request) error {
|
||||
listID, taskID, _ := a.Cur(r)
|
||||
task, err := a.storageGetTask(taskID)
|
||||
completedTask, err := a.storageGetTask(taskID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
task.SetComplete(form.Get(r, "compl") == "1")
|
||||
return a.storageSetTask(listID, task)
|
||||
completedTask.SetComplete(form.Get(r, "compl") == "1")
|
||||
if err := a.storageSetTask(listID, completedTask); err != nil {
|
||||
return err
|
||||
}
|
||||
return json.NewEncoder(w).Encode(map[string]interface{}{
|
||||
"total": 1,
|
||||
"list": []*task.Task{completedTask},
|
||||
})
|
||||
}
|
||||
|
||||
func (a *Ajax) editNote(w http.ResponseWriter, r *http.Request) error {
|
||||
|
|
|
|||
Loading…
Reference in New Issue