]> source.dussan.org Git - gitea.git/commitdiff
Mirror updates
authorUnknown <joe2010xtmf@163.com>
Mon, 14 Apr 2014 08:11:33 +0000 (04:11 -0400)
committerUnknown <joe2010xtmf@163.com>
Mon, 14 Apr 2014 08:11:33 +0000 (04:11 -0400)
models/models.go
models/repo.go
modules/base/conf.go
routers/dashboard.go
templates/admin/dashboard.tmpl
templates/base/head.tmpl
templates/home.tmpl
templates/user/profile.tmpl

index 0e20a1ab2ffff548716cf43f21fd9cfba5301d9c..d48548958666312d4a28df995ff2abbc51e68ac4 100644 (file)
@@ -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
 }
index bb0c164e245b7fbaa654295a7924669291f2e313..6943d05e0b0da90d81fb0b01400e214523d9efd6 100644 (file)
@@ -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})
 }
index 957ec57b4d6c78768a64318ff6e81b5b65579b50..c5d73bbc581cbe3d4691e0dc360543853c402810 100644 (file)
@@ -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 (
index 2c81cf23c1798d8feed1c5fcaad02d75c420fcc2..71bdcc9f130e154a4186a2acfe193246ccd751d2 100644 (file)
@@ -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")
 }
index 2334c676d99d9eea557e49a56508d43b8946a0b3..76539842d2fa2198d1ad28d53e5fec62c737f52b 100644 (file)
@@ -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>
 
index 68231391c07f1c0c84959d7f07ff77502e5bf35d..109ddd35342bf35ab08c38ea3bc1e2172b8e24ce 100644 (file)
@@ -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}}
index d3a8c0c343558327410e2b3af34f589d34a9d1f7..5827f61810e0bdd85b651749b47cc46271f6c13e 100644 (file)
@@ -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" .}}
index a336bfb2fb1110e56ce706c5c6ea7837665fae42..e80b2394ca4bc8239f737731ad19717e440ed396 100644 (file)
                 </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>