mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-31 03:18:24 +00: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