diff --git a/main.go b/main.go index dfeda0c..9eb6309 100644 --- a/main.go +++ b/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) } diff --git a/server/ajax/storage.go b/server/ajax/storage.go index 5200336..f747f49 100644 --- a/server/ajax/storage.go +++ b/server/ajax/storage.go @@ -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 } diff --git a/server/ajax/task.go b/server/ajax/task.go index 6a1305d..3548b7b 100644 --- a/server/ajax/task.go +++ b/server/ajax/task.go @@ -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 {