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

add tree view

This commit is contained in:
Lunny Xiao
2014-03-14 23:54:16 +08:00
34 changed files with 716 additions and 166 deletions

View File

@@ -5,9 +5,10 @@
package repo
import (
"net/http"
"github.com/martini-contrib/render"
"github.com/martini-contrib/sessions"
"net/http"
"github.com/gogits/gogs/models"
"github.com/gogits/gogs/modules/auth"
@@ -46,7 +47,7 @@ func Create(form auth.CreateRepoForm, req *http.Request, r render.Render, data b
if err == nil {
if _, err = models.CreateRepository(user,
form.RepoName, form.Description, form.Language, form.License,
form.Visibility == "private", form.InitReadme == "true"); err == nil {
form.Visibility == "private", form.InitReadme == "on"); err == nil {
if err == nil {
data["RepoName"] = user.Name + "/" + form.RepoName
r.HTML(200, "repo/created", data)
@@ -63,9 +64,7 @@ func Create(form auth.CreateRepoForm, req *http.Request, r render.Render, data b
return
}
data["ErrorMsg"] = err
log.Error("repo.Create: %v", err)
r.HTML(200, "base/error", data)
log.Handle(200, "repo.Create", data, r, err)
}
func Delete(form auth.DeleteRepoForm, req *http.Request, r render.Render, data base.TmplData, session sessions.Session) {
@@ -77,13 +76,11 @@ func Delete(form auth.DeleteRepoForm, req *http.Request, r render.Render, data b
}
if err := models.DeleteRepository(form.UserId, form.RepoId, form.UserName); err != nil {
data["ErrorMsg"] = err
log.Error("repo.Delete: %v", err)
r.HTML(200, "base/error", data)
log.Handle(200, "repo.Delete", data, r, err)
return
}
r.Redirect("/", 200)
r.Redirect("/", 302)
}
func List(req *http.Request, r render.Render, data base.TmplData, session sessions.Session) {
@@ -96,9 +93,7 @@ func List(req *http.Request, r render.Render, data base.TmplData, session sessio
data["Title"] = "Repositories"
repos, err := models.GetRepositories(u)
if err != nil {
data["ErrorMsg"] = err
log.Error("repo.List: %v", err)
r.HTML(200, "base/error", data)
log.Handle(200, "repo.List", data, r, err)
return
}

View File

@@ -1,6 +1,7 @@
package repo
import (
"strings"
"github.com/codegangsta/martini"
"github.com/martini-contrib/render"
@@ -13,15 +14,27 @@ func Single(params martini.Params, r render.Render, data base.TmplData) {
if !data["IsRepositoryValid"].(bool) {
return
}
files, err := models.GetReposFiles(params["username"], params["reponame"], "HEAD", "/")
if params["branchname"] == "" {
params["branchname"] = "master"
}
treename := params["_1"]
files, err := models.GetReposFiles(params["username"], params["reponame"],
params["branchname"], treename)
if err != nil {
data["ErrorMsg"] = err
log.Error("repo.List: %v", err)
r.HTML(200, "base/error", data)
log.Handle(200, "repo.Single", data, r, err)
return
}
data["Username"] = params["username"]
data["Reponame"] = params["reponame"]
data["Branchname"] = params["branchname"]
treenames := strings.Split(treename, "/")
Paths := make([]string, 0)
for i, _ := range treenames {
Paths = append(Paths, strings.Join(treenames[0:i+1], "/"))
}
data["Paths"] = Paths
data["Treenames"] = treenames
data["IsRepoToolbarSource"] = true
data["Files"] = files

View File

@@ -17,12 +17,72 @@ import (
"github.com/gogits/gogs/modules/log"
)
func Setting(r render.Render, data base.TmplData, session sessions.Session) {
func Setting(form auth.UpdateProfileForm, r render.Render, data base.TmplData, req *http.Request, session sessions.Session) {
data["Title"] = "Setting"
data["PageIsUserSetting"] = true
user := auth.SignedInUser(session)
data["Owner"] = user
if req.Method == "GET" {
r.HTML(200, "user/setting", data)
return
}
if hasErr, ok := data["HasError"]; ok && hasErr.(bool) {
r.HTML(200, "user/setting", data)
return
}
user.Email = form.Email
user.Website = form.Website
user.Location = form.Location
user.Avatar = base.EncodeMd5(form.Avatar)
user.AvatarEmail = form.Avatar
if err := models.UpdateUser(user); err != nil {
log.Handle(200, "setting.Setting", data, r, err)
return
}
data["IsSuccess"] = true
r.HTML(200, "user/setting", data)
}
func SettingPassword(form auth.UpdatePasswdForm, r render.Render, data base.TmplData, session sessions.Session, req *http.Request) {
data["Title"] = "Password"
data["PageIsUserSetting"] = true
if req.Method == "GET" {
r.HTML(200, "user/password", data)
return
}
user := auth.SignedInUser(session)
newUser := &models.User{Passwd: form.NewPasswd}
if err := newUser.EncodePasswd(); err != nil {
log.Handle(200, "setting.SettingPassword", data, r, err)
return
}
if user.Passwd != newUser.Passwd {
data["HasError"] = true
data["ErrorMsg"] = "Old password is not correct"
} else if form.NewPasswd != form.RetypePasswd {
data["HasError"] = true
data["ErrorMsg"] = "New password and re-type password are not same"
} else {
user.Passwd = newUser.Passwd
if err := models.UpdateUser(user); err != nil {
log.Handle(200, "setting.SettingPassword", data, r, err)
return
}
data["IsSuccess"] = true
}
data["Owner"] = user
r.HTML(200, "user/password", data)
}
func SettingSSHKeys(form auth.AddSSHKeyForm, r render.Render, data base.TmplData, req *http.Request, session sessions.Session) {
data["Title"] = "SSH Keys"
@@ -94,3 +154,17 @@ func SettingSSHKeys(form auth.AddSSHKeyForm, r render.Render, data base.TmplData
data["Keys"] = keys
r.HTML(200, "user/publickey", data)
}
func SettingNotification(r render.Render, data base.TmplData) {
// todo user setting notification
data["Title"] = "Notification"
data["PageIsUserSetting"] = true
r.HTML(200, "user/notification", data)
}
func SettingSecurity(r render.Render, data base.TmplData) {
// todo user setting security
data["Title"] = "Security"
data["PageIsUserSetting"] = true
r.HTML(200, "user/security", data)
}

View File

@@ -22,9 +22,7 @@ func Dashboard(r render.Render, data base.TmplData, session sessions.Session) {
data["PageIsUserDashboard"] = true
repos, err := models.GetRepositories(&models.User{Id: auth.SignedInId(session)})
if err != nil {
data["ErrorMsg"] = err
log.Error("dashboard: %v", err)
r.HTML(200, "base/error", data)
log.Handle(200, "user.Dashboard", data, r, err)
return
}
data["MyRepos"] = repos
@@ -37,14 +35,11 @@ func Profile(params martini.Params, r render.Render, data base.TmplData, session
// TODO: Need to check view self or others.
user, err := models.GetUserByName(params["username"])
if err != nil {
data["ErrorMsg"] = err
log.Error("user.Profile: %v", err)
r.HTML(200, "base/error", data)
log.Handle(200, "user.Profile", data, r, err)
return
}
data["Avatar"] = user.Avatar
data["Username"] = user.Name
data["Owner"] = user
r.HTML(200, "user/profile", data)
}
@@ -71,9 +66,7 @@ func SignIn(form auth.LogInForm, data base.TmplData, req *http.Request, r render
return
}
data["ErrorMsg"] = err
log.Error("user.SignIn: %v", err)
r.HTML(200, "base/error", data)
log.Handle(200, "user.SignIn", data, r, err)
return
}
@@ -130,9 +123,7 @@ func SignUp(form auth.RegisterForm, data base.TmplData, req *http.Request, r ren
data["ErrorMsg"] = "E-mail address has been already used"
r.HTML(200, "user/signup", data)
default:
data["ErrorMsg"] = err
log.Error("user.SignUp: %v", data)
r.HTML(200, "base/error", nil)
log.Handle(200, "user.SignUp", data, r, err)
}
return
}
@@ -156,9 +147,7 @@ func Delete(data base.TmplData, req *http.Request, session sessions.Session, r r
case models.ErrUserOwnRepos.Error():
data["ErrorMsg"] = "Your account still have ownership of repository, you have to delete or transfer them first."
default:
data["ErrorMsg"] = err
log.Error("user.Delete: %v", data)
r.HTML(200, "base/error", nil)
log.Handle(200, "user.Delete", data, r, err)
return
}
}