aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-04-14 04:11:33 -0400
committerUnknown <joe2010xtmf@163.com>2014-04-14 04:11:33 -0400
commitc36e7d322e74a55749ce2c2934c6fcfa82cff274 (patch)
treedbd2c05336815be91f1c59d654ce6f6f24d72872
parent57f84fb0516d46b27c60554730956f0c9dff68dd (diff)
downloadgitea-c36e7d322e74a55749ce2c2934c6fcfa82cff274.tar.gz
gitea-c36e7d322e74a55749ce2c2934c6fcfa82cff274.zip
Mirror updates
-rw-r--r--models/models.go10
-rw-r--r--models/repo.go28
-rw-r--r--modules/base/conf.go6
-rw-r--r--routers/dashboard.go6
-rw-r--r--templates/admin/dashboard.tmpl2
-rw-r--r--templates/base/head.tmpl1
-rw-r--r--templates/home.tmpl19
-rw-r--r--templates/user/profile.tmpl3
8 files changed, 56 insertions, 19 deletions
diff --git a/models/models.go b/models/models.go
index 0e20a1ab2f..d485489586 100644
--- a/models/models.go
+++ b/models/models.go
@@ -120,7 +120,10 @@ func NewEngine() (err error) {
type Statistic struct {
Counter struct {
- User, PublicKey, Repo, Watch, Action, Access int64
+ User, PublicKey, Repo,
+ Watch, Action, Access,
+ Issue, Comment,
+ Mirror, Oauth, Release int64
}
}
@@ -131,5 +134,10 @@ func GetStatistic() (stats Statistic) {
stats.Counter.Watch, _ = orm.Count(new(Watch))
stats.Counter.Action, _ = orm.Count(new(Action))
stats.Counter.Access, _ = orm.Count(new(Access))
+ stats.Counter.Issue, _ = orm.Count(new(Issue))
+ stats.Counter.Comment, _ = orm.Count(new(Comment))
+ stats.Counter.Mirror, _ = orm.Count(new(Mirror))
+ stats.Counter.Oauth, _ = orm.Count(new(Oauth2))
+ stats.Counter.Release, _ = orm.Count(new(Release))
return
}
diff --git a/models/repo.go b/models/repo.go
index bb0c164e24..6943d05e0b 100644
--- a/models/repo.go
+++ b/models/repo.go
@@ -66,6 +66,7 @@ func NewRepoContext() {
type Repository struct {
Id int64
OwnerId int64 `xorm:"unique(s)"`
+ Owner *User `xorm:"-"`
ForkId int64
LowerName string `xorm:"unique(s) index not null"`
Name string `xorm:"index not null"`
@@ -364,24 +365,21 @@ func initRepoCommit(tmpPath string, sig *git.Signature) (err error) {
var stderr string
if _, stderr, err = com.ExecCmdDir(tmpPath, "git", "add", "--all"); err != nil {
return err
- }
- if len(stderr) > 0 {
- log.Trace("stderr(1): %s", stderr)
+ } else if strings.Contains(stderr, "fatal:") {
+ return errors.New("git add: " + stderr)
}
if _, stderr, err = com.ExecCmdDir(tmpPath, "git", "commit", fmt.Sprintf("--author='%s <%s>'", sig.Name, sig.Email),
"-m", "Init commit"); err != nil {
return err
- }
- if len(stderr) > 0 {
- log.Trace("stderr(2): %s", stderr)
+ } else if strings.Contains(stderr, "fatal:") {
+ return errors.New("git commit: " + stderr)
}
if _, stderr, err = com.ExecCmdDir(tmpPath, "git", "push", "origin", "master"); err != nil {
return err
- }
- if len(stderr) > 0 {
- log.Trace("stderr(3): %s", stderr)
+ } else if strings.Contains(stderr, "fatal:") {
+ return errors.New("git push: " + stderr)
}
return nil
}
@@ -439,9 +437,8 @@ func initRepository(f string, user *User, repo *Repository, initReadme bool, rep
_, stderr, err := com.ExecCmd("git", "clone", repoPath, tmpDir)
if err != nil {
return err
- }
- if len(stderr) > 0 {
- log.Trace("repo.initRepository(git clone): %s", stderr)
+ } else if strings.Contains(stderr, "fatal:") {
+ return errors.New("git clone: " + stderr)
}
// README
@@ -725,6 +722,13 @@ func GetRepositories(user *User, private bool) ([]Repository, error) {
return repos, err
}
+// GetRecentUpdatedRepositories returns the list of repositories that are recently updated.
+func GetRecentUpdatedRepositories() (repos []*Repository, err error) {
+ err = orm.Where("is_private=?", false).Limit(5).Desc("updated").Find(&repos)
+ return repos, err
+}
+
+// GetRepositoryCount returns the total number of repositories of user.
func GetRepositoryCount(user *User) (int64, error) {
return orm.Count(&Repository{OwnerId: user.Id})
}
diff --git a/modules/base/conf.go b/modules/base/conf.go
index 957ec57b4d..c5d73bbc58 100644
--- a/modules/base/conf.go
+++ b/modules/base/conf.go
@@ -37,9 +37,9 @@ type OauthInfo struct {
// Oauther represents oauth service.
type Oauther struct {
- GitHub, Google, Tencent bool
- Twitter, Weibo bool
- OauthInfos map[string]*OauthInfo
+ GitHub, Google, Tencent,
+ Twitter, Weibo bool
+ OauthInfos map[string]*OauthInfo
}
var (
diff --git a/routers/dashboard.go b/routers/dashboard.go
index 2c81cf23c1..71bdcc9f13 100644
--- a/routers/dashboard.go
+++ b/routers/dashboard.go
@@ -5,6 +5,7 @@
package routers
import (
+ "github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/middleware"
"github.com/gogits/gogs/routers/user"
@@ -23,6 +24,11 @@ func Home(ctx *middleware.Context) {
return
}
+ repos, _ := models.GetRecentUpdatedRepositories()
+ for _, repo := range repos {
+ repo.Owner, _ = models.GetUserById(repo.OwnerId)
+ }
+ ctx.Data["Repos"] = repos
ctx.Data["PageIsHome"] = true
ctx.HTML(200, "home")
}
diff --git a/templates/admin/dashboard.tmpl b/templates/admin/dashboard.tmpl
index 2334c676d9..76539842d2 100644
--- a/templates/admin/dashboard.tmpl
+++ b/templates/admin/dashboard.tmpl
@@ -9,7 +9,7 @@
</div>
<div class="panel-body">
- Gogs database has <b>{{.Stats.Counter.User}}</b> users, <b>{{.Stats.Counter.PublicKey}}</b> SSH keys, <b>{{.Stats.Counter.Repo}}</b> repositories, <b>{{.Stats.Counter.Watch}}</b> watches, <b>{{.Stats.Counter.Action}}</b> actions, and <b>{{.Stats.Counter.Access}}</b> accesses.
+ Gogs database has <b>{{.Stats.Counter.User}}</b> users, <b>{{.Stats.Counter.PublicKey}}</b> SSH keys, <b>{{.Stats.Counter.Repo}}</b> repositories, <b>{{.Stats.Counter.Watch}}</b> watches, <b>{{.Stats.Counter.Action}}</b> actions, <b>{{.Stats.Counter.Access}}</b> accesses, <b>{{.Stats.Counter.Issue}}</b> issues, <b>{{.Stats.Counter.Comment}}</b> comments, <b>{{.Stats.Counter.Mirror}}</b> mirrors, <b>{{.Stats.Counter.Oauth}}</b> oauthes, <b>{{.Stats.Counter.Release}}</b> releases.
</div>
</div>
diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl
index 68231391c0..109ddd3534 100644
--- a/templates/base/head.tmpl
+++ b/templates/base/head.tmpl
@@ -10,6 +10,7 @@
<meta name="keywords" content="go, git">
<meta name="_csrf" content="{{.CsrfToken}}" />
{{if .Repository.IsGoget}}<meta name="go-import" content="{{.GoGetImport}} git {{.CloneLink.HTTPS}}">{{end}}
+ <meta property="qc:admins" content="34543312371436727" />
<!-- Stylesheets -->
{{if IsProdMode}}
diff --git a/templates/home.tmpl b/templates/home.tmpl
index d3a8c0c343..5827f61810 100644
--- a/templates/home.tmpl
+++ b/templates/home.tmpl
@@ -1,8 +1,27 @@
{{template "base/head" .}}
{{template "base/navbar" .}}
<div id="body" class="container">
+ {{if not .Repos}}
<h4>Hey there, welcome to the land of Gogs!</h4>
<p>If you just get your Gogs server running, go <a href="/install">install</a> guide page will help you setup things for your first-time run.</p>
<img src="http://gowalker.org/public/gogs_demo.gif">
+ {{else}}
+ <h4>Hey there, welcome to the land of Gogs!</h4>
+ <h5>Here are some recent updated repositories:</h5>
+ <div class="tab-pane active">
+ <ul class="list-unstyled repo-list">
+ {{range .Repos}}
+ <li>
+ <div class="meta pull-right"><!-- <i class="fa fa-star"></i> {{.NumStars}} --> <i class="fa fa-code-fork"></i> {{.NumForks}}</div>
+ <h4>
+ <a href="/{{.Owner.Name}}/{{.Name}}">{{.Name}}</a>
+ </h4>
+ <p class="desc">{{.Description}}</p>
+ <div class="info">Last updated {{.Updated|TimeSince}}</div>
+ </li>
+ {{end}}
+ </ul>
+ </div>
+ {{end}}
</div>
{{template "base/footer" .}}
diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl
index a336bfb2fb..e80b2394ca 100644
--- a/templates/user/profile.tmpl
+++ b/templates/user/profile.tmpl
@@ -58,14 +58,13 @@
</ul>
</div>
{{else}}
- {{$owner := .Owner}}
<div class="tab-pane active">
<ul class="list-unstyled repo-list">
{{range .Repos}}
<li>
<div class="meta pull-right"><!-- <i class="fa fa-star"></i> {{.NumStars}} --> <i class="fa fa-code-fork"></i> {{.NumForks}}</div>
<h4>
- <a href="/{{$owner.Name}}/{{.Name}}">{{.Name}}{{if .IsPrivate}} <span class="label label-default">Private</span>{{end}}</a>
+ <a href="/{{$.Owner.Name}}/{{.Name}}">{{.Name}}{{if .IsPrivate}} <span class="label label-default">Private</span>{{end}}</a>
</h4>
<p class="desc">{{.Description}}</p>
<div class="info">Last updated {{.Updated|TimeSince}}</div>