From 10c92a9251f0b7e2cf6b0fd1a2d75f7d7e614995 Mon Sep 17 00:00:00 2001 From: Umputun Date: Wed, 16 May 2018 11:43:14 -0500 Subject: [PATCH] restore time sort, add active sort --- app/rest/tree.go | 6 ++++++ app/rest/tree_test.go | 9 +++++++-- app/store/store.go | 2 +- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/rest/tree.go b/app/rest/tree.go index 96e615c3..797e3189 100644 --- a/app/rest/tree.go +++ b/app/rest/tree.go @@ -88,6 +88,12 @@ func (t *Tree) sortNodes(sortType string) { sort.Slice(t.Nodes, func(i, j int) bool { switch sortType { case "+time", "-time", "time": + if strings.HasPrefix(sortType, "-") { + return t.Nodes[i].Comment.Timestamp.After(t.Nodes[j].Comment.Timestamp) + } + return t.Nodes[i].Comment.Timestamp.Before(t.Nodes[j].Comment.Timestamp) + + case "+active", "-active", "active": if strings.HasPrefix(sortType, "-") { return t.Nodes[i].ts.After(t.Nodes[j].ts) } diff --git a/app/rest/tree_test.go b/app/rest/tree_test.go index 224c2af0..13681f93 100644 --- a/app/rest/tree_test.go +++ b/app/rest/tree_test.go @@ -61,14 +61,19 @@ func TestTreeSortNodes(t *testing.T) { {ID: "5", Deleted: true}, } - res := MakeTree(comments, "+time") + res := MakeTree(comments, "+active") assert.Equal(t, "2", res.Nodes[0].Comment.ID) t.Log(res.Nodes[0].Comment.ID, res.Nodes[0].ts) - res = MakeTree(comments, "-time") + res = MakeTree(comments, "-active") t.Log(res.Nodes[0].Comment.ID, res.Nodes[0].ts) assert.Equal(t, "1", res.Nodes[0].Comment.ID) + res = MakeTree(comments, "+time") + t.Log(res.Nodes[0].Comment.ID, res.Nodes[0].ts) + res = MakeTree(comments, "-time") + assert.Equal(t, "6", res.Nodes[0].Comment.ID) + res = MakeTree(comments, "score") assert.Equal(t, "4", res.Nodes[0].Comment.ID) assert.Equal(t, "3", res.Nodes[1].Comment.ID) diff --git a/app/store/store.go b/app/store/store.go index 1cb9696a..83d2159c 100644 --- a/app/store/store.go +++ b/app/store/store.go @@ -37,7 +37,7 @@ type Admin interface { func sortComments(comments []Comment, sortFld string) []Comment { sort.Slice(comments, func(i, j int) bool { switch sortFld { - case "+time", "-time", "time": + case "+time", "-time", "time", "+active", "-active", "active": if strings.HasPrefix(sortFld, "-") { return comments[i].Timestamp.After(comments[j].Timestamp) }