diff options
| author | Quey-Liang Kao <s101062801@m101.nthu.edu.tw> | 2017-08-20 21:44:56 +0800 |
|---|---|---|
| committer | Quey-Liang Kao <s101062801@m101.nthu.edu.tw> | 2017-08-20 21:44:56 +0800 |
| commit | 7877f0735dab782f66af157b39d6de3539c97102 (patch) | |
| tree | ddb228b1c8154a4ccee0b6438da5c0bcd7eda7b5 /todolist/todo_list.go | |
| parent | e1ed1a2357bbf5083e96c883071339235ac0f02e (diff) | |
| parent | 620a9f3aff090063f79285fb20437a62ce089a4e (diff) | |
Merge github.com:gammons/todolist into note_patch_set
Diffstat (limited to 'todolist/todo_list.go')
| -rw-r--r-- | todolist/todo_list.go | 110 |
1 files changed, 73 insertions, 37 deletions
diff --git a/todolist/todo_list.go b/todolist/todo_list.go index 4623a22..55c250d 100644 --- a/todolist/todo_list.go +++ b/todolist/todo_list.go @@ -15,57 +15,93 @@ func (t *TodoList) Add(todo *Todo) { t.Data = append(t.Data, todo) } -func (t *TodoList) Delete(id int) { - i := -1 - for index, todo := range t.Data { - if todo.Id == id { - i = index +func (t *TodoList) Delete(ids ...int) { + for _, id := range ids { + todo := t.FindById(id) + if todo == nil { + continue + } + i := -1 + for index, todo := range t.Data { + if todo.Id == id { + i = index + } } - } - t.Data = append(t.Data[:i], t.Data[i+1:]...) + t.Data = append(t.Data[:i], t.Data[i+1:]...) + } } -func (t *TodoList) Complete(id int) { - todo := t.FindById(id) - todo.Complete() - t.Delete(id) - t.Data = append(t.Data, todo) +func (t *TodoList) Complete(ids ...int) { + for _, id := range ids { + todo := t.FindById(id) + if todo == nil { + continue + } + todo.Complete() + t.Delete(id) + t.Data = append(t.Data, todo) + } } -func (t *TodoList) Uncomplete(id int) { - todo := t.FindById(id) - todo.Uncomplete() - t.Delete(id) - t.Data = append(t.Data, todo) +func (t *TodoList) Uncomplete(ids ...int) { + for _, id := range ids { + todo := t.FindById(id) + if todo == nil { + continue + } + todo.Uncomplete() + t.Delete(id) + t.Data = append(t.Data, todo) + } } -func (t *TodoList) Archive(id int) { - todo := t.FindById(id) - todo.Archive() - t.Delete(id) - t.Data = append(t.Data, todo) +func (t *TodoList) Archive(ids ...int) { + for _, id := range ids { + todo := t.FindById(id) + if todo == nil { + continue + } + todo.Archive() + t.Delete(id) + t.Data = append(t.Data, todo) + } } -func (t *TodoList) Unarchive(id int) { - todo := t.FindById(id) - todo.Unarchive() - t.Delete(id) - t.Data = append(t.Data, todo) +func (t *TodoList) Unarchive(ids ...int) { + for _, id := range ids { + todo := t.FindById(id) + if todo == nil { + continue + } + todo.Unarchive() + t.Delete(id) + t.Data = append(t.Data, todo) + } } -func (t *TodoList) Prioritize(id int) { - todo := t.FindById(id) - todo.Prioritize() - t.Delete(id) - t.Data = append(t.Data, todo) +func (t *TodoList) Prioritize(ids ...int) { + for _, id := range ids { + todo := t.FindById(id) + if todo == nil { + continue + } + todo.Prioritize() + t.Delete(id) + t.Data = append(t.Data, todo) + } } -func (t *TodoList) Unprioritize(id int) { - todo := t.FindById(id) - todo.Unprioritize() - t.Delete(id) - t.Data = append(t.Data, todo) +func (t *TodoList) Unprioritize(ids ...int) { + for _, id := range ids { + todo := t.FindById(id) + if todo == nil { + continue + } + todo.Unprioritize() + t.Delete(id) + t.Data = append(t.Data, todo) + } } func (t *TodoList) IndexOf(todoToFind *Todo) int { |
