summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorL0veSunshine <xuan199651@gmail.com>2020-04-08 20:13:04 +0800
committerGitHub <noreply@github.com>2020-04-08 15:13:04 +0300
commit08208cdfb87bc3f0b534eda9d9ef265dcfbc18c3 (patch)
tree1a5dd7d1dde5c1636666dd478b4e05994882cd4c
parentb40107c4164748873f89a9553ed24e8403999339 (diff)
downloadgitea-08208cdfb87bc3f0b534eda9d9ef265dcfbc18c3.tar.gz
gitea-08208cdfb87bc3f0b534eda9d9ef265dcfbc18c3.zip
Fix forked repo has no icon and language stat. (#10791)
* Update header.tmpl * Update _repository.less * Update pull.go * Update indexer.go * Update pull.go * Update pull.go * Update indexer.go * fix forked repo doesn't have language stat * fix forked repo doesn't have language stat * fix forked repo doesn't have language stat * fix forked repo doesn't have language stat * fix forked repo doesn't have language stat * fix forked repo doesn't have language stat * fix forked repo doesn't have language stat * fix forked repo doesn't have language stat * fix forked repo doesn't have language stat * fix forked repo doesn't have language stat * fix forked repo doesn't have language stat Thanks the advice from lunny and 6543. * fix forked repo doesn't have language stat Modified as suggested by 6543. * fix forked repo doesn't have language stat simplify the function. * fix forked repo doesn't have language stat update the indexer after the loop Co-authored-by: techknowlogick <techknowlogick@gitea.io> Co-authored-by: Lauris BH <lauris@nix.lv>
-rw-r--r--models/repo_language_stats.go29
-rw-r--r--modules/repository/fork.go4
-rw-r--r--templates/repo/header.tmpl6
-rw-r--r--web_src/less/_repository.less1
4 files changed, 35 insertions, 5 deletions
diff --git a/models/repo_language_stats.go b/models/repo_language_stats.go
index bf8f5f59d0..fd5bcbb8ec 100644
--- a/models/repo_language_stats.go
+++ b/models/repo_language_stats.go
@@ -144,3 +144,32 @@ func (repo *Repository) UpdateLanguageStats(commitID string, stats map[string]fl
return sess.Commit()
}
+
+// CopyLanguageStat Copy originalRepo language stat information to destRepo (use for forked repo)
+func CopyLanguageStat(originalRepo, destRepo *Repository) error {
+ sess := x.NewSession()
+ defer sess.Close()
+ if err := sess.Begin(); err != nil {
+ return err
+ }
+ RepoLang := make(LanguageStatList, 0, 6)
+ if err := sess.Where("`repo_id` = ?", originalRepo.ID).Desc("`percentage`").Find(&RepoLang); err != nil {
+ return err
+ }
+ if len(RepoLang) > 0 {
+ for i := range RepoLang {
+ RepoLang[i].ID = 0
+ RepoLang[i].RepoID = destRepo.ID
+ RepoLang[i].CreatedUnix = timeutil.TimeStampNow()
+ }
+ //update destRepo's indexer status
+ tmpCommitID := RepoLang[0].CommitID
+ if err := destRepo.updateIndexerStatus(sess, RepoIndexerTypeStats, tmpCommitID); err != nil {
+ return err
+ }
+ if _, err := sess.Insert(&RepoLang); err != nil {
+ return err
+ }
+ }
+ return sess.Commit()
+}
diff --git a/modules/repository/fork.go b/modules/repository/fork.go
index 638d3588ec..2ed2a0eb78 100644
--- a/modules/repository/fork.go
+++ b/modules/repository/fork.go
@@ -82,6 +82,8 @@ func ForkRepository(doer, owner *models.User, oldRepo *models.Repository, name,
if err = repo.UpdateSize(ctx); err != nil {
log.Error("Failed to update size for repository: %v", err)
}
-
+ if err := models.CopyLanguageStat(oldRepo, repo); err != nil {
+ log.Error("Copy language stat from oldRepo failed")
+ }
return repo, models.CopyLFS(ctx, repo, oldRepo)
}
diff --git a/templates/repo/header.tmpl b/templates/repo/header.tmpl
index f4edc74396..4daaa201d0 100644
--- a/templates/repo/header.tmpl
+++ b/templates/repo/header.tmpl
@@ -17,7 +17,7 @@
{{else if .IsMirror}}
{{svg "octicon-repo-clone" 32}}
{{else if .IsFork}}
- {{svg "octicon-repo-fork" 32}}
+ {{svg "octicon-repo-forked" 32}}
{{else}}
{{svg "octicon-repo" 32}}
{{end}}
@@ -38,7 +38,7 @@
{{else if .IsMirror}}
{{svg "octicon-repo-clone" 32}}
{{else if .IsFork}}
- {{svg "octicon-repo-fork" 32}}
+ {{svg "octicon-repo-forked" 32}}
{{else}}
{{svg "octicon-repo" 32}}
{{end}}
@@ -76,7 +76,7 @@
{{if and (not .IsEmpty) ($.Permission.CanRead $.UnitTypeCode)}}
<div class="ui labeled button {{if and ($.IsSigned) (not $.CanSignedUserFork)}}disabled-repo-button{{end}}" tabindex="0">
<a class="ui compact basic button {{if or (not $.IsSigned) (not $.CanSignedUserFork)}}poping up{{end}}" {{if $.CanSignedUserFork}}href="{{AppSubUrl}}/repo/fork/{{.ID}}"{{else if $.IsSigned}} data-content="{{$.i18n.Tr "repo.fork_from_self"}}" {{ else }} data-content="{{$.i18n.Tr "repo.fork_guest_user" }}" rel="nofollow" href="{{AppSubUrl}}/user/login?redirect_to={{AppSubUrl}}/repo/fork/{{.ID}}" {{end}} data-position="top center" data-variation="tiny">
- {{svg "octicon-repo-forked" 16}}{{$.i18n.Tr "repo.fork"}}
+ {{svg "octicon-repo-forked" 15}}{{$.i18n.Tr "repo.fork"}}
</a>
<a class="ui basic label" href="{{.Link}}/forks">
{{.NumForks}}
diff --git a/web_src/less/_repository.less b/web_src/less/_repository.less
index d3e84b10a4..cca31ee5f7 100644
--- a/web_src/less/_repository.less
+++ b/web_src/less/_repository.less
@@ -35,7 +35,6 @@
.svg.octicon-repo-forked {
margin-top: -1px;
- height: 15px;
}
.button {