mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	single repository page ui, add spec handler to get repo
This commit is contained in:
		
							
								
								
									
										6
									
								
								gogs.go
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								gogs.go
									
									
									
									
									
								
							@@ -20,19 +20,19 @@ import (
 | 
			
		||||
// Test that go1.1 tag above is included in builds. main.go refers to this definition.
 | 
			
		||||
const go11tag = true
 | 
			
		||||
 | 
			
		||||
const APP_VER = "0.0.5.0311"
 | 
			
		||||
const APP_VER = "0.0.5.0313"
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	runtime.GOMAXPROCS(runtime.NumCPU())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func checkRunUser() bool {
 | 
			
		||||
	user, err := user.Current()
 | 
			
		||||
	u, err := user.Current()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		// TODO: log
 | 
			
		||||
		return false
 | 
			
		||||
	}
 | 
			
		||||
	return user.Username == base.Cfg.MustValue("", "RUN_USER")
 | 
			
		||||
	return u.Username == base.Cfg.MustValue("", "RUN_USER")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func main() {
 | 
			
		||||
 
 | 
			
		||||
@@ -92,7 +92,7 @@ func setEngine() {
 | 
			
		||||
 | 
			
		||||
func init() {
 | 
			
		||||
	setEngine()
 | 
			
		||||
	err := orm.Sync(new(User), new(PublicKey), new(Repository), new(Access))
 | 
			
		||||
	err := orm.Sync(new(User), new(PublicKey), new(Repository), new(Access), new(Action))
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		fmt.Printf("sync database struct error: %s\n", err)
 | 
			
		||||
		os.Exit(2)
 | 
			
		||||
 
 | 
			
		||||
@@ -137,7 +137,8 @@ func CreateRepository(user *User, repoName, desc, repoLang, license string, priv
 | 
			
		||||
		}
 | 
			
		||||
		return nil, err
 | 
			
		||||
	}
 | 
			
		||||
	return repo, nil
 | 
			
		||||
 | 
			
		||||
	return repo, NewRepoAction(user, repo)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// InitRepository initializes README and .gitignore if needed.
 | 
			
		||||
 
 | 
			
		||||
@@ -61,26 +61,6 @@ type Follow struct {
 | 
			
		||||
	Created  time.Time `xorm:"created"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Operation types of repository.
 | 
			
		||||
const (
 | 
			
		||||
	OP_CREATE_REPO = iota + 1
 | 
			
		||||
	OP_DELETE_REPO
 | 
			
		||||
	OP_STAR_REPO
 | 
			
		||||
	OP_FOLLOW_REPO
 | 
			
		||||
	OP_COMMIT_REPO
 | 
			
		||||
	OP_PULL_REQUEST
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
// An Action represents
 | 
			
		||||
type Action struct {
 | 
			
		||||
	Id      int64
 | 
			
		||||
	UserId  int64
 | 
			
		||||
	OpType  int
 | 
			
		||||
	RepoId  int64
 | 
			
		||||
	Content string
 | 
			
		||||
	Created time.Time `xorm:"created"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var (
 | 
			
		||||
	ErrUserOwnRepos     = errors.New("User still have ownership of repositories")
 | 
			
		||||
	ErrUserAlreadyExist = errors.New("User already exist")
 | 
			
		||||
 
 | 
			
		||||
@@ -90,6 +90,11 @@ func (f *LogInForm) Validate(errors *binding.Errors, req *http.Request, context
 | 
			
		||||
	validate(errors, data, f)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type FeedsForm struct {
 | 
			
		||||
	UserId int64 `form:"userid" binding:"Required"`
 | 
			
		||||
	Offset int64 `form:"offset"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func getMinMaxSize(field reflect.StructField) string {
 | 
			
		||||
	for _, rule := range strings.Split(field.Tag.Get("binding"), ";") {
 | 
			
		||||
		if strings.HasPrefix(rule, "MinSize(") || strings.HasPrefix(rule, "MaxSize(") {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,10 +2,11 @@ package repo
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"github.com/codegangsta/martini"
 | 
			
		||||
	"github.com/martini-contrib/render"
 | 
			
		||||
 | 
			
		||||
	"github.com/gogits/gogs/models"
 | 
			
		||||
	"github.com/gogits/gogs/modules/base"
 | 
			
		||||
	"github.com/gogits/gogs/modules/log"
 | 
			
		||||
	"github.com/martini-contrib/render"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
func Single(params martini.Params, r render.Render, data base.TmplData) {
 | 
			
		||||
@@ -20,7 +21,10 @@ func Single(params martini.Params, r render.Render, data base.TmplData) {
 | 
			
		||||
		r.HTML(200, "base/error", data)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	data["Files"] = files
 | 
			
		||||
 | 
			
		||||
	data["IsRepoToolbarSource"] = true
 | 
			
		||||
 | 
			
		||||
	data["Files"] = files
 | 
			
		||||
 | 
			
		||||
	r.HTML(200, "repo/single", data)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -5,6 +5,7 @@
 | 
			
		||||
package user
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"net/http"
 | 
			
		||||
 | 
			
		||||
	"github.com/codegangsta/martini"
 | 
			
		||||
@@ -140,7 +141,6 @@ func SignUp(form auth.RegisterForm, data base.TmplData, req *http.Request, r ren
 | 
			
		||||
	r.Redirect("/user/login")
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// TODO: unfinished
 | 
			
		||||
func Delete(data base.TmplData, req *http.Request, session sessions.Session, r render.Render) {
 | 
			
		||||
	data["Title"] = "Delete Account"
 | 
			
		||||
 | 
			
		||||
@@ -166,3 +166,21 @@ func Delete(data base.TmplData, req *http.Request, session sessions.Session, r r
 | 
			
		||||
 | 
			
		||||
	r.HTML(200, "user/delete", data)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func Feeds(form auth.FeedsForm, r render.Render) string {
 | 
			
		||||
	actions, err := models.GetFeeds(form.UserId, form.Offset)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err.Error()
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	length := len(actions)
 | 
			
		||||
	buf := bytes.NewBuffer([]byte("["))
 | 
			
		||||
	for i, action := range actions {
 | 
			
		||||
		buf.WriteString(action.Content)
 | 
			
		||||
		if i < length-1 {
 | 
			
		||||
			buf.WriteString(",")
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	buf.WriteString("]")
 | 
			
		||||
	return buf.String()
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										5
									
								
								web.go
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								web.go
									
									
									
									
									
								
							@@ -64,19 +64,20 @@ func runWeb(*cli.Context) {
 | 
			
		||||
	m.Any("/user/logout", auth.SignInRequire(true), user.SignOut)
 | 
			
		||||
	m.Any("/user/sign_up", auth.SignOutRequire(), binding.BindIgnErr(auth.RegisterForm{}), user.SignUp)
 | 
			
		||||
	m.Any("/user/delete", auth.SignInRequire(true), user.Delete)
 | 
			
		||||
	m.Get("/user/feeds", binding.Bind(auth.FeedsForm{}), user.Feeds)
 | 
			
		||||
 | 
			
		||||
	m.Any("/user/setting", auth.SignInRequire(true), user.Setting)
 | 
			
		||||
	m.Any("/user/setting/ssh", auth.SignInRequire(true), binding.BindIgnErr(auth.AddSSHKeyForm{}), user.SettingSSHKeys)
 | 
			
		||||
 | 
			
		||||
	m.Get("/user/:username", auth.SignInRequire(false), user.Profile)
 | 
			
		||||
 | 
			
		||||
	//m.Get("/:username/:reponame", repo.Repo)
 | 
			
		||||
 | 
			
		||||
	m.Any("/repo/create", auth.SignInRequire(true), binding.BindIgnErr(auth.CreateRepoForm{}), repo.Create)
 | 
			
		||||
	m.Any("/repo/delete", auth.SignInRequire(true), repo.Delete)
 | 
			
		||||
	m.Any("/repo/list", auth.SignInRequire(false), repo.List)
 | 
			
		||||
	m.Get("/:username/:reponame", auth.SignInRequire(false), auth.RepoAssignment(true), repo.Single)
 | 
			
		||||
 | 
			
		||||
	//m.Get("/:username/:reponame", repo.Repo)
 | 
			
		||||
 | 
			
		||||
	listenAddr := fmt.Sprintf("%s:%s",
 | 
			
		||||
		base.Cfg.MustValue("server", "HTTP_ADDR"),
 | 
			
		||||
		base.Cfg.MustValue("server", "HTTP_PORT", "3000"))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user