Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix "Dashboard shows deleted comments" #1995

Merged
merged 24 commits into from
Jun 25, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
74774a4
Added comment's hashtag to url for mail notifications.
jonasfranz May 4, 2017
f385727
Added comment's hashtag to url for mail notifications.
jonasfranz May 4, 2017
e05eb96
Added comment's hashtag to url for mail notifications.
jonasfranz May 4, 2017
5cb36ca
Added comment's hashtag to url for mail notifications.
jonasfranz May 4, 2017
2dd674e
Replacing in-line link generation with HTMLURL. (+gofmt)
jonasfranz May 4, 2017
716bf81
Replaced action-based model with nil-based model. (+gofmt)
jonasfranz May 4, 2017
edaa576
Replaced mailIssueActionToParticipants with mailIssueCommentToPartici…
jonasfranz May 4, 2017
b0e22ab
Updating comment for mailIssueCommentToParticipants
jonasfranz May 4, 2017
fd70385
Merge branch 'master' of github.com:JonasFranzDEV/gitea
jonasfranz Jun 13, 2017
3c6d4fc
Merge branch 'master' of https://github.com/JonasFranzDEV/gitea
jonasfranz Jun 15, 2017
36ae732
Added link to comment in "Dashboard"
jonasfranz Jun 15, 2017
1826b2b
Added migration
jonasfranz Jun 17, 2017
bb33f2e
Added improved migration to add a CommentID column to action.
jonasfranz Jun 17, 2017
3f1c85c
Added improved migration to add a CommentID column to action.
jonasfranz Jun 17, 2017
5791853
Added improved migration to add a CommentID column to action.
jonasfranz Jun 17, 2017
deddcda
Added improved migration to add a CommentID column to action.
jonasfranz Jun 17, 2017
70d8dd9
Added improved migration to add a CommentID column to action.
jonasfranz Jun 17, 2017
3b99726
Added improved migration to add a CommentID column to action.
jonasfranz Jun 17, 2017
9e18513
Added improved migration to add a CommentID column to action.
jonasfranz Jun 17, 2017
0e20e81
Added improved migration to add a CommentID column to action.
jonasfranz Jun 17, 2017
8818bc7
Added improved links to comments in feed entries. (+ gofmt) Signed-o…
jonasfranz Jun 18, 2017
3e1241c
Fixes #1956 by filtering for deleted comments that are referenced in …
jonasfranz Jun 22, 2017
3ee3dc3
Fixes #1956 by filtering for deleted comments.
jonasfranz Jun 23, 2017
56a64e3
Fixes #1956 by filtering for deleted comments.
jonasfranz Jun 25, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions models/action.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"fmt"
"path"
"regexp"
"strconv"
"strings"
"time"
"unicode"
Expand Down Expand Up @@ -77,6 +78,9 @@ type Action struct {
ActUser *User `xorm:"-"`
RepoID int64 `xorm:"INDEX"`
Repo *Repository `xorm:"-"`
CommentID int64 `xorm:"INDEX"`
Comment *Comment `xorm:"-"`
IsDeleted bool `xorm:"INDEX NOT NULL DEFAULT false"`
RefName string
IsPrivate bool `xorm:"INDEX NOT NULL DEFAULT false"`
Content string `xorm:"TEXT"`
Expand Down Expand Up @@ -191,6 +195,35 @@ func (a *Action) GetRepoLink() string {
return "/" + a.GetRepoPath()
}

// GetCommentLink returns link to action comment.
func (a *Action) GetCommentLink() string {
if a == nil {
return "#"
}
if a.Comment == nil && a.CommentID != 0 {
a.Comment, _ = GetCommentByID(a.CommentID)
}
if a.Comment != nil {
return a.Comment.HTMLURL()
}
if len(a.GetIssueInfos()) == 0 {
return "#"
}
//Return link to issue
issueIDString := a.GetIssueInfos()[0]
issueID, err := strconv.ParseInt(issueIDString, 10, 64)
if err != nil {
return "#"
}

issue, err := GetIssueByID(issueID)
if err != nil {
return "#"
}

return issue.HTMLURL()
}

// GetBranch returns the action's repository branch.
func (a *Action) GetBranch() string {
return a.RefName
Expand Down Expand Up @@ -678,6 +711,7 @@ type GetFeedsOptions struct {
RequestingUserID int64
IncludePrivate bool // include private actions
OnlyPerformedBy bool // only actions performed by requested user
IncludeDeleted bool // include deleted actions
}

// GetFeeds returns actions according to the provided options
Expand Down Expand Up @@ -706,5 +740,11 @@ func GetFeeds(opts GetFeedsOptions) ([]*Action, error) {
if opts.RequestedUser.IsOrganization() {
sess.In("repo_id", repoIDs)
}

if !opts.IncludeDeleted {
sess.And("is_deleted = ?", false)

}

return actions, sess.Find(&actions)
}
3 changes: 3 additions & 0 deletions models/action_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -310,6 +310,7 @@ func TestGetFeeds(t *testing.T) {
RequestingUserID: user.ID,
IncludePrivate: true,
OnlyPerformedBy: false,
IncludeDeleted: true,
})
assert.NoError(t, err)
assert.Len(t, actions, 1)
Expand Down Expand Up @@ -337,6 +338,7 @@ func TestGetFeeds2(t *testing.T) {
RequestingUserID: userID,
IncludePrivate: true,
OnlyPerformedBy: false,
IncludeDeleted: true,
})
assert.NoError(t, err)
assert.Len(t, actions, 1)
Expand All @@ -348,6 +350,7 @@ func TestGetFeeds2(t *testing.T) {
RequestingUserID: userID,
IncludePrivate: false,
OnlyPerformedBy: false,
IncludeDeleted: true,
})
assert.NoError(t, err)
assert.Len(t, actions, 0)
Expand Down
3 changes: 3 additions & 0 deletions models/issue_comment.go
Original file line number Diff line number Diff line change
Expand Up @@ -334,6 +334,8 @@ func createComment(e *xorm.Session, opts *CreateCommentOptions) (_ *Comment, err
Content: fmt.Sprintf("%d|%s", opts.Issue.Index, strings.Split(opts.Content, "\n")[0]),
RepoID: opts.Repo.ID,
Repo: opts.Repo,
Comment: comment,
CommentID: comment.ID,
IsPrivate: opts.Repo.IsPrivate,
}

Expand Down Expand Up @@ -640,6 +642,7 @@ func DeleteComment(comment *Comment) error {
return err
}
}
sess.Where("comment_id = ?", comment.ID).Cols("is_deleted").Update(&Action{IsDeleted: true})

return sess.Commit()
}
2 changes: 2 additions & 0 deletions models/migrations/migrations.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,8 @@ var migrations = []Migration{
NewMigration("remove columns from action", removeActionColumns),
// v34 -> v35
NewMigration("give all units to owner teams", giveAllUnitsToOwnerTeams),
// v35 -> v36
NewMigration("adds comment to an action", addCommentIDToAction),
}

// Migrate database to current version
Expand Down
25 changes: 25 additions & 0 deletions models/migrations/v35.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Copyright 2017 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.

package migrations

import (
"fmt"

"github.com/go-xorm/xorm"
)

func addCommentIDToAction(x *xorm.Engine) error {
// Action see models/action.go
type Action struct {
CommentID int64 `xorm:"INDEX"`
IsDeleted bool `xorm:"INDEX NOT NULL DEFAULT false"`
}

if err := x.Sync2(new(Action)); err != nil {
return fmt.Errorf("Sync2: %v", err)
}

return nil
}
5 changes: 3 additions & 2 deletions routers/user/home.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ func getDashboardContextUser(ctx *context.Context) *models.User {
}

// retrieveFeeds loads feeds for the specified user
func retrieveFeeds(ctx *context.Context, user *models.User, includePrivate, isProfile bool) {
func retrieveFeeds(ctx *context.Context, user *models.User, includePrivate, isProfile bool, includeDeletedComments bool) {
var requestingID int64
if ctx.User != nil {
requestingID = ctx.User.ID
Expand All @@ -64,6 +64,7 @@ func retrieveFeeds(ctx *context.Context, user *models.User, includePrivate, isPr
RequestingUserID: requestingID,
IncludePrivate: includePrivate,
OnlyPerformedBy: isProfile,
IncludeDeleted: includeDeletedComments,
})
if err != nil {
ctx.Handle(500, "GetFeeds", err)
Expand Down Expand Up @@ -186,7 +187,7 @@ func Dashboard(ctx *context.Context) {
ctx.Data["MirrorCount"] = len(mirrors)
ctx.Data["Mirrors"] = mirrors

retrieveFeeds(ctx, ctxUser, true, false)
retrieveFeeds(ctx, ctxUser, true, false, false)
if ctx.Written() {
return
}
Expand Down
2 changes: 1 addition & 1 deletion routers/user/profile.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ func Profile(ctx *context.Context) {
ctx.Data["Keyword"] = keyword
switch tab {
case "activity":
retrieveFeeds(ctx, ctxUser, showPrivate, true)
retrieveFeeds(ctx, ctxUser, showPrivate, true, false)
if ctx.Written() {
return
}
Expand Down
2 changes: 1 addition & 1 deletion templates/user/dashboard/feeds.tmpl
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
{{else if eq .GetOpType 7}}
<span class="text truncate issue title has-emoji">{{index .GetIssueInfos 1}}</span>
{{else if eq .GetOpType 10}}
<span class="text truncate issue title has-emoji">{{.GetIssueTitle}}</span>
<a href="{{.GetCommentLink}}" class="text truncate issue title has-emoji">{{.GetIssueTitle}}</a>
<p class="text light grey has-emoji">{{index .GetIssueInfos 1}}</p>
{{else if eq .GetOpType 11}}
<p class="text light grey has-emoji">{{index .GetIssueInfos 1}}</p>
Expand Down