1
1
mirror of https://github.com/go-gitea/gitea synced 2025-07-22 18:28:37 +00:00

Huge updates!!!!! Be careful to merge!!!!

This commit is contained in:
Unknwon
2014-07-26 02:28:04 -04:00
parent 3f38ff6c09
commit 5c4bc3c848
43 changed files with 2225 additions and 2125 deletions

View File

@@ -5,12 +5,10 @@
package org
import (
"github.com/go-martini/martini"
"github.com/gogits/gogs/modules/middleware"
)
func Members(ctx *middleware.Context, params martini.Params) {
ctx.Data["Title"] = "Organization " + params["org"] + " Members"
func Members(ctx *middleware.Context) {
ctx.Data["Title"] = "Organization " + ctx.Params(":org") + " Members"
ctx.HTML(200, "org/members")
}

View File

@@ -5,9 +5,7 @@
package org
import (
"github.com/go-martini/martini"
"github.com/gogits/gogs-ng/models"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/auth"
"github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/log"
@@ -21,10 +19,10 @@ const (
SETTINGS base.TplName = "org/settings"
)
func Home(ctx *middleware.Context, params martini.Params) {
ctx.Data["Title"] = "Organization " + params["org"]
func Home(ctx *middleware.Context) {
ctx.Data["Title"] = "Organization " + ctx.Params(":org")
org, err := models.GetUserByName(params["org"])
org, err := models.GetUserByName(ctx.Params(":org"))
if err != nil {
if err == models.ErrUserNotExist {
ctx.Handle(404, "org.Home(GetUserByName)", err)
@@ -99,12 +97,12 @@ func NewPost(ctx *middleware.Context, form auth.CreateOrgForm) {
ctx.Redirect("/org/" + form.OrgName + "/dashboard")
}
func Dashboard(ctx *middleware.Context, params martini.Params) {
func Dashboard(ctx *middleware.Context) {
ctx.Data["Title"] = "Dashboard"
ctx.Data["PageIsUserDashboard"] = true
ctx.Data["PageIsOrgDashboard"] = true
org, err := models.GetUserByName(params["org"])
org, err := models.GetUserByName(ctx.Params(":org"))
if err != nil {
if err == models.ErrUserNotExist {
ctx.Handle(404, "org.Dashboard(GetUserByName)", err)
@@ -114,11 +112,11 @@ func Dashboard(ctx *middleware.Context, params martini.Params) {
return
}
// if err := ctx.User.GetOrganizations(); err != nil {
// ctx.Handle(500, "home.Dashboard(GetOrganizations)", err)
// return
// }
// ctx.Data["Orgs"] = ctx.User.Orgs
if err := ctx.User.GetOrganizations(); err != nil {
ctx.Handle(500, "home.Dashboard(GetOrganizations)", err)
return
}
ctx.Data["Orgs"] = ctx.User.Orgs
ctx.Data["ContextUser"] = org
ctx.Data["MyRepos"], err = models.GetRepositories(org.Id, true)
@@ -137,10 +135,10 @@ func Dashboard(ctx *middleware.Context, params martini.Params) {
ctx.HTML(200, user.DASHBOARD)
}
func Settings(ctx *middleware.Context, params martini.Params) {
func Settings(ctx *middleware.Context) {
ctx.Data["Title"] = "Settings"
org, err := models.GetUserByName(params["org"])
org, err := models.GetUserByName(ctx.Params(":org"))
if err != nil {
if err == models.ErrUserNotExist {
ctx.Handle(404, "org.Settings(GetUserByName)", err)
@@ -154,10 +152,10 @@ func Settings(ctx *middleware.Context, params martini.Params) {
ctx.HTML(200, SETTINGS)
}
func SettingsPost(ctx *middleware.Context, params martini.Params, form auth.OrgSettingForm) {
func SettingsPost(ctx *middleware.Context, form auth.OrgSettingForm) {
ctx.Data["Title"] = "Settings"
org, err := models.GetUserByName(params["org"])
org, err := models.GetUserByName(ctx.Params(":org"))
if err != nil {
if err == models.ErrUserNotExist {
ctx.Handle(404, "org.SettingsPost(GetUserByName)", err)
@@ -187,10 +185,10 @@ func SettingsPost(ctx *middleware.Context, params martini.Params, form auth.OrgS
ctx.Redirect("/org/" + org.Name + "/settings")
}
func DeletePost(ctx *middleware.Context, params martini.Params) {
func DeletePost(ctx *middleware.Context) {
ctx.Data["Title"] = "Settings"
org, err := models.GetUserByName(params["org"])
org, err := models.GetUserByName(ctx.Params(":org"))
if err != nil {
if err == models.ErrUserNotExist {
ctx.Handle(404, "org.DeletePost(GetUserByName)", err)

View File

@@ -5,8 +5,6 @@
package org
import (
"github.com/go-martini/martini"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/auth"
"github.com/gogits/gogs/modules/base"
@@ -19,10 +17,10 @@ const (
TEAM_NEW base.TplName = "org/team_new"
)
func Teams(ctx *middleware.Context, params martini.Params) {
ctx.Data["Title"] = "Organization " + params["org"] + " Teams"
func Teams(ctx *middleware.Context) {
ctx.Data["Title"] = "Organization " + ctx.Params(":org") + " Teams"
org, err := models.GetUserByName(params["org"])
org, err := models.GetUserByName(ctx.Params(":org"))
if err != nil {
if err == models.ErrUserNotExist {
ctx.Handle(404, "org.Teams(GetUserByName)", err)
@@ -48,8 +46,8 @@ func Teams(ctx *middleware.Context, params martini.Params) {
ctx.HTML(200, TEAMS)
}
func NewTeam(ctx *middleware.Context, params martini.Params) {
org, err := models.GetUserByName(params["org"])
func NewTeam(ctx *middleware.Context) {
org, err := models.GetUserByName(ctx.Params(":org"))
if err != nil {
if err == models.ErrUserNotExist {
ctx.Handle(404, "org.NewTeam(GetUserByName)", err)
@@ -69,8 +67,8 @@ func NewTeam(ctx *middleware.Context, params martini.Params) {
ctx.HTML(200, TEAM_NEW)
}
func NewTeamPost(ctx *middleware.Context, params martini.Params, form auth.CreateTeamForm) {
org, err := models.GetUserByName(params["org"])
func NewTeamPost(ctx *middleware.Context, form auth.CreateTeamForm) {
org, err := models.GetUserByName(ctx.Params(":org"))
if err != nil {
if err == models.ErrUserNotExist {
ctx.Handle(404, "org.NewTeamPost(GetUserByName)", err)
@@ -125,12 +123,12 @@ func NewTeamPost(ctx *middleware.Context, params martini.Params, form auth.Creat
ctx.Redirect("/org/" + org.LowerName + "/teams/" + t.LowerName)
}
func EditTeam(ctx *middleware.Context, params martini.Params) {
ctx.Data["Title"] = "Organization " + params["org"] + " Edit Team"
func EditTeam(ctx *middleware.Context) {
ctx.Data["Title"] = "Organization " + ctx.Params(":org") + " Edit Team"
ctx.HTML(200, "org/edit_team")
}
func SingleTeam(ctx *middleware.Context,params martini.Params){
ctx.Data["Title"] = "single-team"+params["org"]
ctx.HTML(200,"org/team")
func SingleTeam(ctx *middleware.Context) {
ctx.Data["Title"] = "single-team" + ctx.Params(":org")
ctx.HTML(200, "org/team")
}

View File

@@ -4,224 +4,221 @@
package repo
// import (
// "path"
import (
"path"
// "github.com/Unknwon/com"
// "github.com/go-martini/martini"
"github.com/Unknwon/com"
// "github.com/gogits/gogs/models"
// "github.com/gogits/gogs/modules/base"
// "github.com/gogits/gogs/modules/middleware"
// )
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/middleware"
)
// const (
// COMMITS base.TplName = "repo/commits"
// DIFF base.TplName = "repo/diff"
// )
const (
COMMITS base.TplName = "repo/commits"
DIFF base.TplName = "repo/diff"
)
// func Commits(ctx *middleware.Context, params martini.Params) {
// ctx.Data["IsRepoToolbarCommits"] = true
func Commits(ctx *middleware.Context) {
ctx.Data["IsRepoToolbarCommits"] = true
// userName := ctx.Repo.Owner.Name
// repoName := ctx.Repo.Repository.Name
userName := ctx.Repo.Owner.Name
repoName := ctx.Repo.Repository.Name
// brs, err := ctx.Repo.GitRepo.GetBranches()
// if err != nil {
// ctx.Handle(500, "repo.Commits(GetBranches)", err)
// return
// } else if len(brs) == 0 {
// ctx.Handle(404, "repo.Commits(GetBranches)", nil)
// return
// }
brs, err := ctx.Repo.GitRepo.GetBranches()
if err != nil {
ctx.Handle(500, "GetBranches", err)
return
} else if len(brs) == 0 {
ctx.Handle(404, "GetBranches", nil)
return
}
// commitsCount, err := ctx.Repo.Commit.CommitsCount()
// if err != nil {
// ctx.Handle(500, "repo.Commits(GetCommitsCount)", err)
// return
// }
commitsCount, err := ctx.Repo.Commit.CommitsCount()
if err != nil {
ctx.Handle(500, "GetCommitsCount", err)
return
}
// // Calculate and validate page number.
// page, _ := com.StrTo(ctx.Query("p")).Int()
// if page < 1 {
// page = 1
// }
// lastPage := page - 1
// if lastPage < 0 {
// lastPage = 0
// }
// nextPage := page + 1
// if nextPage*50 > commitsCount {
// nextPage = 0
// }
// Calculate and validate page number.
page, _ := com.StrTo(ctx.Query("p")).Int()
if page < 1 {
page = 1
}
lastPage := page - 1
if lastPage < 0 {
lastPage = 0
}
nextPage := page + 1
if nextPage*50 > commitsCount {
nextPage = 0
}
// // Both `git log branchName` and `git log commitId` work.
// // ctx.Data["Commits"], err = ctx.Repo.Commit.CommitsByRange(page)
// // if err != nil {
// // ctx.Handle(500, "repo.Commits(CommitsByRange)", err)
// // return
// // }
// Both `git log branchName` and `git log commitId` work.
ctx.Data["Commits"], err = ctx.Repo.Commit.CommitsByRange(page)
if err != nil {
ctx.Handle(500, "CommitsByRange", err)
return
}
// ctx.Data["Username"] = userName
// ctx.Data["Reponame"] = repoName
// ctx.Data["CommitCount"] = commitsCount
// ctx.Data["LastPageNum"] = lastPage
// ctx.Data["NextPageNum"] = nextPage
// ctx.HTML(200, COMMITS)
// }
ctx.Data["Username"] = userName
ctx.Data["Reponame"] = repoName
ctx.Data["CommitCount"] = commitsCount
ctx.Data["LastPageNum"] = lastPage
ctx.Data["NextPageNum"] = nextPage
ctx.HTML(200, COMMITS)
}
// func SearchCommits(ctx *middleware.Context, params martini.Params) {
// ctx.Data["IsSearchPage"] = true
// ctx.Data["IsRepoToolbarCommits"] = true
func SearchCommits(ctx *middleware.Context) {
ctx.Data["IsSearchPage"] = true
ctx.Data["IsRepoToolbarCommits"] = true
// keyword := ctx.Query("q")
// if len(keyword) == 0 {
// ctx.Redirect(ctx.Repo.RepoLink + "/commits/" + ctx.Repo.BranchName)
// return
// }
keyword := ctx.Query("q")
if len(keyword) == 0 {
ctx.Redirect(ctx.Repo.RepoLink + "/commits/" + ctx.Repo.BranchName)
return
}
// userName := params["username"]
// repoName := params["reponame"]
userName := ctx.Params(":username")
repoName := ctx.Params(":reponame")
// brs, err := ctx.Repo.GitRepo.GetBranches()
// if err != nil {
// ctx.Handle(500, "repo.SearchCommits(GetBranches)", err)
// return
// } else if len(brs) == 0 {
// ctx.Handle(404, "repo.SearchCommits(GetBranches)", nil)
// return
// }
brs, err := ctx.Repo.GitRepo.GetBranches()
if err != nil {
ctx.Handle(500, "GetBranches", err)
return
} else if len(brs) == 0 {
ctx.Handle(404, "GetBranches", nil)
return
}
// // commits, err := ctx.Repo.Commit.SearchCommits(keyword)
// // if err != nil {
// // ctx.Handle(500, "repo.SearchCommits(SearchCommits)", err)
// // return
// // }
commits, err := ctx.Repo.Commit.SearchCommits(keyword)
if err != nil {
ctx.Handle(500, "repo.SearchCommits(SearchCommits)", err)
return
}
// ctx.Data["Keyword"] = keyword
// ctx.Data["Username"] = userName
// ctx.Data["Reponame"] = repoName
// // ctx.Data["CommitCount"] = commits.Len()
// // ctx.Data["Commits"] = commits
// ctx.HTML(200, COMMITS)
// }
ctx.Data["Keyword"] = keyword
ctx.Data["Username"] = userName
ctx.Data["Reponame"] = repoName
ctx.Data["CommitCount"] = commits.Len()
ctx.Data["Commits"] = commits
ctx.HTML(200, COMMITS)
}
// func Diff(ctx *middleware.Context, params martini.Params) {
// ctx.Data["IsRepoToolbarCommits"] = true
func Diff(ctx *middleware.Context) {
ctx.Data["IsRepoToolbarCommits"] = true
// userName := ctx.Repo.Owner.Name
// repoName := ctx.Repo.Repository.Name
// commitId := ctx.Repo.CommitId
userName := ctx.Repo.Owner.Name
repoName := ctx.Repo.Repository.Name
commitId := ctx.Repo.CommitId
// commit := ctx.Repo.Commit
commit := ctx.Repo.Commit
// diff, err := models.GetDiff(models.RepoPath(userName, repoName), commitId)
// if err != nil {
// ctx.Handle(404, "repo.Diff(GetDiff)", err)
// return
// }
diff, err := models.GetDiff(models.RepoPath(userName, repoName), commitId)
if err != nil {
ctx.Handle(404, "GetDiff", err)
return
}
// isImageFile := func(name string) bool {
// // blob, err := ctx.Repo.Commit.GetBlobByPath(name)
// // if err != nil {
// // return false
// // }
isImageFile := func(name string) bool {
blob, err := ctx.Repo.Commit.GetBlobByPath(name)
if err != nil {
return false
}
// // dataRc, err := blob.Data()
// // if err != nil {
// // return false
// // }
// // buf := make([]byte, 1024)
// // n, _ := dataRc.Read(buf)
// // if n > 0 {
// // buf = buf[:n]
// // }
// // dataRc.Close()
// // _, isImage := base.IsImageFile(buf)
// // return isImage
// return false
// }
dataRc, err := blob.Data()
if err != nil {
return false
}
buf := make([]byte, 1024)
n, _ := dataRc.Read(buf)
if n > 0 {
buf = buf[:n]
}
_, isImage := base.IsImageFile(buf)
return isImage
}
// parents := make([]string, commit.ParentCount())
// for i := 0; i < commit.ParentCount(); i++ {
// sha, err := commit.ParentId(i)
// parents[i] = sha.String()
// if err != nil {
// ctx.Handle(404, "repo.Diff", err)
// return
// }
// }
parents := make([]string, commit.ParentCount())
for i := 0; i < commit.ParentCount(); i++ {
sha, err := commit.ParentId(i)
parents[i] = sha.String()
if err != nil {
ctx.Handle(404, "repo.Diff", err)
return
}
}
// ctx.Data["Username"] = userName
// ctx.Data["Reponame"] = repoName
// ctx.Data["IsImageFile"] = isImageFile
// ctx.Data["Title"] = commit.Summary() + " · " + base.ShortSha(commitId)
// ctx.Data["Commit"] = commit
// ctx.Data["Diff"] = diff
// ctx.Data["Parents"] = parents
// ctx.Data["DiffNotAvailable"] = diff.NumFiles() == 0
// ctx.Data["SourcePath"] = "/" + path.Join(userName, repoName, "src", commitId)
// ctx.Data["RawPath"] = "/" + path.Join(userName, repoName, "raw", commitId)
// ctx.HTML(200, DIFF)
// }
ctx.Data["Username"] = userName
ctx.Data["Reponame"] = repoName
ctx.Data["IsImageFile"] = isImageFile
ctx.Data["Title"] = commit.Summary() + " · " + base.ShortSha(commitId)
ctx.Data["Commit"] = commit
ctx.Data["Diff"] = diff
ctx.Data["Parents"] = parents
ctx.Data["DiffNotAvailable"] = diff.NumFiles() == 0
ctx.Data["SourcePath"] = "/" + path.Join(userName, repoName, "src", commitId)
ctx.Data["RawPath"] = "/" + path.Join(userName, repoName, "raw", commitId)
ctx.HTML(200, DIFF)
}
// func FileHistory(ctx *middleware.Context, params martini.Params) {
// ctx.Data["IsRepoToolbarCommits"] = true
func FileHistory(ctx *middleware.Context) {
ctx.Data["IsRepoToolbarCommits"] = true
// fileName := params["_1"]
// if len(fileName) == 0 {
// Commits(ctx, params)
// return
// }
fileName := ctx.Params("*")
if len(fileName) == 0 {
Commits(ctx)
return
}
// userName := ctx.Repo.Owner.Name
// repoName := ctx.Repo.Repository.Name
// branchName := params["branchname"]
userName := ctx.Repo.Owner.Name
repoName := ctx.Repo.Repository.Name
branchName := ctx.Params(":branchname")
// brs, err := ctx.Repo.GitRepo.GetBranches()
// if err != nil {
// ctx.Handle(500, "repo.FileHistory", err)
// return
// } else if len(brs) == 0 {
// ctx.Handle(404, "repo.FileHistory", nil)
// return
// }
brs, err := ctx.Repo.GitRepo.GetBranches()
if err != nil {
ctx.Handle(500, "GetBranches", err)
return
} else if len(brs) == 0 {
ctx.Handle(404, "GetBranches", nil)
return
}
// // commitsCount, err := ctx.Repo.GitRepo.FileCommitsCount(branchName, fileName)
// // if err != nil {
// // ctx.Handle(500, "repo.FileHistory(GetCommitsCount)", err)
// // return
// // } else if commitsCount == 0 {
// // ctx.Handle(404, "repo.FileHistory", nil)
// // return
// // }
commitsCount, err := ctx.Repo.GitRepo.FileCommitsCount(branchName, fileName)
if err != nil {
ctx.Handle(500, "repo.FileHistory(GetCommitsCount)", err)
return
} else if commitsCount == 0 {
ctx.Handle(404, "repo.FileHistory", nil)
return
}
// // Calculate and validate page number.
// // page, _ := base.StrTo(ctx.Query("p")).Int()
// // if page < 1 {
// // page = 1
// // }
// // lastPage := page - 1
// // if lastPage < 0 {
// // lastPage = 0
// // }
// // nextPage := page + 1
// // if nextPage*50 > commitsCount {
// // nextPage = 0
// // }
// Calculate and validate page number.
page := com.StrTo(ctx.Query("p")).MustInt()
if page < 1 {
page = 1
}
lastPage := page - 1
if lastPage < 0 {
lastPage = 0
}
nextPage := page + 1
if nextPage*50 > commitsCount {
nextPage = 0
}
// // ctx.Data["Commits"], err = ctx.Repo.GitRepo.CommitsByFileAndRange(
// // branchName, fileName, page)
// // if err != nil {
// // ctx.Handle(500, "repo.FileHistory(CommitsByRange)", err)
// // return
// // }
ctx.Data["Commits"], err = ctx.Repo.GitRepo.CommitsByFileAndRange(
branchName, fileName, page)
if err != nil {
ctx.Handle(500, "repo.FileHistory(CommitsByRange)", err)
return
}
// ctx.Data["Username"] = userName
// ctx.Data["Reponame"] = repoName
// ctx.Data["FileName"] = fileName
// // ctx.Data["CommitCount"] = commitsCount
// // ctx.Data["LastPageNum"] = lastPage
// // ctx.Data["NextPageNum"] = nextPage
// ctx.HTML(200, COMMITS)
// }
ctx.Data["Username"] = userName
ctx.Data["Reponame"] = repoName
ctx.Data["FileName"] = fileName
ctx.Data["CommitCount"] = commitsCount
ctx.Data["LastPageNum"] = lastPage
ctx.Data["NextPageNum"] = nextPage
ctx.HTML(200, COMMITS)
}

View File

@@ -5,50 +5,41 @@
package repo
import (
// "io"
// "os"
// "path/filepath"
"io"
"path"
// "github.com/Unknwon/com"
// "github.com/gogits/git"
// "github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/middleware"
)
func SingleDownload(ctx *middleware.Context) {
// treename := params["_1"]
treename := ctx.Params("*")
// blob, err := ctx.Repo.Commit.GetBlobByPath(treename)
// if err != nil {
// ctx.Handle(500, "repo.SingleDownload(GetBlobByPath)", err)
// return
// }
blob, err := ctx.Repo.Commit.GetBlobByPath(treename)
if err != nil {
ctx.Handle(500, "GetBlobByPath", err)
return
}
// dataRc, err := blob.Data()
// if err != nil {
// ctx.Handle(500, "repo.SingleDownload(Data)", err)
// return
// }
dataRc, err := blob.Data()
if err != nil {
ctx.Handle(500, "repo.SingleDownload(Data)", err)
return
}
// buf := make([]byte, 1024)
// n, _ := dataRc.Read(buf)
// if n > 0 {
// buf = buf[:n]
// }
buf := make([]byte, 1024)
n, _ := dataRc.Read(buf)
if n > 0 {
buf = buf[:n]
}
// defer func() {
// dataRc.Close()
// }()
// contentType, isTextFile := base.IsTextFile(buf)
// _, isImageFile := base.IsImageFile(buf)
// ctx.Res.Header().Set("Content-Type", contentType)
// if !isTextFile && !isImageFile {
// ctx.Res.Header().Set("Content-Disposition", "attachment; filename="+filepath.Base(treename))
// ctx.Res.Header().Set("Content-Transfer-Encoding", "binary")
// }
// ctx.Res.Write(buf)
// io.Copy(ctx.Res, dataRc)
contentType, isTextFile := base.IsTextFile(buf)
_, isImageFile := base.IsImageFile(buf)
ctx.Resp.Header().Set("Content-Type", contentType)
if !isTextFile && !isImageFile {
ctx.Resp.Header().Set("Content-Disposition", "attachment; filename="+path.Base(treename))
ctx.Resp.Header().Set("Content-Transfer-Encoding", "binary")
}
ctx.Resp.Write(buf)
io.Copy(ctx.Resp, dataRc)
}

File diff suppressed because it is too large Load Diff

View File

@@ -5,13 +5,11 @@
package repo
import (
// "github.com/go-martini/martini"
// "github.com/gogits/gogs/models"
// "github.com/gogits/gogs/modules/auth"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/auth"
"github.com/gogits/gogs/modules/base"
// "github.com/gogits/gogs/modules/log"
// "github.com/gogits/gogs/modules/middleware"
"github.com/gogits/gogs/modules/log"
"github.com/gogits/gogs/modules/middleware"
)
const (
@@ -20,215 +18,215 @@ const (
RELEASE_EDIT base.TplName = "repo/release/edit"
)
// func Releases(ctx *middleware.Context) {
// ctx.Data["Title"] = "Releases"
// ctx.Data["IsRepoToolbarReleases"] = true
// ctx.Data["IsRepoReleaseNew"] = false
// rawTags, err := ctx.Repo.GitRepo.GetTags()
// if err != nil {
// ctx.Handle(500, "release.Releases(GetTags)", err)
// return
// }
func Releases(ctx *middleware.Context) {
ctx.Data["Title"] = "Releases"
ctx.Data["IsRepoToolbarReleases"] = true
ctx.Data["IsRepoReleaseNew"] = false
rawTags, err := ctx.Repo.GitRepo.GetTags()
if err != nil {
ctx.Handle(500, "release.Releases(GetTags)", err)
return
}
// rels, err := models.GetReleasesByRepoId(ctx.Repo.Repository.Id)
// if err != nil {
// ctx.Handle(500, "release.Releases(GetReleasesByRepoId)", err)
// return
// }
rels, err := models.GetReleasesByRepoId(ctx.Repo.Repository.Id)
if err != nil {
ctx.Handle(500, "release.Releases(GetReleasesByRepoId)", err)
return
}
// commitsCount, err := ctx.Repo.Commit.CommitsCount()
// if err != nil {
// ctx.Handle(500, "release.Releases(CommitsCount)", err)
// return
// }
commitsCount, err := ctx.Repo.Commit.CommitsCount()
if err != nil {
ctx.Handle(500, "release.Releases(CommitsCount)", err)
return
}
// // Temproray cache commits count of used branches to speed up.
// countCache := make(map[string]int)
// Temproray cache commits count of used branches to speed up.
countCache := make(map[string]int)
// tags := make([]*models.Release, len(rawTags))
// for i, rawTag := range rawTags {
// for _, rel := range rels {
// if rel.IsDraft && !ctx.Repo.IsOwner {
// continue
// }
// if rel.TagName == rawTag {
// rel.Publisher, err = models.GetUserById(rel.PublisherId)
// if err != nil {
// ctx.Handle(500, "release.Releases(GetUserById)", err)
// return
// }
// // Get corresponding target if it's not the current branch.
// if ctx.Repo.BranchName != rel.Target {
// // Get count if not exists.
// if _, ok := countCache[rel.Target]; !ok {
// commit, err := ctx.Repo.GitRepo.GetCommitOfTag(rel.TagName)
// if err != nil {
// ctx.Handle(500, "release.Releases(GetCommitOfTag)", err)
// return
// }
// countCache[rel.Target], err = commit.CommitsCount()
// if err != nil {
// ctx.Handle(500, "release.Releases(CommitsCount2)", err)
// return
// }
// }
// rel.NumCommitsBehind = countCache[rel.Target] - rel.NumCommits
// } else {
// rel.NumCommitsBehind = commitsCount - rel.NumCommits
// }
tags := make([]*models.Release, len(rawTags))
for i, rawTag := range rawTags {
for _, rel := range rels {
if rel.IsDraft && !ctx.Repo.IsOwner {
continue
}
if rel.TagName == rawTag {
rel.Publisher, err = models.GetUserById(rel.PublisherId)
if err != nil {
ctx.Handle(500, "GetUserById", err)
return
}
// Get corresponding target if it's not the current branch.
if ctx.Repo.BranchName != rel.Target {
// Get count if not exists.
if _, ok := countCache[rel.Target]; !ok {
commit, err := ctx.Repo.GitRepo.GetCommitOfTag(rel.TagName)
if err != nil {
ctx.Handle(500, "GetCommitOfTag", err)
return
}
countCache[rel.Target], err = commit.CommitsCount()
if err != nil {
ctx.Handle(500, "CommitsCount2", err)
return
}
}
rel.NumCommitsBehind = countCache[rel.Target] - rel.NumCommits
} else {
rel.NumCommitsBehind = commitsCount - rel.NumCommits
}
// rel.Note = base.RenderMarkdownString(rel.Note, ctx.Repo.RepoLink)
// tags[i] = rel
// break
// }
// }
rel.Note = base.RenderMarkdownString(rel.Note, ctx.Repo.RepoLink)
tags[i] = rel
break
}
}
// if tags[i] == nil {
// commit, err := ctx.Repo.GitRepo.GetCommitOfTag(rawTag)
// if err != nil {
// ctx.Handle(500, "release.Releases(GetCommitOfTag2)", err)
// return
// }
if tags[i] == nil {
commit, err := ctx.Repo.GitRepo.GetCommitOfTag(rawTag)
if err != nil {
ctx.Handle(500, "GetCommitOfTag2", err)
return
}
// tags[i] = &models.Release{
// Title: rawTag,
// TagName: rawTag,
// Sha1: commit.Id.String(),
// }
tags[i] = &models.Release{
Title: rawTag,
TagName: rawTag,
Sha1: commit.Id.String(),
}
// tags[i].NumCommits, err = ctx.Repo.GitRepo.CommitsCount(commit.Id.String())
// if err != nil {
// ctx.Handle(500, "release.Releases(CommitsCount)", err)
// return
// }
// tags[i].NumCommitsBehind = commitsCount - tags[i].NumCommits
// }
// }
// models.SortReleases(tags)
// ctx.Data["Releases"] = tags
// ctx.HTML(200, RELEASES)
// }
tags[i].NumCommits, err = ctx.Repo.GitRepo.CommitsCount(commit.Id.String())
if err != nil {
ctx.Handle(500, "CommitsCount", err)
return
}
tags[i].NumCommitsBehind = commitsCount - tags[i].NumCommits
}
}
models.SortReleases(tags)
ctx.Data["Releases"] = tags
ctx.HTML(200, RELEASES)
}
// func NewRelease(ctx *middleware.Context) {
// if !ctx.Repo.IsOwner {
// ctx.Handle(403, "release.ReleasesNew", nil)
// return
// }
func NewRelease(ctx *middleware.Context) {
if !ctx.Repo.IsOwner {
ctx.Handle(403, "release.ReleasesNew", nil)
return
}
// ctx.Data["Title"] = "New Release"
// ctx.Data["IsRepoToolbarReleases"] = true
// ctx.Data["IsRepoReleaseNew"] = true
// ctx.HTML(200, RELEASE_NEW)
// }
ctx.Data["Title"] = "New Release"
ctx.Data["IsRepoToolbarReleases"] = true
ctx.Data["IsRepoReleaseNew"] = true
ctx.HTML(200, RELEASE_NEW)
}
// func NewReleasePost(ctx *middleware.Context, form auth.NewReleaseForm) {
// if !ctx.Repo.IsOwner {
// ctx.Handle(403, "release.ReleasesNew", nil)
// return
// }
func NewReleasePost(ctx *middleware.Context, form auth.NewReleaseForm) {
if !ctx.Repo.IsOwner {
ctx.Handle(403, "release.ReleasesNew", nil)
return
}
// ctx.Data["Title"] = "New Release"
// ctx.Data["IsRepoToolbarReleases"] = true
// ctx.Data["IsRepoReleaseNew"] = true
ctx.Data["Title"] = "New Release"
ctx.Data["IsRepoToolbarReleases"] = true
ctx.Data["IsRepoReleaseNew"] = true
// if ctx.HasError() {
// ctx.HTML(200, RELEASE_NEW)
// return
// }
if ctx.HasError() {
ctx.HTML(200, RELEASE_NEW)
return
}
// commitsCount, err := ctx.Repo.Commit.CommitsCount()
// if err != nil {
// ctx.Handle(500, "release.ReleasesNewPost(CommitsCount)", err)
// return
// }
commitsCount, err := ctx.Repo.Commit.CommitsCount()
if err != nil {
ctx.Handle(500, "release.ReleasesNewPost(CommitsCount)", err)
return
}
// if !ctx.Repo.GitRepo.IsBranchExist(form.Target) {
// ctx.RenderWithErr("Target branch does not exist", "release/new", &form)
// return
// }
if !ctx.Repo.GitRepo.IsBranchExist(form.Target) {
ctx.RenderWithErr("Target branch does not exist", "release/new", &form)
return
}
// rel := &models.Release{
// RepoId: ctx.Repo.Repository.Id,
// PublisherId: ctx.User.Id,
// Title: form.Title,
// TagName: form.TagName,
// Target: form.Target,
// Sha1: ctx.Repo.Commit.Id.String(),
// NumCommits: commitsCount,
// Note: form.Content,
// IsDraft: len(form.Draft) > 0,
// IsPrerelease: form.Prerelease,
// }
rel := &models.Release{
RepoId: ctx.Repo.Repository.Id,
PublisherId: ctx.User.Id,
Title: form.Title,
TagName: form.TagName,
Target: form.Target,
Sha1: ctx.Repo.Commit.Id.String(),
NumCommits: commitsCount,
Note: form.Content,
IsDraft: len(form.Draft) > 0,
IsPrerelease: form.Prerelease,
}
// if err = models.CreateRelease(ctx.Repo.GitRepo, rel); err != nil {
// if err == models.ErrReleaseAlreadyExist {
// ctx.RenderWithErr("Release with this tag name has already existed", "release/new", &form)
// } else {
// ctx.Handle(500, "release.ReleasesNewPost(IsReleaseExist)", err)
// }
// return
// }
// log.Trace("%s Release created: %s/%s:%s", ctx.Req.RequestURI, ctx.User.LowerName, ctx.Repo.Repository.Name, form.TagName)
if err = models.CreateRelease(ctx.Repo.GitRepo, rel); err != nil {
if err == models.ErrReleaseAlreadyExist {
ctx.RenderWithErr("Release with this tag name has already existed", "release/new", &form)
} else {
ctx.Handle(500, "release.ReleasesNewPost(IsReleaseExist)", err)
}
return
}
log.Trace("%s Release created: %s/%s:%s", ctx.Req.RequestURI, ctx.User.LowerName, ctx.Repo.Repository.Name, form.TagName)
// ctx.Redirect(ctx.Repo.RepoLink + "/releases")
// }
ctx.Redirect(ctx.Repo.RepoLink + "/releases")
}
// func EditRelease(ctx *middleware.Context, params martini.Params) {
// if !ctx.Repo.IsOwner {
// ctx.Handle(403, "release.ReleasesEdit", nil)
// return
// }
func EditRelease(ctx *middleware.Context) {
if !ctx.Repo.IsOwner {
ctx.Handle(403, "release.ReleasesEdit", nil)
return
}
// tagName := params["tagname"]
// rel, err := models.GetRelease(ctx.Repo.Repository.Id, tagName)
// if err != nil {
// if err == models.ErrReleaseNotExist {
// ctx.Handle(404, "release.ReleasesEdit(GetRelease)", err)
// } else {
// ctx.Handle(500, "release.ReleasesEdit(GetRelease)", err)
// }
// return
// }
// ctx.Data["Release"] = rel
tagName := ctx.Params(":tagname")
rel, err := models.GetRelease(ctx.Repo.Repository.Id, tagName)
if err != nil {
if err == models.ErrReleaseNotExist {
ctx.Handle(404, "release.ReleasesEdit(GetRelease)", err)
} else {
ctx.Handle(500, "release.ReleasesEdit(GetRelease)", err)
}
return
}
ctx.Data["Release"] = rel
// ctx.Data["Title"] = "Edit Release"
// ctx.Data["IsRepoToolbarReleases"] = true
// ctx.HTML(200, RELEASE_EDIT)
// }
ctx.Data["Title"] = "Edit Release"
ctx.Data["IsRepoToolbarReleases"] = true
ctx.HTML(200, RELEASE_EDIT)
}
// func EditReleasePost(ctx *middleware.Context, params martini.Params, form auth.EditReleaseForm) {
// if !ctx.Repo.IsOwner {
// ctx.Handle(403, "release.EditReleasePost", nil)
// return
// }
func EditReleasePost(ctx *middleware.Context, form auth.EditReleaseForm) {
if !ctx.Repo.IsOwner {
ctx.Handle(403, "release.EditReleasePost", nil)
return
}
// tagName := params["tagname"]
// rel, err := models.GetRelease(ctx.Repo.Repository.Id, tagName)
// if err != nil {
// if err == models.ErrReleaseNotExist {
// ctx.Handle(404, "release.EditReleasePost(GetRelease)", err)
// } else {
// ctx.Handle(500, "release.EditReleasePost(GetRelease)", err)
// }
// return
// }
// ctx.Data["Release"] = rel
tagName := ctx.Params(":tagname")
rel, err := models.GetRelease(ctx.Repo.Repository.Id, tagName)
if err != nil {
if err == models.ErrReleaseNotExist {
ctx.Handle(404, "release.EditReleasePost(GetRelease)", err)
} else {
ctx.Handle(500, "release.EditReleasePost(GetRelease)", err)
}
return
}
ctx.Data["Release"] = rel
// if ctx.HasError() {
// ctx.HTML(200, RELEASE_EDIT)
// return
// }
if ctx.HasError() {
ctx.HTML(200, RELEASE_EDIT)
return
}
// ctx.Data["Title"] = "Edit Release"
// ctx.Data["IsRepoToolbarReleases"] = true
ctx.Data["Title"] = "Edit Release"
ctx.Data["IsRepoToolbarReleases"] = true
// rel.Title = form.Title
// rel.Note = form.Content
// rel.IsDraft = len(form.Draft) > 0
// rel.IsPrerelease = form.Prerelease
// if err = models.UpdateRelease(ctx.Repo.GitRepo, rel); err != nil {
// ctx.Handle(500, "release.EditReleasePost(UpdateRelease)", err)
// return
// }
// ctx.Redirect(ctx.Repo.RepoLink + "/releases")
// }
rel.Title = form.Title
rel.Note = form.Content
rel.IsDraft = len(form.Draft) > 0
rel.IsPrerelease = form.Prerelease
if err = models.UpdateRelease(ctx.Repo.GitRepo, rel); err != nil {
ctx.Handle(500, "release.EditReleasePost(UpdateRelease)", err)
return
}
ctx.Redirect(ctx.Repo.RepoLink + "/releases")
}

View File

@@ -5,8 +5,10 @@
package repo
import (
"fmt"
"os"
"path"
"strings"
"github.com/Unknwon/com"
@@ -34,22 +36,22 @@ func Create(ctx *middleware.Context) {
ctx.Data["Licenses"] = models.Licenses
ctxUser := ctx.User
// orgId := com.StrTo(ctx.Query("org")).MustInt64()
// if orgId > 0 {
// org, err := models.GetUserById(orgId)
// if err != nil && err != models.ErrUserNotExist {
// ctx.Handle(500, "home.Dashboard(GetUserById)", err)
// return
// }
// ctxUser = org
// }
orgId := com.StrTo(ctx.Query("org")).MustInt64()
if orgId > 0 {
org, err := models.GetUserById(orgId)
if err != nil && err != models.ErrUserNotExist {
ctx.Handle(500, "home.Dashboard(GetUserById)", err)
return
}
ctxUser = org
}
ctx.Data["ContextUser"] = ctxUser
// if err := ctx.User.GetOrganizations(); err != nil {
// ctx.Handle(500, "home.Dashboard(GetOrganizations)", err)
// return
// }
// ctx.Data["AllUsers"] = append([]*models.User{ctx.User}, ctx.User.Orgs...)
if err := ctx.User.GetOrganizations(); err != nil {
ctx.Handle(500, "home.Dashboard(GetOrganizations)", err)
return
}
ctx.Data["AllUsers"] = append([]*models.User{ctx.User}, ctx.User.Orgs...)
ctx.HTML(200, CREATE)
}
@@ -62,22 +64,22 @@ func CreatePost(ctx *middleware.Context, form auth.CreateRepoForm) {
ctx.Data["Licenses"] = models.Licenses
ctxUser := ctx.User
// orgId := com.StrTo(ctx.Query("org")).MustInt64()
// if orgId > 0 {
// org, err := models.GetUserById(orgId)
// if err != nil && err != models.ErrUserNotExist {
// ctx.Handle(500, "home.Dashboard(GetUserById)", err)
// return
// }
// ctxUser = org
// }
orgId := com.StrTo(ctx.Query("org")).MustInt64()
if orgId > 0 {
org, err := models.GetUserById(orgId)
if err != nil && err != models.ErrUserNotExist {
ctx.Handle(500, "home.Dashboard(GetUserById)", err)
return
}
ctxUser = org
}
ctx.Data["ContextUser"] = ctxUser
// if err := ctx.User.GetOrganizations(); err != nil {
// ctx.Handle(500, "home.CreatePost(GetOrganizations)", err)
// return
// }
// ctx.Data["Orgs"] = ctx.User.Orgs
if err := ctx.User.GetOrganizations(); err != nil {
ctx.Handle(500, "home.CreatePost(GetOrganizations)", err)
return
}
ctx.Data["Orgs"] = ctx.User.Orgs
if ctx.HasError() {
ctx.HTML(200, CREATE)
@@ -127,78 +129,78 @@ func CreatePost(ctx *middleware.Context, form auth.CreateRepoForm) {
ctx.Handle(500, "CreateRepository", err)
}
// func Migrate(ctx *middleware.Context) {
// ctx.Data["Title"] = "Migrate repository"
// ctx.Data["PageIsNewRepo"] = true
func Migrate(ctx *middleware.Context) {
ctx.Data["Title"] = "Migrate repository"
ctx.Data["PageIsNewRepo"] = true
// if err := ctx.User.GetOrganizations(); err != nil {
// ctx.Handle(500, "home.Migrate(GetOrganizations)", err)
// return
// }
// ctx.Data["Orgs"] = ctx.User.Orgs
if err := ctx.User.GetOrganizations(); err != nil {
ctx.Handle(500, "home.Migrate(GetOrganizations)", err)
return
}
ctx.Data["Orgs"] = ctx.User.Orgs
// ctx.HTML(200, MIGRATE)
// }
ctx.HTML(200, MIGRATE)
}
// func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) {
// ctx.Data["Title"] = "Migrate repository"
// ctx.Data["PageIsNewRepo"] = true
func MigratePost(ctx *middleware.Context, form auth.MigrateRepoForm) {
ctx.Data["Title"] = "Migrate repository"
ctx.Data["PageIsNewRepo"] = true
// if err := ctx.User.GetOrganizations(); err != nil {
// ctx.Handle(500, "home.MigratePost(GetOrganizations)", err)
// return
// }
// ctx.Data["Orgs"] = ctx.User.Orgs
if err := ctx.User.GetOrganizations(); err != nil {
ctx.Handle(500, "home.MigratePost(GetOrganizations)", err)
return
}
ctx.Data["Orgs"] = ctx.User.Orgs
// if ctx.HasError() {
// ctx.HTML(200, MIGRATE)
// return
// }
if ctx.HasError() {
ctx.HTML(200, MIGRATE)
return
}
// u := ctx.User
// // Not equal means current user is an organization.
// if u.Id != form.Uid {
// var err error
// u, err = models.GetUserById(form.Uid)
// if err != nil {
// if err == models.ErrUserNotExist {
// ctx.Handle(404, "home.MigratePost(GetUserById)", err)
// } else {
// ctx.Handle(500, "home.MigratePost(GetUserById)", err)
// }
// return
// }
// }
u := ctx.User
// Not equal means current user is an organization.
if u.Id != form.Uid {
var err error
u, err = models.GetUserById(form.Uid)
if err != nil {
if err == models.ErrUserNotExist {
ctx.Handle(404, "home.MigratePost(GetUserById)", err)
} else {
ctx.Handle(500, "home.MigratePost(GetUserById)", err)
}
return
}
}
// authStr := strings.Replace(fmt.Sprintf("://%s:%s",
// form.AuthUserName, form.AuthPasswd), "@", "%40", -1)
// url := strings.Replace(form.Url, "://", authStr+"@", 1)
// repo, err := models.MigrateRepository(u, form.RepoName, form.Description, form.Private,
// form.Mirror, url)
// if err == nil {
// log.Trace("%s Repository migrated: %s/%s", ctx.Req.RequestURI, u.LowerName, form.RepoName)
// ctx.Redirect("/" + u.Name + "/" + form.RepoName)
// return
// } else if err == models.ErrRepoAlreadyExist {
// ctx.RenderWithErr("Repository name has already been used", MIGRATE, &form)
// return
// } else if err == models.ErrRepoNameIllegal {
// ctx.RenderWithErr(models.ErrRepoNameIllegal.Error(), MIGRATE, &form)
// return
// }
authStr := strings.Replace(fmt.Sprintf("://%s:%s",
form.AuthUserName, form.AuthPasswd), "@", "%40", -1)
url := strings.Replace(form.Url, "://", authStr+"@", 1)
repo, err := models.MigrateRepository(u, form.RepoName, form.Description, form.Private,
form.Mirror, url)
if err == nil {
log.Trace("%s Repository migrated: %s/%s", ctx.Req.RequestURI, u.LowerName, form.RepoName)
ctx.Redirect("/" + u.Name + "/" + form.RepoName)
return
} else if err == models.ErrRepoAlreadyExist {
ctx.RenderWithErr("Repository name has already been used", MIGRATE, &form)
return
} else if err == models.ErrRepoNameIllegal {
ctx.RenderWithErr(models.ErrRepoNameIllegal.Error(), MIGRATE, &form)
return
}
// if repo != nil {
// if errDelete := models.DeleteRepository(u.Id, repo.Id, u.Name); errDelete != nil {
// log.Error("repo.MigratePost(DeleteRepository): %v", errDelete)
// }
// }
if repo != nil {
if errDelete := models.DeleteRepository(u.Id, repo.Id, u.Name); errDelete != nil {
log.Error(4, "DeleteRepository: %v", errDelete)
}
}
// if strings.Contains(err.Error(), "Authentication failed") {
// ctx.RenderWithErr(err.Error(), MIGRATE, &form)
// return
// }
// ctx.Handle(500, "repo.Migrate(MigrateRepository)", err)
// }
if strings.Contains(err.Error(), "Authentication failed") {
ctx.RenderWithErr(err.Error(), MIGRATE, &form)
return
}
ctx.Handle(500, "MigrateRepository", err)
}
// func Action(ctx *middleware.Context, params martini.Params) {
// var err error

View File

@@ -4,362 +4,362 @@
package repo
// import (
// "fmt"
// "strings"
// "time"
import (
"fmt"
"strings"
"time"
// "github.com/go-martini/martini"
"github.com/Unknwon/com"
// "github.com/gogits/gogs-ng/models"
// "github.com/gogits/gogs/modules/auth"
// "github.com/gogits/gogs/modules/base"
// "github.com/gogits/gogs/modules/log"
// "github.com/gogits/gogs/modules/mailer"
// "github.com/gogits/gogs/modules/middleware"
// "github.com/gogits/gogs/modules/setting"
// )
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/auth"
"github.com/gogits/gogs/modules/base"
"github.com/gogits/gogs/modules/log"
"github.com/gogits/gogs/modules/mailer"
"github.com/gogits/gogs/modules/middleware"
"github.com/gogits/gogs/modules/setting"
)
// const (
// SETTING base.TplName = "repo/setting"
// COLLABORATION base.TplName = "repo/collaboration"
const (
SETTING base.TplName = "repo/setting"
COLLABORATION base.TplName = "repo/collaboration"
// HOOKS base.TplName = "repo/hooks"
// HOOK_ADD base.TplName = "repo/hook_add"
// HOOK_EDIT base.TplName = "repo/hook_edit"
// )
HOOKS base.TplName = "repo/hooks"
HOOK_ADD base.TplName = "repo/hook_add"
HOOK_EDIT base.TplName = "repo/hook_edit"
)
// func Setting(ctx *middleware.Context) {
// ctx.Data["IsRepoToolbarSetting"] = true
// ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - settings"
// ctx.HTML(200, SETTING)
// }
func Setting(ctx *middleware.Context) {
ctx.Data["IsRepoToolbarSetting"] = true
ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - settings"
ctx.HTML(200, SETTING)
}
// func SettingPost(ctx *middleware.Context, form auth.RepoSettingForm) {
// ctx.Data["IsRepoToolbarSetting"] = true
func SettingPost(ctx *middleware.Context, form auth.RepoSettingForm) {
ctx.Data["IsRepoToolbarSetting"] = true
// switch ctx.Query("action") {
// case "update":
// if ctx.HasError() {
// ctx.HTML(200, SETTING)
// return
// }
switch ctx.Query("action") {
case "update":
if ctx.HasError() {
ctx.HTML(200, SETTING)
return
}
// newRepoName := form.RepoName
// // Check if repository name has been changed.
// if ctx.Repo.Repository.Name != newRepoName {
// isExist, err := models.IsRepositoryExist(ctx.Repo.Owner, newRepoName)
// if err != nil {
// ctx.Handle(500, "setting.SettingPost(update: check existence)", err)
// return
// } else if isExist {
// ctx.RenderWithErr("Repository name has been taken in your repositories.", SETTING, nil)
// return
// } else if err = models.ChangeRepositoryName(ctx.Repo.Owner.Name, ctx.Repo.Repository.Name, newRepoName); err != nil {
// ctx.Handle(500, "setting.SettingPost(change repository name)", err)
// return
// }
// log.Trace("%s Repository name changed: %s/%s -> %s", ctx.Req.RequestURI, ctx.User.Name, ctx.Repo.Repository.Name, newRepoName)
newRepoName := form.RepoName
// Check if repository name has been changed.
if ctx.Repo.Repository.Name != newRepoName {
isExist, err := models.IsRepositoryExist(ctx.Repo.Owner, newRepoName)
if err != nil {
ctx.Handle(500, "setting.SettingPost(update: check existence)", err)
return
} else if isExist {
ctx.RenderWithErr("Repository name has been taken in your repositories.", SETTING, nil)
return
} else if err = models.ChangeRepositoryName(ctx.Repo.Owner.Name, ctx.Repo.Repository.Name, newRepoName); err != nil {
ctx.Handle(500, "setting.SettingPost(change repository name)", err)
return
}
log.Trace("%s Repository name changed: %s/%s -> %s", ctx.Req.RequestURI, ctx.User.Name, ctx.Repo.Repository.Name, newRepoName)
// ctx.Repo.Repository.Name = newRepoName
// }
ctx.Repo.Repository.Name = newRepoName
}
// br := form.Branch
br := form.Branch
// if ctx.Repo.GitRepo.IsBranchExist(br) {
// ctx.Repo.Repository.DefaultBranch = br
// }
// ctx.Repo.Repository.Description = form.Description
// ctx.Repo.Repository.Website = form.Website
// ctx.Repo.Repository.IsPrivate = form.Private
// ctx.Repo.Repository.IsGoget = form.GoGet
// if err := models.UpdateRepository(ctx.Repo.Repository); err != nil {
// ctx.Handle(404, "setting.SettingPost(update)", err)
// return
// }
// log.Trace("%s Repository updated: %s/%s", ctx.Req.RequestURI, ctx.Repo.Owner.Name, ctx.Repo.Repository.Name)
if ctx.Repo.GitRepo.IsBranchExist(br) {
ctx.Repo.Repository.DefaultBranch = br
}
ctx.Repo.Repository.Description = form.Description
ctx.Repo.Repository.Website = form.Website
ctx.Repo.Repository.IsPrivate = form.Private
ctx.Repo.Repository.IsGoget = form.GoGet
if err := models.UpdateRepository(ctx.Repo.Repository); err != nil {
ctx.Handle(404, "UpdateRepository", err)
return
}
log.Trace("%s Repository updated: %s/%s", ctx.Req.RequestURI, ctx.Repo.Owner.Name, ctx.Repo.Repository.Name)
// if ctx.Repo.Repository.IsMirror {
// if form.Interval > 0 {
// ctx.Repo.Mirror.Interval = form.Interval
// ctx.Repo.Mirror.NextUpdate = time.Now().Add(time.Duration(form.Interval) * time.Hour)
// if err := models.UpdateMirror(ctx.Repo.Mirror); err != nil {
// log.Error("setting.SettingPost(UpdateMirror): %v", err)
// }
// }
// }
if ctx.Repo.Repository.IsMirror {
if form.Interval > 0 {
ctx.Repo.Mirror.Interval = form.Interval
ctx.Repo.Mirror.NextUpdate = time.Now().Add(time.Duration(form.Interval) * time.Hour)
if err := models.UpdateMirror(ctx.Repo.Mirror); err != nil {
log.Error(4, "UpdateMirror: %v", err)
}
}
}
// ctx.Flash.Success("Repository options has been successfully updated.")
// ctx.Redirect(fmt.Sprintf("/%s/%s/settings", ctx.Repo.Owner.Name, ctx.Repo.Repository.Name))
// case "transfer":
// if len(ctx.Repo.Repository.Name) == 0 || ctx.Repo.Repository.Name != ctx.Query("repository") {
// ctx.RenderWithErr("Please make sure you entered repository name is correct.", SETTING, nil)
// return
// } else if ctx.Repo.Repository.IsMirror {
// ctx.Error(404)
// return
// }
ctx.Flash.Success("Repository options has been successfully updated.")
ctx.Redirect(fmt.Sprintf("/%s/%s/settings", ctx.Repo.Owner.Name, ctx.Repo.Repository.Name))
case "transfer":
if len(ctx.Repo.Repository.Name) == 0 || ctx.Repo.Repository.Name != ctx.Query("repository") {
ctx.RenderWithErr("Please make sure you entered repository name is correct.", SETTING, nil)
return
} else if ctx.Repo.Repository.IsMirror {
ctx.Error(404)
return
}
// newOwner := ctx.Query("owner")
// // Check if new owner exists.
// isExist, err := models.IsUserExist(newOwner)
// if err != nil {
// ctx.Handle(500, "setting.SettingPost(transfer: check existence)", err)
// return
// } else if !isExist {
// ctx.RenderWithErr("Please make sure you entered owner name is correct.", SETTING, nil)
// return
// } else if err = models.TransferOwnership(ctx.Repo.Owner, newOwner, ctx.Repo.Repository); err != nil {
// ctx.Handle(500, "setting.SettingPost(transfer repository)", err)
// return
// }
// log.Trace("%s Repository transfered: %s/%s -> %s", ctx.Req.RequestURI, ctx.User.Name, ctx.Repo.Repository.Name, newOwner)
newOwner := ctx.Query("owner")
// Check if new owner exists.
isExist, err := models.IsUserExist(newOwner)
if err != nil {
ctx.Handle(500, "setting.SettingPost(transfer: check existence)", err)
return
} else if !isExist {
ctx.RenderWithErr("Please make sure you entered owner name is correct.", SETTING, nil)
return
} else if err = models.TransferOwnership(ctx.Repo.Owner, newOwner, ctx.Repo.Repository); err != nil {
ctx.Handle(500, "setting.SettingPost(transfer repository)", err)
return
}
log.Trace("%s Repository transfered: %s/%s -> %s", ctx.Req.RequestURI, ctx.User.Name, ctx.Repo.Repository.Name, newOwner)
// ctx.Redirect("/")
// case "delete":
// if len(ctx.Repo.Repository.Name) == 0 || ctx.Repo.Repository.Name != ctx.Query("repository") {
// ctx.RenderWithErr("Please make sure you entered repository name is correct.", SETTING, nil)
// return
// }
ctx.Redirect("/")
case "delete":
if len(ctx.Repo.Repository.Name) == 0 || ctx.Repo.Repository.Name != ctx.Query("repository") {
ctx.RenderWithErr("Please make sure you entered repository name is correct.", SETTING, nil)
return
}
// if ctx.Repo.Owner.IsOrganization() &&
// !ctx.Repo.Owner.IsOrgOwner(ctx.User.Id) {
// ctx.Error(403)
// return
// }
if ctx.Repo.Owner.IsOrganization() &&
!ctx.Repo.Owner.IsOrgOwner(ctx.User.Id) {
ctx.Error(403)
return
}
// if err := models.DeleteRepository(ctx.Repo.Owner.Id, ctx.Repo.Repository.Id, ctx.Repo.Owner.Name); err != nil {
// ctx.Handle(500, "setting.Delete(DeleteRepository)", err)
// return
// }
// log.Trace("%s Repository deleted: %s/%s", ctx.Req.RequestURI, ctx.Repo.Owner.LowerName, ctx.Repo.Repository.LowerName)
if err := models.DeleteRepository(ctx.Repo.Owner.Id, ctx.Repo.Repository.Id, ctx.Repo.Owner.Name); err != nil {
ctx.Handle(500, "setting.Delete(DeleteRepository)", err)
return
}
log.Trace("%s Repository deleted: %s/%s", ctx.Req.RequestURI, ctx.Repo.Owner.LowerName, ctx.Repo.Repository.LowerName)
// if ctx.Repo.Owner.IsOrganization() {
// ctx.Redirect("/org/" + ctx.Repo.Owner.Name + "/dashboard")
// } else {
// ctx.Redirect("/")
// }
// }
// }
if ctx.Repo.Owner.IsOrganization() {
ctx.Redirect("/org/" + ctx.Repo.Owner.Name + "/dashboard")
} else {
ctx.Redirect("/")
}
}
}
// func Collaboration(ctx *middleware.Context) {
// repoLink := strings.TrimPrefix(ctx.Repo.RepoLink, "/")
// ctx.Data["IsRepoToolbarCollaboration"] = true
// ctx.Data["Title"] = repoLink + " - collaboration"
func Collaboration(ctx *middleware.Context) {
repoLink := strings.TrimPrefix(ctx.Repo.RepoLink, "/")
ctx.Data["IsRepoToolbarCollaboration"] = true
ctx.Data["Title"] = repoLink + " - collaboration"
// // Delete collaborator.
// remove := strings.ToLower(ctx.Query("remove"))
// if len(remove) > 0 && remove != ctx.Repo.Owner.LowerName {
// if err := models.DeleteAccess(&models.Access{UserName: remove, RepoName: repoLink}); err != nil {
// ctx.Handle(500, "setting.Collaboration(DeleteAccess)", err)
// return
// }
// ctx.Flash.Success("Collaborator has been removed.")
// ctx.Redirect(ctx.Repo.RepoLink + "/settings/collaboration")
// return
// }
// Delete collaborator.
remove := strings.ToLower(ctx.Query("remove"))
if len(remove) > 0 && remove != ctx.Repo.Owner.LowerName {
if err := models.DeleteAccess(&models.Access{UserName: remove, RepoName: repoLink}); err != nil {
ctx.Handle(500, "setting.Collaboration(DeleteAccess)", err)
return
}
ctx.Flash.Success("Collaborator has been removed.")
ctx.Redirect(ctx.Repo.RepoLink + "/settings/collaboration")
return
}
// names, err := models.GetCollaboratorNames(repoLink)
// if err != nil {
// ctx.Handle(500, "setting.Collaboration(GetCollaborators)", err)
// return
// }
names, err := models.GetCollaboratorNames(repoLink)
if err != nil {
ctx.Handle(500, "setting.Collaboration(GetCollaborators)", err)
return
}
// us := make([]*models.User, len(names))
// for i, name := range names {
// us[i], err = models.GetUserByName(name)
// if err != nil {
// ctx.Handle(500, "setting.Collaboration(GetUserByName)", err)
// return
// }
// }
us := make([]*models.User, len(names))
for i, name := range names {
us[i], err = models.GetUserByName(name)
if err != nil {
ctx.Handle(500, "setting.Collaboration(GetUserByName)", err)
return
}
}
// ctx.Data["Collaborators"] = us
// ctx.HTML(200, COLLABORATION)
// }
ctx.Data["Collaborators"] = us
ctx.HTML(200, COLLABORATION)
}
// func CollaborationPost(ctx *middleware.Context) {
// repoLink := strings.TrimPrefix(ctx.Repo.RepoLink, "/")
// name := strings.ToLower(ctx.Query("collaborator"))
// if len(name) == 0 || ctx.Repo.Owner.LowerName == name {
// ctx.Redirect(ctx.Req.RequestURI)
// return
// }
// has, err := models.HasAccess(name, repoLink, models.WRITABLE)
// if err != nil {
// ctx.Handle(500, "setting.CollaborationPost(HasAccess)", err)
// return
// } else if has {
// ctx.Redirect(ctx.Req.RequestURI)
// return
// }
func CollaborationPost(ctx *middleware.Context) {
repoLink := strings.TrimPrefix(ctx.Repo.RepoLink, "/")
name := strings.ToLower(ctx.Query("collaborator"))
if len(name) == 0 || ctx.Repo.Owner.LowerName == name {
ctx.Redirect(ctx.Req.RequestURI)
return
}
has, err := models.HasAccess(name, repoLink, models.WRITABLE)
if err != nil {
ctx.Handle(500, "setting.CollaborationPost(HasAccess)", err)
return
} else if has {
ctx.Redirect(ctx.Req.RequestURI)
return
}
// u, err := models.GetUserByName(name)
// if err != nil {
// if err == models.ErrUserNotExist {
// ctx.Flash.Error("Given user does not exist.")
// ctx.Redirect(ctx.Req.RequestURI)
// } else {
// ctx.Handle(500, "setting.CollaborationPost(GetUserByName)", err)
// }
// return
// }
u, err := models.GetUserByName(name)
if err != nil {
if err == models.ErrUserNotExist {
ctx.Flash.Error("Given user does not exist.")
ctx.Redirect(ctx.Req.RequestURI)
} else {
ctx.Handle(500, "setting.CollaborationPost(GetUserByName)", err)
}
return
}
// if err = models.AddAccess(&models.Access{UserName: name, RepoName: repoLink,
// Mode: models.WRITABLE}); err != nil {
// ctx.Handle(500, "setting.CollaborationPost(AddAccess)", err)
// return
// }
if err = models.AddAccess(&models.Access{UserName: name, RepoName: repoLink,
Mode: models.WRITABLE}); err != nil {
ctx.Handle(500, "setting.CollaborationPost(AddAccess)", err)
return
}
// if setting.Service.EnableNotifyMail {
// if err = mailer.SendCollaboratorMail(ctx.Render, u, ctx.User, ctx.Repo.Repository); err != nil {
// ctx.Handle(500, "setting.CollaborationPost(SendCollaboratorMail)", err)
// return
// }
// }
if setting.Service.EnableNotifyMail {
if err = mailer.SendCollaboratorMail(ctx.Render, u, ctx.User, ctx.Repo.Repository); err != nil {
ctx.Handle(500, "setting.CollaborationPost(SendCollaboratorMail)", err)
return
}
}
// ctx.Flash.Success("New collaborator has been added.")
// ctx.Redirect(ctx.Req.RequestURI)
// }
ctx.Flash.Success("New collaborator has been added.")
ctx.Redirect(ctx.Req.RequestURI)
}
// func WebHooks(ctx *middleware.Context) {
// ctx.Data["IsRepoToolbarWebHooks"] = true
// ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Webhooks"
func WebHooks(ctx *middleware.Context) {
ctx.Data["IsRepoToolbarWebHooks"] = true
ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Webhooks"
// // Delete webhook.
// remove, _ := base.StrTo(ctx.Query("remove")).Int64()
// if remove > 0 {
// if err := models.DeleteWebhook(remove); err != nil {
// ctx.Handle(500, "setting.WebHooks(DeleteWebhook)", err)
// return
// }
// ctx.Flash.Success("Webhook has been removed.")
// ctx.Redirect(ctx.Repo.RepoLink + "/settings/hooks")
// return
// }
// Delete webhook.
remove := com.StrTo(ctx.Query("remove")).MustInt64()
if remove > 0 {
if err := models.DeleteWebhook(remove); err != nil {
ctx.Handle(500, "setting.WebHooks(DeleteWebhook)", err)
return
}
ctx.Flash.Success("Webhook has been removed.")
ctx.Redirect(ctx.Repo.RepoLink + "/settings/hooks")
return
}
// ws, err := models.GetWebhooksByRepoId(ctx.Repo.Repository.Id)
// if err != nil {
// ctx.Handle(500, "setting.WebHooks(GetWebhooksByRepoId)", err)
// return
// }
ws, err := models.GetWebhooksByRepoId(ctx.Repo.Repository.Id)
if err != nil {
ctx.Handle(500, "setting.WebHooks(GetWebhooksByRepoId)", err)
return
}
// ctx.Data["Webhooks"] = ws
// ctx.HTML(200, HOOKS)
// }
ctx.Data["Webhooks"] = ws
ctx.HTML(200, HOOKS)
}
// func WebHooksAdd(ctx *middleware.Context) {
// ctx.Data["IsRepoToolbarWebHooks"] = true
// ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Add Webhook"
// ctx.HTML(200, HOOK_ADD)
// }
func WebHooksAdd(ctx *middleware.Context) {
ctx.Data["IsRepoToolbarWebHooks"] = true
ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Add Webhook"
ctx.HTML(200, HOOK_ADD)
}
// func WebHooksAddPost(ctx *middleware.Context, form auth.NewWebhookForm) {
// ctx.Data["IsRepoToolbarWebHooks"] = true
// ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Add Webhook"
func WebHooksAddPost(ctx *middleware.Context, form auth.NewWebhookForm) {
ctx.Data["IsRepoToolbarWebHooks"] = true
ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Add Webhook"
// if ctx.HasError() {
// ctx.HTML(200, HOOK_ADD)
// return
// }
if ctx.HasError() {
ctx.HTML(200, HOOK_ADD)
return
}
// ct := models.JSON
// if form.ContentType == "2" {
// ct = models.FORM
// }
ct := models.JSON
if form.ContentType == "2" {
ct = models.FORM
}
// w := &models.Webhook{
// RepoId: ctx.Repo.Repository.Id,
// Url: form.Url,
// ContentType: ct,
// Secret: form.Secret,
// HookEvent: &models.HookEvent{
// PushOnly: form.PushOnly,
// },
// IsActive: form.Active,
// }
// if err := w.UpdateEvent(); err != nil {
// ctx.Handle(500, "setting.WebHooksAddPost(UpdateEvent)", err)
// return
// } else if err := models.CreateWebhook(w); err != nil {
// ctx.Handle(500, "setting.WebHooksAddPost(CreateWebhook)", err)
// return
// }
w := &models.Webhook{
RepoId: ctx.Repo.Repository.Id,
Url: form.Url,
ContentType: ct,
Secret: form.Secret,
HookEvent: &models.HookEvent{
PushOnly: form.PushOnly,
},
IsActive: form.Active,
}
if err := w.UpdateEvent(); err != nil {
ctx.Handle(500, "setting.WebHooksAddPost(UpdateEvent)", err)
return
} else if err := models.CreateWebhook(w); err != nil {
ctx.Handle(500, "setting.WebHooksAddPost(CreateWebhook)", err)
return
}
// ctx.Flash.Success("New webhook has been added.")
// ctx.Redirect(ctx.Repo.RepoLink + "/settings/hooks")
// }
ctx.Flash.Success("New webhook has been added.")
ctx.Redirect(ctx.Repo.RepoLink + "/settings/hooks")
}
// func WebHooksEdit(ctx *middleware.Context, params martini.Params) {
// ctx.Data["IsRepoToolbarWebHooks"] = true
// ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Webhook"
func WebHooksEdit(ctx *middleware.Context) {
ctx.Data["IsRepoToolbarWebHooks"] = true
ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Webhook"
// hookId, _ := base.StrTo(params["id"]).Int64()
// if hookId == 0 {
// ctx.Handle(404, "setting.WebHooksEdit", nil)
// return
// }
hookId := com.StrTo(ctx.Params(":id")).MustInt64()
if hookId == 0 {
ctx.Handle(404, "setting.WebHooksEdit", nil)
return
}
// w, err := models.GetWebhookById(hookId)
// if err != nil {
// if err == models.ErrWebhookNotExist {
// ctx.Handle(404, "setting.WebHooksEdit(GetWebhookById)", nil)
// } else {
// ctx.Handle(500, "setting.WebHooksEdit(GetWebhookById)", err)
// }
// return
// }
w, err := models.GetWebhookById(hookId)
if err != nil {
if err == models.ErrWebhookNotExist {
ctx.Handle(404, "setting.WebHooksEdit(GetWebhookById)", nil)
} else {
ctx.Handle(500, "setting.WebHooksEdit(GetWebhookById)", err)
}
return
}
// w.GetEvent()
// ctx.Data["Webhook"] = w
// ctx.HTML(200, HOOK_EDIT)
// }
w.GetEvent()
ctx.Data["Webhook"] = w
ctx.HTML(200, HOOK_EDIT)
}
// func WebHooksEditPost(ctx *middleware.Context, params martini.Params, form auth.NewWebhookForm) {
// ctx.Data["IsRepoToolbarWebHooks"] = true
// ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Webhook"
func WebHooksEditPost(ctx *middleware.Context, form auth.NewWebhookForm) {
ctx.Data["IsRepoToolbarWebHooks"] = true
ctx.Data["Title"] = strings.TrimPrefix(ctx.Repo.RepoLink, "/") + " - Webhook"
// hookId, _ := base.StrTo(params["id"]).Int64()
// if hookId == 0 {
// ctx.Handle(404, "setting.WebHooksEditPost", nil)
// return
// }
hookId := com.StrTo(ctx.Params(":id")).MustInt64()
if hookId == 0 {
ctx.Handle(404, "setting.WebHooksEditPost", nil)
return
}
// w, err := models.GetWebhookById(hookId)
// if err != nil {
// if err == models.ErrWebhookNotExist {
// ctx.Handle(404, "setting.WebHooksEditPost(GetWebhookById)", nil)
// } else {
// ctx.Handle(500, "setting.WebHooksEditPost(GetWebhookById)", err)
// }
// return
// }
w, err := models.GetWebhookById(hookId)
if err != nil {
if err == models.ErrWebhookNotExist {
ctx.Handle(404, "GetWebhookById", nil)
} else {
ctx.Handle(500, "GetWebhookById", err)
}
return
}
// if ctx.HasError() {
// ctx.HTML(200, HOOK_EDIT)
// return
// }
if ctx.HasError() {
ctx.HTML(200, HOOK_EDIT)
return
}
// ct := models.JSON
// if form.ContentType == "2" {
// ct = models.FORM
// }
ct := models.JSON
if form.ContentType == "2" {
ct = models.FORM
}
// w.Url = form.Url
// w.ContentType = ct
// w.Secret = form.Secret
// w.HookEvent = &models.HookEvent{
// PushOnly: form.PushOnly,
// }
// w.IsActive = form.Active
// if err := w.UpdateEvent(); err != nil {
// ctx.Handle(500, "setting.WebHooksEditPost(UpdateEvent)", err)
// return
// } else if err := models.UpdateWebhook(w); err != nil {
// ctx.Handle(500, "setting.WebHooksEditPost(WebHooksEditPost)", err)
// return
// }
w.Url = form.Url
w.ContentType = ct
w.Secret = form.Secret
w.HookEvent = &models.HookEvent{
PushOnly: form.PushOnly,
}
w.IsActive = form.Active
if err := w.UpdateEvent(); err != nil {
ctx.Handle(500, "UpdateEvent", err)
return
} else if err := models.UpdateWebhook(w); err != nil {
ctx.Handle(500, "WebHooksEditPost", err)
return
}
// ctx.Flash.Success("Webhook has been updated.")
// ctx.Redirect(fmt.Sprintf("%s/settings/hooks/%d", ctx.Repo.RepoLink, hookId))
// }
ctx.Flash.Success("Webhook has been updated.")
ctx.Redirect(fmt.Sprintf("%s/settings/hooks/%d", ctx.Repo.RepoLink, hookId))
}

View File

@@ -28,11 +28,11 @@ func Dashboard(ctx *middleware.Context) {
ctx.Data["PageIsDashboard"] = true
ctx.Data["PageIsNews"] = true
// if err := ctx.User.GetOrganizations(); err != nil {
// ctx.Handle(500, "home.Dashboard(GetOrganizations)", err)
// return
// }
// ctx.Data["Orgs"] = ctx.User.Orgs
if err := ctx.User.GetOrganizations(); err != nil {
ctx.Handle(500, "home.Dashboard(GetOrganizations)", err)
return
}
ctx.Data["Orgs"] = ctx.User.Orgs
ctx.Data["ContextUser"] = ctx.User
repos, err := models.GetRepositories(ctx.User.Id, true)
@@ -40,13 +40,16 @@ func Dashboard(ctx *middleware.Context) {
ctx.Handle(500, "GetRepositories", err)
return
}
for _, repo := range repos {
repo.Owner = ctx.User
}
ctx.Data["Repos"] = repos
// ctx.Data["CollaborativeRepos"], err = models.GetCollaborativeRepos(ctx.User.Name)
// if err != nil {
// ctx.Handle(500, "home.Dashboard(GetCollaborativeRepos)", err)
// return
// }
ctx.Data["CollaborativeRepos"], err = models.GetCollaborativeRepos(ctx.User.Name)
if err != nil {
ctx.Handle(500, "GetCollaborativeRepos", err)
return
}
actions, err := models.GetFeeds(ctx.User.Id, 0, true)
if err != nil {

View File

@@ -19,6 +19,7 @@ const (
SETTINGS_PASSWORD base.TplName = "user/settings/password"
SETTINGS_SSH_KEYS base.TplName = "user/settings/sshkeys"
SETTINGS_SOCIAL base.TplName = "user/settings/social"
SETTINGS_ORGS base.TplName = "user/settings/orgs"
SETTINGS_DELETE base.TplName = "user/settings/delete"
NOTIFICATION base.TplName = "user/notification"
SECURITY base.TplName = "user/security"
@@ -232,6 +233,13 @@ func SettingsSocial(ctx *middleware.Context) {
ctx.HTML(200, SETTINGS_SOCIAL)
}
func SettingsOrgs(ctx *middleware.Context) {
ctx.Data["Title"] = ctx.Tr("settings")
ctx.Data["PageIsUserSettings"] = true
ctx.Data["PageIsSettingsOrgs"] = true
ctx.HTML(200, SETTINGS_ORGS)
}
func SettingsDelete(ctx *middleware.Context) {
ctx.Data["Title"] = ctx.Tr("settings")
ctx.Data["PageIsUserSettings"] = true