| @@ -21,6 +21,7 @@ import ( | |||
| "github.com/gogits/git" | |||
| "github.com/gogits/gogs/modules/base" | |||
| "github.com/gogits/gogs/modules/log" | |||
| ) | |||
| // RepoFile represents a file object in git repository. | |||
| @@ -300,6 +301,13 @@ func ParsePatch(reader io.Reader) (*Diff, error) { | |||
| } | |||
| i = i + 1 | |||
| // Diff data too large. | |||
| if i == 5000 { | |||
| log.Warn("Diff data too large") | |||
| return &Diff{}, nil | |||
| } | |||
| if line == "" { | |||
| continue | |||
| } | |||
| @@ -192,8 +192,10 @@ func CreateRepository(user *User, repoName, desc, repoLang, license string, priv | |||
| return nil, err | |||
| } | |||
| if err = NewRepoAction(user, repo); err != nil { | |||
| log.Error("repo.CreateRepository(NewRepoAction): %v", err) | |||
| if !repo.IsPrivate { | |||
| if err = NewRepoAction(user, repo); err != nil { | |||
| log.Error("repo.CreateRepository(NewRepoAction): %v", err) | |||
| } | |||
| } | |||
| if err = WatchRepo(user.Id, repo.Id, true); err != nil { | |||
| @@ -302,9 +302,9 @@ func NewConfigContext() { | |||
| InstallLock = Cfg.MustBool("security", "INSTALL_LOCK", false) | |||
| RunUser = Cfg.MustValue("", "RUN_USER") | |||
| curUser := os.Getenv("USERNAME") | |||
| curUser := os.Getenv("USER") | |||
| if len(curUser) == 0 { | |||
| curUser = os.Getenv("USER") | |||
| curUser = os.Getenv("USERNAME") | |||
| } | |||
| // Does not check run user when the install lock is off. | |||
| if InstallLock && RunUser != curUser { | |||
| @@ -74,6 +74,7 @@ html, body { | |||
| padding-left: 0; | |||
| padding-right: 0; | |||
| margin-right: 10px; | |||
| margin-top: 0; | |||
| } | |||
| .nav-item:hover, | |||
| @@ -258,14 +259,40 @@ html, body { | |||
| } | |||
| #social-login { | |||
| margin-top: 30px; | |||
| padding-top: 20px; | |||
| margin-top: 40px; | |||
| padding-top: 40px; | |||
| border-top: 1px solid #ccc; | |||
| position: relative; | |||
| } | |||
| #social-login .btn { | |||
| float: none; | |||
| margin: auto; | |||
| margin: auto 4px; | |||
| } | |||
| #social-login .btn .fa { | |||
| margin-left: 0; | |||
| margin-right: 4px; | |||
| } | |||
| #social-login .btn span { | |||
| display: inline-block; | |||
| vertical-align: top; | |||
| font-size: 16px; | |||
| margin-top: 5px; | |||
| } | |||
| #social-login h4 { | |||
| position: absolute; | |||
| top: -20px; | |||
| width: 100%; | |||
| text-align: center; | |||
| background-color: transparent; | |||
| } | |||
| #social-login h4 span { | |||
| background-color: #FFF; | |||
| padding: 0 12px; | |||
| } | |||
| /* gogs-user-profile */ | |||
| @@ -310,6 +337,22 @@ html, body { | |||
| padding-right: 18px; | |||
| } | |||
| #user-profile .profile-rel .col-md-6 { | |||
| text-align: center; | |||
| padding-bottom: 12px; | |||
| } | |||
| #user-profile .profile-rel strong { | |||
| font-size: 24px; | |||
| color: #444; | |||
| display: block; | |||
| } | |||
| #user-profile .profile-rel p { | |||
| margin-right: 0; | |||
| color: #888; | |||
| } | |||
| #user-activity .tab-pane { | |||
| padding: 20px; | |||
| } | |||
| @@ -146,9 +146,9 @@ func InstallPost(ctx *middleware.Context, form auth.InstallForm) { | |||
| } | |||
| // Check run user. | |||
| curUser := os.Getenv("USERNAME") | |||
| curUser := os.Getenv("USER") | |||
| if len(curUser) == 0 { | |||
| curUser = os.Getenv("USER") | |||
| curUser = os.Getenv("USERNAME") | |||
| } | |||
| // Does not check run user when the install lock is off. | |||
| if form.RunUser != curUser { | |||
| @@ -50,16 +50,10 @@ func Commits(ctx *middleware.Context, params martini.Params) { | |||
| nextPage = 0 | |||
| } | |||
| var commits *list.List | |||
| if models.IsBranchExist(userName, repoName, branchName) { | |||
| // commits, err = models.GetCommitsByBranch(userName, repoName, branchName) | |||
| commits, err = models.GetCommitsByRange(repoPath, branchName, page) | |||
| } else { | |||
| commits, err = models.GetCommitsByCommitId(userName, repoName, branchName) | |||
| } | |||
| //both `git log branchName` and `git log commitId` work | |||
| commits, err := models.GetCommitsByRange(repoPath, branchName, page) | |||
| if err != nil { | |||
| ctx.Handle(404, "repo.Commits(get commits)", err) | |||
| ctx.Handle(500, "repo.Commits(get commits)", err) | |||
| return | |||
| } | |||
| @@ -109,6 +103,7 @@ func Diff(ctx *middleware.Context, params martini.Params) { | |||
| ctx.Data["Title"] = commit.Message() + " · " + base.ShortSha(commitId) | |||
| ctx.Data["Commit"] = commit | |||
| ctx.Data["Diff"] = diff | |||
| ctx.Data["DiffNotAvailable"] = diff.NumFiles() == 0 | |||
| ctx.Data["IsRepoToolbarCommits"] = true | |||
| ctx.Data["SourcePath"] = "/" + path.Join(userName, repoName, "src", commitId) | |||
| ctx.Data["RawPath"] = "/" + path.Join(userName, repoName, "raw", commitId) | |||
| @@ -20,6 +20,9 @@ | |||
| </div> | |||
| </div> | |||
| {{if .DiffNotAvailable}} | |||
| <h4>Diff Data Not Available.</h4> | |||
| {{else}} | |||
| <div class="diff-detail-box diff-box"> | |||
| <a class="pull-right btn btn-default" data-toggle="collapse" data-target="#diff-files">Show Diff Stats</a> | |||
| <p class="showing"> | |||
| @@ -97,6 +100,7 @@ | |||
| </div> | |||
| </div> | |||
| {{end}} | |||
| {{end}} | |||
| </div> | |||
| </div> | |||
| {{template "base/footer" .}} | |||
| @@ -10,6 +10,18 @@ | |||
| </div> | |||
| <div class="profile-info"> | |||
| <ul class="list-group"> | |||
| <li class="list-group-item"> | |||
| <div class="profile-rel"> | |||
| <div class="col-md-6 followers"> | |||
| <strong>123</strong> | |||
| <p>followers</p> | |||
| </div> | |||
| <div class="col-md-6 following"> | |||
| <strong>123</strong> | |||
| <p>following</p> | |||
| </div> | |||
| </div> | |||
| </li> | |||
| {{if .Owner.Location}} | |||
| <li class="list-group-item"><i class="fa fa-thumb-tack"></i>{{.Owner.Location}}</li> | |||
| {{end}} | |||
| @@ -4,13 +4,13 @@ | |||
| <form action="/user/login" method="post" class="form-horizontal card" id="login-card"> | |||
| {{.CsrfTokenHtml}} | |||
| <h3>Log in | |||
| {{if .OauthEnabled}} | |||
| <!--{{if .OauthEnabled}} | |||
| <small class="pull-right">social login: | |||
| {{if .OauthGitHubEnabled}} | |||
| <a href="/user/login/github?next=/user/sign_up"><i class="fa fa-github-square fa-2x"></i></a> | |||
| {{end}} | |||
| </small> | |||
| {{end}} | |||
| {{end}}--> | |||
| </h3> | |||
| {{template "base/alert" .}} | |||
| <div class="form-group {{if .Err_UserName}}has-error has-feedback{{end}}"> | |||
| @@ -51,12 +51,27 @@ | |||
| </div> | |||
| </div> | |||
| <!-- {{if .OauthEnabled}} | |||
| {{if .OauthEnabled}} | |||
| <div class="form-group text-center" id="social-login"> | |||
| <h4>Log In with Social Accounts</h4> | |||
| {{if .OauthGitHubEnabled}}<a href="/user/login/github?next=/user/sign_up"><i class="fa fa-github-square fa-3x"></i></a>{{end}} | |||
| <h4><span>or</span></h4> | |||
| <!--<a href="/user/login/github?next=/user/sign_up" class="btn btn-default google"> | |||
| <i class="fa fa-google-plus-square fa-2x"></i> | |||
| <span>Google</span> | |||
| </a> | |||
| <a href="/user/login/github?next=/user/sign_up" class="btn btn-default facebbok"> | |||
| <i class="fa fa-facebook-square fa-2x"></i> | |||
| <span>Facebook</span> | |||
| </a> | |||
| <a href="/user/login/github?next=/user/sign_up" class="btn btn-default weibo"> | |||
| <i class="fa fa-weibo fa-2x"></i> | |||
| <span>Weibo</span> | |||
| </a>--> | |||
| {{if .OauthGitHubEnabled}}<a href="/user/login/github?next=/user/sign_up" class="github btn btn-default"> | |||
| <i class="fa fa-github-square fa-2x"></i> | |||
| <span>GitHub</span> | |||
| </a>{{end}} | |||
| </div> | |||
| {{end}} --> | |||
| {{end}} | |||
| </form> | |||
| </div> | |||
| {{template "base/footer" .}} | |||