almost there but tasks dont disappear in UI and click&drag doesnt work
This commit is contained in:
@@ -14,23 +14,26 @@ import (
|
||||
func (a *Ajax) Cur(r *http.Request) (string, string, []string) {
|
||||
listID := form.Get(r, "list")
|
||||
taskID := form.Get(r, "id")
|
||||
if listID == "" {
|
||||
a.storageGet(path.Join("task", taskID, "map"), &listID)
|
||||
}
|
||||
tags, _ := r.URL.Query()["t"]
|
||||
return listID, taskID, tags
|
||||
}
|
||||
|
||||
func (a *Ajax) storageListLists(filters ...func(t *list.List) bool) ([]*list.List, error) {
|
||||
results, err := a.DB.List(nil, "", "}")
|
||||
results, err := a.DB.List(nil, path.Join("list"), path.Join("list", "}"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
lists := []*list.List{}
|
||||
for _, result := range results {
|
||||
if d, f := path.Split(result); d == "" || f == "" {
|
||||
if d := path.Dir(result); d != "list" {
|
||||
continue
|
||||
}
|
||||
list := &list.List{
|
||||
ID: result,
|
||||
UUID: result,
|
||||
list, err := a.storageGetList(path.Base(result))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
filtered := true
|
||||
for _, f := range filters {
|
||||
@@ -47,14 +50,17 @@ func (a *Ajax) storageListLists(filters ...func(t *list.List) bool) ([]*list.Lis
|
||||
}
|
||||
|
||||
func (a *Ajax) storageListTasks(listID string, filters ...func(t *task.Task) bool) ([]*task.Task, error) {
|
||||
results, err := a.DB.List(nil, listID+"/", listID+"/}")
|
||||
results, err := a.DB.List(nil, path.Join("list", listID, "task"), path.Join("list", listID, "task", "}"))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
tasks := []*task.Task{}
|
||||
for _, result := range results {
|
||||
taskID := strings.TrimPrefix(result, listID+"/")
|
||||
task, err := a.storageGetTask(listID, taskID)
|
||||
taskID := path.Base(result)
|
||||
if taskID == "" {
|
||||
continue
|
||||
}
|
||||
task, err := a.storageGetTask(taskID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -72,55 +78,53 @@ func (a *Ajax) storageListTasks(listID string, filters ...func(t *task.Task) boo
|
||||
return tasks, nil
|
||||
}
|
||||
|
||||
func (a *Ajax) storageGetTask(listID, taskID string) (*task.Task, error) {
|
||||
func (a *Ajax) storageGetTask(taskID string) (*task.Task, error) {
|
||||
var listID string
|
||||
if err := a.storageGet(path.Join("task", taskID, "map"), &listID); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
var task task.Task
|
||||
err := a.storageGet(path.Join(listID, taskID), &task)
|
||||
err := a.storageGet(path.Join("list", listID, "task", taskID), &task)
|
||||
return &task, err
|
||||
}
|
||||
|
||||
func (a *Ajax) storageSetTask(listID, taskID string, newTask *task.Task) error {
|
||||
func (a *Ajax) storageSetTask(listID string, newTask *task.Task) error {
|
||||
if newTask == nil {
|
||||
newTask = &task.Task{}
|
||||
newTask = &task.Task{
|
||||
UUID: "nil",
|
||||
}
|
||||
}
|
||||
return a.storageSet(path.Join(listID, taskID), *newTask)
|
||||
if err := a.storageSet(path.Join("task", newTask.UUID, "map"), listID); err != nil {
|
||||
return err
|
||||
}
|
||||
return a.storageSet(path.Join("list", listID, "task", newTask.UUID), *newTask)
|
||||
}
|
||||
|
||||
func (a *Ajax) storageDelTask(listID, taskID string) error {
|
||||
return a.storageDel(path.Join(listID, taskID))
|
||||
func (a *Ajax) storageDelTask(taskID string) error {
|
||||
var listID string
|
||||
if err := a.storageGet(path.Join("task", taskID, "map"), &listID); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := a.storageDel(path.Join("task", taskID, "map")); err != nil {
|
||||
return err
|
||||
}
|
||||
return a.storageDel(path.Join("list", listID, "task", taskID))
|
||||
}
|
||||
|
||||
func (a *Ajax) storageGetList(listID string) (*list.List, error) {
|
||||
listID = strings.TrimSuffix(listID, "/") + "/"
|
||||
var list list.List
|
||||
err := a.storageGet(listID, &list)
|
||||
err := a.storageGet(path.Join("list", listID), &list)
|
||||
return &list, err
|
||||
}
|
||||
|
||||
func (a *Ajax) storageSetList(listID string, list *list.List) error {
|
||||
return a.storageSet(listID, *list)
|
||||
func (a *Ajax) storageSetList(list *list.List) error {
|
||||
return a.storageSet(path.Join("list", list.UUID), *list)
|
||||
}
|
||||
|
||||
func (a *Ajax) storageDelList(listID string) error {
|
||||
return a.storageDel(listID)
|
||||
}
|
||||
|
||||
func (a *Ajax) storageSetCurTags(tags []string) error {
|
||||
return a.storageSet("currentTags", tags)
|
||||
}
|
||||
|
||||
func (a *Ajax) storageGetCurTags() ([]string, error) {
|
||||
var tags []string
|
||||
err := a.storageGet("currentTags", &tags)
|
||||
return tags, err
|
||||
}
|
||||
|
||||
func (a *Ajax) storageSetCur(listID string) error {
|
||||
return a.storageSet("currentList", listID)
|
||||
}
|
||||
|
||||
func (a *Ajax) storageGetCur() (string, error) {
|
||||
var listID string
|
||||
err := a.storageGet("currentList", &listID)
|
||||
return listID, err
|
||||
listID = strings.TrimSuffix(listID, "/") + "/"
|
||||
return a.storageDel(path.Join("list", listID))
|
||||
}
|
||||
|
||||
func (a *Ajax) storageSet(key string, value interface{}) error {
|
||||
|
||||
Reference in New Issue
Block a user