diff options
-rw-r--r-- | options/locale/locale_en-US.ini | 1 | ||||
-rw-r--r-- | routers/repo/pull.go | 6 | ||||
-rw-r--r-- | templates/repo/header.tmpl | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 03d42c2140..7fee0c2a99 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -492,6 +492,7 @@ migrate.lfs_mirror_unsupported = Mirroring LFS objects is not supported - use 'g mirror_from = mirror of forked_from = forked from +fork_from_self = You cannot fork a repository you already own! copy_link = Copy copy_link_success = Copied! copy_link_error = Press ⌘-C or Ctrl-C to copy diff --git a/routers/repo/pull.go b/routers/repo/pull.go index b17c26e779..ad4a01ec94 100644 --- a/routers/repo/pull.go +++ b/routers/repo/pull.go @@ -111,6 +111,12 @@ func ForkPost(ctx *context.Context, form auth.CreateRepoForm) { return } + repo, has := models.HasForkedRepo(ctxUser.ID, forkRepo.ID) + if has { + ctx.Redirect(setting.AppSubURL + "/" + ctxUser.Name + "/" + repo.Name) + return + } + // Check ownership of organization. if ctxUser.IsOrganization() { if !ctxUser.IsOwnedBy(ctx.User.ID) { diff --git a/templates/repo/header.tmpl b/templates/repo/header.tmpl index ed90491309..db636eb9bd 100644 --- a/templates/repo/header.tmpl +++ b/templates/repo/header.tmpl @@ -32,7 +32,7 @@ </div> {{if .CanBeForked}} <div class="ui compact labeled button" tabindex="0"> - <a class="ui compact button" href="{{AppSubUrl}}/repo/fork/{{.ID}}"> + <a class="ui compact button {{if eq .OwnerID $.SignedUserID}}poping up{{end}}" {{if not (eq .OwnerID $.SignedUserID)}}href="{{AppSubUrl}}/repo/fork/{{.ID}}"{{else}} data-content="{{$.i18n.Tr "repo.fork_from_self"}}" data-position="top center" data-variation="tiny"{{end}}> <i class="octicon octicon-repo-forked"></i>{{$.i18n.Tr "repo.fork"}} </a> <a class="ui basic label" href="{{.Link}}/forks"> |