]> source.dussan.org Git - gitea.git/commitdiff
Fix action
authorUnknown <joe2010xtmf@163.com>
Sun, 23 Mar 2014 10:27:01 +0000 (06:27 -0400)
committerUnknown <joe2010xtmf@163.com>
Sun, 23 Mar 2014 10:27:01 +0000 (06:27 -0400)
README.md
README_ZH.md
models/action.go
models/issue.go
modules/base/tool.go
routers/repo/repo.go
serve.go
templates/repo/nav.tmpl
templates/repo/setting.tmpl
web.go

index 504c21975ba8960c62130c461d3b292d4a607101..e947d7739a04b351fb284d01d06c3e6a15d7decb 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-Gogs - Go Git Service [![wercker status](https://app.wercker.com/status/ad0bdb0bc450ac6f09bc56b9640a50aa/s/ "wercker status")](https://app.wercker.com/project/bykey/ad0bdb0bc450ac6f09bc56b9640a50aa) [![Build Status](https://drone.io/github.com/gogits/gogs/status.png)](https://drone.io/github.com/gogits/gogs/latest)
+Gogs - Go Git Service [![wercker status](https://app.wercker.com/status/ad0bdb0bc450ac6f09bc56b9640a50aa/s/ "wercker status")](https://app.wercker.com/project/bykey/ad0bdb0bc450ac6f09bc56b9640a50aa) [![Build Status](https://drone.io/github.com/gogits/gogs/status.png)](https://drone.io/github.com/gogits/gogs/latest) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/gogits/gogs/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
 =====================
 
 Gogs(Go Git Service) is a Self Hosted Git Service in the Go Programming Language.
@@ -7,7 +7,9 @@ Gogs(Go Git Service) is a Self Hosted Git Service in the Go Programming Language
 
 ##### Current version: 0.1.6 Alpha
 
-[简体中文](README_ZH.md)
+#### Other language version
+
+- [简体中文](README_ZH.md)
 
 ## Purpose
 
index 0ab8dfdd0725970fdc3e646d6e594667c52e63b1..78e26fada45d7140344960877038c715baca15bd 100644 (file)
@@ -1,4 +1,4 @@
-Gogs - Go Git Service [![wercker status](https://app.wercker.com/status/ad0bdb0bc450ac6f09bc56b9640a50aa/s/ "wercker status")](https://app.wercker.com/project/bykey/ad0bdb0bc450ac6f09bc56b9640a50aa) [![Build Status](https://drone.io/github.com/gogits/gogs/status.png)](https://drone.io/github.com/gogits/gogs/latest)
+Gogs - Go Git Service [![wercker status](https://app.wercker.com/status/ad0bdb0bc450ac6f09bc56b9640a50aa/s/ "wercker status")](https://app.wercker.com/project/bykey/ad0bdb0bc450ac6f09bc56b9640a50aa) [![Build Status](https://drone.io/github.com/gogits/gogs/status.png)](https://drone.io/github.com/gogits/gogs/latest) [![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/gogits/gogs/trend.png)](https://bitdeli.com/free "Bitdeli Badge")
 =====================
 
 Gogs(Go Git Service) 是一个由 Go 语言编写的自助 Git 托管服务。
index ca2ff3cbf1774d3dfbee64e2720067f9f74c9e01..1174929354730333db639b8e04b0edfe776c73b1 100644 (file)
@@ -8,6 +8,7 @@ import (
        "encoding/json"
        "time"
 
+       "github.com/gogits/gogs/modules/base"
        "github.com/gogits/gogs/modules/log"
 )
 
@@ -47,18 +48,17 @@ func (a Action) GetRepoName() string {
        return a.RepoName
 }
 
-func (a Action) GetContent() string {
-       return a.Content
+func (a Action) GetBranch() string {
+       return a.RefName
 }
 
-type PushCommits struct {
-       Len     int
-       Commits [][]string
+func (a Action) GetContent() string {
+       return a.Content
 }
 
 // CommitRepoAction records action for commit repository.
 func CommitRepoAction(userId int64, userName string,
-       repoId int64, repoName string, refName string, commits *PushCommits) error {
+       repoId int64, repoName string, refName string, commits *base.PushCommits) error {
        bs, err := json.Marshal(commits)
        if err != nil {
                return err
index f78c240cbc4659cc8db28678cd62d6cad0713f99..929567b1b7327b2973828f3a4dda53451a6af80f 100644 (file)
@@ -83,42 +83,42 @@ func GetIssues(userId, repoId, posterId, milestoneId int64, page int, isClosed,
        sess := orm.Limit(20, (page-1)*20)
 
        if repoId > 0 {
-               sess = sess.Where("repo_id=?", repoId).And("is_closed=?", isClosed)
+               sess.Where("repo_id=?", repoId).And("is_closed=?", isClosed)
        } else {
-               sess = sess.Where("is_closed=?", isClosed)
+               sess.Where("is_closed=?", isClosed)
        }
 
        if userId > 0 {
-               sess = sess.And("assignee_id=?", userId)
+               sess.And("assignee_id=?", userId)
        } else if posterId > 0 {
-               sess = sess.And("poster_id=?", posterId)
+               sess.And("poster_id=?", posterId)
        } else if isMention {
-               sess = sess.And("mentions like '%$" + base.ToStr(userId) + "|%'")
+               sess.And("mentions like '%$" + base.ToStr(userId) + "|%'")
        }
 
        if milestoneId > 0 {
-               sess = sess.And("milestone_id=?", milestoneId)
+               sess.And("milestone_id=?", milestoneId)
        }
 
        if len(labels) > 0 {
                for _, label := range strings.Split(labels, ",") {
-                       sess = sess.And("mentions like '%$" + label + "|%'")
+                       sess.And("mentions like '%$" + label + "|%'")
                }
        }
 
        switch sortType {
        case "oldest":
-               sess = sess.Asc("created")
+               sess.Asc("created")
        case "recentupdate":
-               sess = sess.Desc("updated")
+               sess.Desc("updated")
        case "leastupdate":
-               sess = sess.Asc("updated")
+               sess.Asc("updated")
        case "mostcomment":
-               sess = sess.Desc("num_comments")
+               sess.Desc("num_comments")
        case "leastcomment":
-               sess = sess.Asc("num_comments")
+               sess.Asc("num_comments")
        default:
-               sess = sess.Desc("created")
+               sess.Desc("created")
        }
 
        var issues []Issue
index c7ee2ee8577d747444585be93a21e4ea99f8dfc4..edf7a953c9f85f39f14260e9a0b13bbd208e475c 100644 (file)
@@ -471,6 +471,7 @@ type Actioner interface {
        GetOpType() int
        GetActUserName() string
        GetRepoName() string
+       GetBranch() string
        GetContent() string
 }
 
@@ -493,25 +494,39 @@ const (
        TPL_COMMIT_REPO_LI = `<div><img id="gogs-user-avatar-commit" src="%s?s=16" alt="user-avatar" title="username"/> <a href="/%s/%s/commit/%s">%s</a> %s</div>`
 )
 
+type PushCommits struct {
+       Len     int
+       Commits [][]string
+}
+
 // ActionDesc accepts int that represents action operation type
 // and returns the description.
 func ActionDesc(act Actioner, avatarLink string) string {
        actUserName := act.GetActUserName()
        repoName := act.GetRepoName()
+       branch := act.GetBranch()
        content := act.GetContent()
        switch act.GetOpType() {
        case 1: // Create repository.
                return fmt.Sprintf(TPL_CREATE_REPO, actUserName, actUserName, actUserName, repoName, repoName)
        case 5: // Commit repository.
-               var commits [][]string
-               if err := json.Unmarshal([]byte(content), &commits); err != nil {
+               var push *PushCommits
+               if err := json.Unmarshal([]byte(content), &push); err != nil {
                        return err.Error()
                }
                buf := bytes.NewBuffer([]byte("\n"))
-               for _, commit := range commits {
+               max := 3
+               count := len(push.Commits)
+               if count < max {
+                       max = count
+               }
+               for _, commit := range push.Commits[:max] {
                        buf.WriteString(fmt.Sprintf(TPL_COMMIT_REPO_LI, avatarLink, actUserName, repoName, commit[0], commit[0][:7], commit[1]) + "\n")
                }
-               return fmt.Sprintf(TPL_COMMIT_REPO, actUserName, actUserName, actUserName, repoName, "master", "master", actUserName, repoName, actUserName, repoName,
+               if count > max {
+                       buf.WriteString(fmt.Sprintf(`<div><a href="/%s/%s/commits">%d other commits >></a></div>`, actUserName, repoName, count-max))
+               }
+               return fmt.Sprintf(TPL_COMMIT_REPO, actUserName, actUserName, actUserName, repoName, branch, branch, actUserName, repoName, actUserName, repoName,
                        buf.String())
        default:
                return "invalid type"
index 0f1ea31235db3d5b89fba78cc6b80b5452b76d38..82956098b77e0c033c0698534fae4347dfe85c83 100644 (file)
@@ -52,30 +52,6 @@ func Create(ctx *middleware.Context, form auth.CreateRepoForm) {
        ctx.Handle(200, "repo.Create", err)
 }
 
-func SettingPost(ctx *middleware.Context) {
-       if !ctx.Repo.IsOwner {
-               ctx.Error(404)
-               return
-       }
-
-       switch ctx.Query("action") {
-       case "delete":
-               if len(ctx.Repo.Repository.Name) == 0 || ctx.Repo.Repository.Name != ctx.Query("repository") {
-                       ctx.Data["ErrorMsg"] = "Please make sure you entered repository name is correct."
-                       ctx.HTML(200, "repo/setting")
-                       return
-               }
-
-               if err := models.DeleteRepository(ctx.User.Id, ctx.Repo.Repository.Id, ctx.User.LowerName); err != nil {
-                       ctx.Handle(200, "repo.Delete", err)
-                       return
-               }
-       }
-
-       log.Trace("%s Repository deleted: %s/%s", ctx.Req.RequestURI, ctx.User.LowerName, ctx.Repo.Repository.LowerName)
-       ctx.Redirect("/")
-}
-
 func Branches(ctx *middleware.Context, params martini.Params) {
        if !ctx.Repo.IsValid {
                return
@@ -203,7 +179,6 @@ func Single(ctx *middleware.Context, params martini.Params) {
                        if readmeFile.Size > 1024*1024 || readmeFile.Filemode != git.FileModeBlob {
                                ctx.Data["FileIsLarge"] = true
                        } else if blob, err := readmeFile.LookupBlob(); err != nil {
-                               //log.Error("repo.Single(readmeFile.LookupBlob): %v", err)
                                ctx.Handle(404, "repo.Single(readmeFile.LookupBlob)", err)
                                return
                        } else {
@@ -301,6 +276,40 @@ func Setting(ctx *middleware.Context, params martini.Params) {
        ctx.HTML(200, "repo/setting")
 }
 
+func SettingPost(ctx *middleware.Context, params martini.Params) {
+       if !ctx.Repo.IsOwner {
+               ctx.Error(404)
+               return
+       }
+
+       switch ctx.Query("action") {
+       case "update":
+               ctx.Repo.Repository.Description = ctx.Query("desc")
+               ctx.Repo.Repository.Website = ctx.Query("site")
+               if err := models.UpdateRepository(ctx.Repo.Repository); err != nil {
+                       ctx.Handle(404, "repo.SettingPost(update)", err)
+                       return
+               }
+               ctx.Data["IsSuccess"] = true
+               ctx.HTML(200, "repo/setting")
+               log.Trace("%s Repository updated: %s/%s", ctx.Req.RequestURI, ctx.User.LowerName, ctx.Repo.Repository.LowerName)
+       case "delete":
+               if len(ctx.Repo.Repository.Name) == 0 || ctx.Repo.Repository.Name != ctx.Query("repository") {
+                       ctx.Data["ErrorMsg"] = "Please make sure you entered repository name is correct."
+                       ctx.HTML(200, "repo/setting")
+                       return
+               }
+
+               if err := models.DeleteRepository(ctx.User.Id, ctx.Repo.Repository.Id, ctx.User.LowerName); err != nil {
+                       ctx.Handle(200, "repo.Delete", err)
+                       return
+               }
+
+               log.Trace("%s Repository deleted: %s/%s", ctx.Req.RequestURI, ctx.User.LowerName, ctx.Repo.Repository.LowerName)
+               ctx.Redirect("/")
+       }
+}
+
 func Commits(ctx *middleware.Context, params martini.Params) {
        brs, err := models.GetBranches(params["username"], params["reponame"])
        if err != nil {
index 71abf5fdd6f2b696a51f043944c22cb42940383e..f9291366abf433e677e9b00c04d6a7ac576d22e7 100644 (file)
--- a/serve.go
+++ b/serve.go
@@ -272,7 +272,7 @@ func runServ(k *cli.Context) {
        }
 
        if err = models.CommitRepoAction(user.Id, user.Name,
-               repo.Id, repoName, refname, &models.PushCommits{l.Len(), commits}); err != nil {
+               repo.Id, repoName, refname, &base.PushCommits{l.Len(), commits}); err != nil {
                log.Error("runUpdate.models.CommitRepoAction: %v", err, commits)
        } else {
                //log.Info("refname", refname)
index 4d939e2504895f7c8f947328ea78945e13d1180f..b2d3500f92230821de4b5f8a1740e8ca582ec8a3 100644 (file)
@@ -3,7 +3,7 @@
         <div class="row">
             <div class="col-md-7">
                 <h3 class="name"><i class="fa fa-book fa-lg"></i><a href="{{.Owner.HomeLink}}">{{.Owner.Name}}</a> / {{.Repository.Name}}</h3>
-                <p class="desc">{{.Repository.Description}}{{if .Repository.Website}}<a href="{{.Repository.Website}}">{{.Repository.Website}}</a>{{end}}</p>
+                <p class="desc">{{.Repository.Description}}{{if .Repository.Website}} <a href="{{.Repository.Website}}">{{.Repository.Website}}</a>{{end}}</p>
             </div>
             <div class="col-md-5 actions text-right clone-group-btn">
                 {{if not .IsBareRepo}}
index 719547b1a99899f5f3ec8b08a15b50fb47b4b307..c826e55a776a17a82ea2d00321ddf3b74b292464 100644 (file)
@@ -12,7 +12,7 @@
     </div>
 
     <div id="gogs-repo-setting-container" class="col-md-9">
-        {{if .ErrorMsg}}<p class="alert alert-danger">{{.ErrorMsg}}</p>{{end}}
+        {{if .IsSuccess}}<p class="alert alert-success">Repository option has been successfully updated.</p>{{else if .HasError}}<p class="alert alert-danger form-error">{{.ErrorMsg}}</p>{{end}}
         <div class="panel panel-default">
             <div class="panel-heading">
                 Repository Options
                 <form action="/{{.Owner.Name}}/{{.Repository.Name}}/settings" method="post" class="form-horizontal">
                     {{.CsrfTokenHtml}}
                     <input type="hidden" name="action" value="update">
-                    <div class="form-group">
-                        <label class="col-md-3 text-right">Repository Name <strong class="text-danger">*</strong></label>
-                        <div class="col-md-9">
-                            <input type="text" class="form-control" name="repo-name" required="required" value="{{.Repository.Name}}"/>
-                        </div>
-                    </div>
                     <div class="form-group">
                         <label class="col-md-3 text-right">Description</label>
                         <div class="col-md-9">
-                            <textarea class="form-control" name="desc" id="repo-desc" rows="6"></textarea>
+                            <textarea class="form-control" name="desc" id="repo-desc" rows="3">{{.Repository.Description}}</textarea>
                         </div>
                     </div>
                     <div class="form-group">
                         <label class="col-md-3 text-right">Official Site</label>
                         <div class="col-md-9">
-                            <input type="url" class="form-control" name="repo-site"/>
+                            <input type="url" class="form-control" name="site" value="{{.Repository.Website}}" />
                         </div>
                     </div>
-                    <div class="form-group">
+                    <!-- <div class="form-group">
                         <label class="col-md-3 text-right">Default Branch</label>
                         <div class="col-md-9">
                             <select name="branch" id="repo-default-branch" class="form-control">
                                 <option value="">Branch</option>
                             </select>
                         </div>
-                    </div>
+                    </div> -->
                     <div class="form-group">
                         <div class="col-md-9 col-md-offset-3">
                             <button class="btn btn-primary" type="submit">Save Options</button>
diff --git a/web.go b/web.go
index 7b36ccd9db0a9536eac37e9b411b41c9224873c5..9d90851c96aac169a7dc6b2255fdf1b80a1e3ae6 100644 (file)
--- a/web.go
+++ b/web.go
@@ -163,7 +163,7 @@ func runWeb(*cli.Context) {
                m.Get("/template/**", dev.TemplatePreview)
        }
 
-       // not found handler
+       // Not found handler.
        m.NotFound(routers.NotFound)
 
        listenAddr := fmt.Sprintf("%s:%s",