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 (
|
import (
|
||||||
"local/todo-server/config"
|
"local/todo-server/config"
|
||||||
"local/todo-server/server"
|
"local/todo-server/server"
|
||||||
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -11,6 +12,7 @@ func main() {
|
||||||
if err := s.Routes(); err != nil {
|
if err := s.Routes(); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
log.Println("listening on", config.Port)
|
||||||
if err := http.ListenAndServe(config.Port, s); err != nil {
|
if err := http.ListenAndServe(config.Port, s); err != nil {
|
||||||
panic(err)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -8,6 +8,7 @@ import (
|
||||||
"local/todo-server/server/ajax/task"
|
"local/todo-server/server/ajax/task"
|
||||||
"net/http"
|
"net/http"
|
||||||
"path"
|
"path"
|
||||||
|
"sort"
|
||||||
"strings"
|
"strings"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -75,6 +76,9 @@ func (a *Ajax) storageListTasks(listID string, filters ...func(t *task.Task) boo
|
||||||
tasks = append(tasks, task)
|
tasks = append(tasks, task)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
sort.SliceStable(tasks, func(i, j int) bool {
|
||||||
|
return tasks[i].Created.Before(tasks[j].Created)
|
||||||
|
})
|
||||||
return tasks, nil
|
return tasks, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ func (a *Ajax) loadTasks(w http.ResponseWriter, r *http.Request) error {
|
||||||
if form.Get(r, "compl") == "" {
|
if form.Get(r, "compl") == "" {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return t.Complete == (form.Get(r, "compl") != "0")
|
return form.Get(r, "compl") == "1" || !t.Complete
|
||||||
}
|
}
|
||||||
filterTags := func(t *task.Task) bool {
|
filterTags := func(t *task.Task) bool {
|
||||||
if form.Get(r, "t") == "" {
|
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 {
|
func (a *Ajax) completeTask(w http.ResponseWriter, r *http.Request) error {
|
||||||
listID, taskID, _ := a.Cur(r)
|
listID, taskID, _ := a.Cur(r)
|
||||||
task, err := a.storageGetTask(taskID)
|
completedTask, err := a.storageGetTask(taskID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
task.SetComplete(form.Get(r, "compl") == "1")
|
completedTask.SetComplete(form.Get(r, "compl") == "1")
|
||||||
return a.storageSetTask(listID, task)
|
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 {
|
func (a *Ajax) editNote(w http.ResponseWriter, r *http.Request) error {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue