mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Merge branch 'master' of github.com:gogits/gogs
This commit is contained in:
		@@ -27,6 +27,13 @@ type Repo struct {
 | 
				
			|||||||
	Updated   time.Time `xorm:"updated"`
 | 
						Updated   time.Time `xorm:"updated"`
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type Star struct {
 | 
				
			||||||
 | 
						Id      int64
 | 
				
			||||||
 | 
						RepoId  int64
 | 
				
			||||||
 | 
						UserId  int64
 | 
				
			||||||
 | 
						Created time.Time `xorm:"created"`
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// check if repository is exist
 | 
					// check if repository is exist
 | 
				
			||||||
func IsRepositoryExist(user *User, reposName string) (bool, error) {
 | 
					func IsRepositoryExist(user *User, reposName string) (bool, error) {
 | 
				
			||||||
	repo := Repo{OwnerId: user.Id}
 | 
						repo := Repo{OwnerId: user.Id}
 | 
				
			||||||
@@ -121,6 +128,10 @@ func UnWatchRepository() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func ForkRepository(reposName string, userId int64) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func RepoPath(userName, repoName string) string {
 | 
					func RepoPath(userName, repoName string) string {
 | 
				
			||||||
	return filepath.Join(UserPath(userName), repoName+".git")
 | 
						return filepath.Join(UserPath(userName), repoName+".git")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,31 +5,182 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
body {
 | 
					body {
 | 
				
			||||||
	padding-top: 70px;
 | 
					    background: #F6F6F6;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.navbar {
 | 
					
 | 
				
			||||||
 | 
					/* override bs3 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.tooltip-inner{
 | 
				
			||||||
 | 
					    border-radius: 3px;
 | 
				
			||||||
 | 
					    background: #333;
 | 
				
			||||||
 | 
					    border: none;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.tooltip-arrow{
 | 
				
			||||||
 | 
					    border-bottom-color: #333 !important;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.fa{
 | 
				
			||||||
 | 
					    margin: 0 .5em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* gogits nav header */
 | 
				
			||||||
 | 
					.gogs-masthead {
 | 
				
			||||||
 | 
					    background-color: #428bca;
 | 
				
			||||||
 | 
					    box-shadow: inset 0 -2px 5px rgba(0, 0, 0, .1);
 | 
				
			||||||
    min-height: 45px;
 | 
					    min-height: 45px;
 | 
				
			||||||
 | 
					    padding: 2px 16px;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.navbar-brand {
 | 
					
 | 
				
			||||||
	height: 45px;
 | 
					/* gogits nav item link */
 | 
				
			||||||
	padding: 5px 10px 0px 10px;
 | 
					.gogs-nav-item {
 | 
				
			||||||
	border-left: 1px solid #e5e5e5;
 | 
					    position: relative;
 | 
				
			||||||
	border-right: 1px solid #e5e5e5;
 | 
					    display: inline-block;
 | 
				
			||||||
 | 
					    padding: 10px;
 | 
				
			||||||
 | 
					    font-weight: bold;
 | 
				
			||||||
 | 
					    color: #EEE;
 | 
				
			||||||
 | 
					    font-size: 100%;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.navbar-inverse .navbar-brand:focus, .navbar-inverse .navbar-brand:hover {
 | 
					
 | 
				
			||||||
	background-color: #f0f0f0;
 | 
					.gogs-nav-item:hover,
 | 
				
			||||||
 | 
					.gogs-nav-item:focus {
 | 
				
			||||||
 | 
					    color: #fff;
 | 
				
			||||||
 | 
					    text-decoration: none;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
.navbar-brand img {
 | 
					
 | 
				
			||||||
	width: 32px;
 | 
					.gogs-nav-item.navbar-btn {
 | 
				
			||||||
}
 | 
					    cursor: pointer;
 | 
				
			||||||
.navbar-nav > li > a {
 | 
					    margin-top: 8px;
 | 
				
			||||||
	font-size: 16px;
 | 
					 | 
				
			||||||
	padding-top: 13px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus {
 | 
					 | 
				
			||||||
	color: rgb(153, 153, 153);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.navbar-btn, .navbar .btn {
 | 
					 | 
				
			||||||
    padding: 5px 15px;
 | 
					    padding: 5px 15px;
 | 
				
			||||||
	margin-top: 7px;
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* gogits nav item active status */
 | 
				
			||||||
 | 
					.gogs-nav .active {
 | 
				
			||||||
 | 
					    color: #fff;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.gogs-nav .active:after {
 | 
				
			||||||
 | 
					    position: absolute;
 | 
				
			||||||
 | 
					    bottom: -2px;
 | 
				
			||||||
 | 
					    left: 50%;
 | 
				
			||||||
 | 
					    width: 0;
 | 
				
			||||||
 | 
					    height: 0;
 | 
				
			||||||
 | 
					    margin-left: -5px;
 | 
				
			||||||
 | 
					    vertical-align: middle;
 | 
				
			||||||
 | 
					    content: " ";
 | 
				
			||||||
 | 
					    border-right: 5px solid transparent;
 | 
				
			||||||
 | 
					    border-bottom: 5px solid;
 | 
				
			||||||
 | 
					    border-left: 5px solid transparent;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* gogits logo */
 | 
				
			||||||
 | 
					#gogs-logo {
 | 
				
			||||||
 | 
					    width: 28px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* gogits body */
 | 
				
			||||||
 | 
					#gogs-body {
 | 
				
			||||||
 | 
					    padding-top: 30px;
 | 
				
			||||||
 | 
					    padding-bottom: 60px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* gogits login card */
 | 
				
			||||||
 | 
					.gogs-card{
 | 
				
			||||||
 | 
					    margin: auto;
 | 
				
			||||||
 | 
					    padding: 30px;
 | 
				
			||||||
 | 
					    background: #fff;
 | 
				
			||||||
 | 
					    border: 1px solid #ccc;
 | 
				
			||||||
 | 
					    border-radius: 5px;
 | 
				
			||||||
 | 
					    box-sizing: border-box;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.gogs-card h3 {
 | 
				
			||||||
 | 
					    margin-top: 0;
 | 
				
			||||||
 | 
					    margin-bottom: 30px;
 | 
				
			||||||
 | 
					    padding-bottom: 20px;
 | 
				
			||||||
 | 
					    border-bottom: 1px solid #ccc;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-login-card{
 | 
				
			||||||
 | 
					    width: 600px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-login-card .form-control {
 | 
				
			||||||
 | 
					    padding: 6px 12px;
 | 
				
			||||||
 | 
					    box-sizing: content-box;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-login-card .control-label {
 | 
				
			||||||
 | 
					    height: 44px;
 | 
				
			||||||
 | 
					    line-height: 30px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.gogs-card .btn{
 | 
				
			||||||
 | 
					    cursor: pointer;
 | 
				
			||||||
 | 
					    margin-right: 1.2em;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-social-login{
 | 
				
			||||||
 | 
					    margin-top: 30px;
 | 
				
			||||||
 | 
					    padding-top: 20px;
 | 
				
			||||||
 | 
					    border-top: 1px solid #ccc;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-social-login .btn{
 | 
				
			||||||
 | 
					    float: none;
 | 
				
			||||||
 | 
					    margin: auto;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* gogs-user-profile */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-user-avatar{
 | 
				
			||||||
 | 
					    width: 200px;
 | 
				
			||||||
 | 
					    height: 200px;
 | 
				
			||||||
 | 
					    border-radius: 6px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-user-name{
 | 
				
			||||||
 | 
					    margin-top: 20px;
 | 
				
			||||||
 | 
					    font-size: 1.6em;
 | 
				
			||||||
 | 
					    font-weight: bold;
 | 
				
			||||||
 | 
					    margin-bottom: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-user-profile .profile-info .list-group-item{
 | 
				
			||||||
 | 
					    background-color: transparent;
 | 
				
			||||||
 | 
					    padding-top: 18px;
 | 
				
			||||||
 | 
					    color: #666;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-user-profile .profile-info .list-group-item a{
 | 
				
			||||||
 | 
					    margin: 0;
 | 
				
			||||||
 | 
					    padding: 0;
 | 
				
			||||||
 | 
					    display: inline;
 | 
				
			||||||
 | 
					    color: #0093c4;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-user-profile .profile-info .list-group{
 | 
				
			||||||
 | 
					    border-top: 1px solid #ccc;
 | 
				
			||||||
 | 
					    padding-bottom: 18px;
 | 
				
			||||||
 | 
					    border-bottom: 1px solid #ccc;
 | 
				
			||||||
 | 
					    padding-left: 18px;
 | 
				
			||||||
 | 
					    padding-right: 18px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-user-activity .tab-pane{
 | 
				
			||||||
 | 
					    padding: 20px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-user-act-tabs li.active a{
 | 
				
			||||||
 | 
					    border-bottom-color: #ddd;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* gogits repo create */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-repo-create{
 | 
				
			||||||
 | 
					    width: 800px;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#gogs-repo-create textarea[name=desc]{
 | 
				
			||||||
 | 
					    height: 8em;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								public/img/checkmark.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								public/img/checkmark.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 169 B  | 
							
								
								
									
										17
									
								
								public/js/app.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								public/js/app.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					var Gogits = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(function($){
 | 
				
			||||||
 | 
					    Gogits.showTooltips = function(){
 | 
				
			||||||
 | 
					        $("body").tooltip({
 | 
				
			||||||
 | 
					            selector: "[data-toggle=tooltip]"
 | 
				
			||||||
 | 
					            //container: "body"
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					    Gogits.showTab = function (selector, index) {
 | 
				
			||||||
 | 
					        if (!index) {
 | 
				
			||||||
 | 
					            index = 0;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        $(selector).tab("show");
 | 
				
			||||||
 | 
					        $(selector).find("li:eq(" + index + ") a").tab("show");
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					})(jQuery);
 | 
				
			||||||
@@ -13,7 +13,7 @@ import (
 | 
				
			|||||||
	"github.com/gogits/gogs/models"
 | 
						"github.com/gogits/gogs/models"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func AddPublickKey(req *http.Request, r render.Render) {
 | 
					func AddPublicKey(req *http.Request, r render.Render) {
 | 
				
			||||||
	if req.Method == "GET" {
 | 
						if req.Method == "GET" {
 | 
				
			||||||
		r.HTML(200, "user/publickey_add", map[string]interface{}{
 | 
							r.HTML(200, "user/publickey_add", map[string]interface{}{
 | 
				
			||||||
			"Title": "Add Public Key",
 | 
								"Title": "Add Public Key",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,8 +16,30 @@ import (
 | 
				
			|||||||
	"github.com/gogits/gogs/utils/log"
 | 
						"github.com/gogits/gogs/utils/log"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func SignIn(r render.Render) {
 | 
					func Profile(r render.Render) {
 | 
				
			||||||
	r.Redirect("/user/signup", 302)
 | 
						r.HTML(200, "user/profile", map[string]interface{}{
 | 
				
			||||||
 | 
							"Title": "Username",
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
						return
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					func SignIn(req *http.Request, r render.Render) {
 | 
				
			||||||
 | 
						if req.Method == "GET" {
 | 
				
			||||||
 | 
							r.HTML(200, "user/signin", map[string]interface{}{
 | 
				
			||||||
 | 
								"Title": "Log In",
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						// todo sign in
 | 
				
			||||||
 | 
						_, err := models.LoginUserPlain(req.FormValue("account"), req.FormValue("passwd"))
 | 
				
			||||||
 | 
						if err != nil {
 | 
				
			||||||
 | 
							r.HTML(200, "base/error", map[string]interface{}{
 | 
				
			||||||
 | 
								"Error": fmt.Sprintf("%v", err),
 | 
				
			||||||
 | 
							})
 | 
				
			||||||
 | 
							return
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
						r.Redirect("/")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func SignUp(req *http.Request, r render.Render) {
 | 
					func SignUp(req *http.Request, r render.Render) {
 | 
				
			||||||
@@ -47,9 +69,16 @@ func SignUp(req *http.Request, r render.Render) {
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	err = models.RegisterUser(u)
 | 
						err = models.RegisterUser(u)
 | 
				
			||||||
	r.HTML(403, "status/403", map[string]interface{}{
 | 
						if err != nil {
 | 
				
			||||||
		"Title": fmt.Sprintf("%v", err),
 | 
							if err != nil {
 | 
				
			||||||
 | 
								r.HTML(200, "base/error", map[string]interface{}{
 | 
				
			||||||
 | 
									"Error": fmt.Sprintf("%v", err),
 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
 | 
								return
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						r.Redirect("/")
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func Delete(req *http.Request, r render.Render) {
 | 
					func Delete(req *http.Request, r render.Render) {
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								templates/base/error.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								templates/base/error.tmpl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
				
			|||||||
 | 
					{{template "base/head" .}}
 | 
				
			||||||
 | 
					{{template "base/navbar" .}}
 | 
				
			||||||
 | 
					<div id="gogs-body" class="container">
 | 
				
			||||||
 | 
						An error is occupied : {{.Error}}
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					{{template "base/footer" .}}
 | 
				
			||||||
@@ -15,7 +15,7 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		<script src="/js/jquery-1.10.1.min.js"></script>
 | 
							<script src="/js/jquery-1.10.1.min.js"></script>
 | 
				
			||||||
		<script src="/js/bootstrap.min.js"></script>
 | 
							<script src="/js/bootstrap.min.js"></script>
 | 
				
			||||||
 | 
					        <script src="/js/app.js"></script>
 | 
				
			||||||
		<title>{{.Title}} | {{AppName}}</title>
 | 
							<title>{{.Title}} | {{AppName}}</title>
 | 
				
			||||||
	</head>
 | 
						</head>
 | 
				
			||||||
	<body>
 | 
						<body>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,4 +1,16 @@
 | 
				
			|||||||
<nav class="navbar navbar-inverse navbar-fixed-top">
 | 
					<div class="gogs-masthead" id="masthead">
 | 
				
			||||||
 | 
					    <div class="container">
 | 
				
			||||||
 | 
					        <nav class="gogs-nav">
 | 
				
			||||||
 | 
					            <a class="gogs-nav-item active" href="/"><img src="/img/favicon.png" alt="Gogs Logo" id="gogs-logo"></a>
 | 
				
			||||||
 | 
					            <a class="gogs-nav-item" href="#">Dashboard</a>
 | 
				
			||||||
 | 
					            <a class="gogs-nav-item" href="#">Explore</a>
 | 
				
			||||||
 | 
					            <a class="gogs-nav-item" href="#">Help</a>
 | 
				
			||||||
 | 
					            <a class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/login/">Sign in</a>
 | 
				
			||||||
 | 
					            <!--<a class="gogs-nav-item navbar-right" href="#">Profile</a>-->
 | 
				
			||||||
 | 
					        </nav>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					<!--<nav class="navbar navbar-inverse navbar-fixed-top">
 | 
				
			||||||
	<div class="container">
 | 
						<div class="container">
 | 
				
			||||||
		<div class="navbar-header">
 | 
							<div class="navbar-header">
 | 
				
			||||||
			<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#gogs-navbar-collapse">
 | 
								<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#gogs-navbar-collapse">
 | 
				
			||||||
@@ -15,4 +27,4 @@
 | 
				
			|||||||
			<a href="/user/signin" class="navbar-right btn btn-success navbar-btn">Sign In</a>
 | 
								<a href="/user/signin" class="navbar-right btn btn-success navbar-btn">Sign In</a>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</nav>
 | 
					</nav>-->
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
{{template "base/head" .}}
 | 
					{{template "base/head" .}}
 | 
				
			||||||
{{template "base/navbar" .}}
 | 
					{{template "base/navbar" .}}
 | 
				
			||||||
<div class="container">
 | 
					<div id="gogs-body" class="container">
 | 
				
			||||||
	Website is still in the progress of building...please come back later!
 | 
						Website is still in the progress of building...please come back later!
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
{{template "base/footer" .}}
 | 
					{{template "base/footer" .}}
 | 
				
			||||||
@@ -1,22 +1,55 @@
 | 
				
			|||||||
{{template "base/head" .}}
 | 
					{{template "base/head" .}}
 | 
				
			||||||
{{template "base/navbar" .}}
 | 
					{{template "base/navbar" .}}
 | 
				
			||||||
<div class="container">
 | 
					<div class="container" id="gogs-body">
 | 
				
			||||||
	<form action="/repo/create" method="post" class="form-horizontal">
 | 
					    <form action="/repo/create" method="post" class="form-horizontal gogs-card" id="gogs-repo-create">
 | 
				
			||||||
 | 
					        <h3>Create New Repository</h3>
 | 
				
			||||||
        <div class="form-group">
 | 
					        <div class="form-group">
 | 
				
			||||||
<div class="col-md-offset-4 col-md-3">
 | 
					            <label class="col-md-2 control-label">Owner<strong class="text-danger">*</strong></label>
 | 
				
			||||||
				Owner: <input name="userId" type="hidden" value="1"/>lunny
 | 
					            <div class="col-md-8">
 | 
				
			||||||
 | 
					                <p class="form-control-static">Owner-name</p>
 | 
				
			||||||
 | 
					                <input type="hidden" value="1" name="user-id"/>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
			<div class="col-md-offset-4 col-md-3">
 | 
					 | 
				
			||||||
		    	repo name: <input name="name" type="text"/>
 | 
					 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
		    <div class="col-md-offset-4 col-md-3">
 | 
					        <div class="form-group">
 | 
				
			||||||
		    	description(optional): <input name="desc" type="text"/>
 | 
					            <label class="col-md-2 control-label">Repository<strong class="text-danger">*</strong></label>
 | 
				
			||||||
 | 
					            <div class="col-md-8">
 | 
				
			||||||
 | 
					                <input name="repo" type="text" class="form-control" placeholder="Type your repository name">
 | 
				
			||||||
 | 
					                <span class="help-block">Great repository names are short and memorable. </span>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
		    	<div class="col-md-offset-4 col-md-3">
 | 
					 | 
				
			||||||
			
 | 
					 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
		    	<div class="col-md-offset-4 col-md-3">
 | 
					        <div class="form-group">
 | 
				
			||||||
		    	<button type="submit" class="btn btn-info">Create repository</button>
 | 
					            <label class="col-md-2 control-label">Description</label>
 | 
				
			||||||
 | 
					            <div class="col-md-8">
 | 
				
			||||||
 | 
					                <textarea name="desc" class="form-control" placeholder="Type your repository name"></textarea>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="form-group">
 | 
				
			||||||
 | 
					            <label class="col-md-2 control-label">Language</label>
 | 
				
			||||||
 | 
					            <div class="col-md-8">
 | 
				
			||||||
 | 
					                <select class="form-control" name="language">
 | 
				
			||||||
 | 
					                    <option value="">Select a language</option>
 | 
				
			||||||
 | 
					                    <option value="ActionScript">ActionScript</option>
 | 
				
			||||||
 | 
					                    <option value="C#">C#</option>
 | 
				
			||||||
 | 
					                    <option value="Google Go">Google Go</option>
 | 
				
			||||||
 | 
					                    <option value="Java">Java</option>
 | 
				
			||||||
 | 
					                    <option value="PHP">PHP</option>
 | 
				
			||||||
 | 
					                </select>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="form-group">
 | 
				
			||||||
 | 
					            <div class="col-md-8 col-md-offset-2">
 | 
				
			||||||
 | 
					                <div class="checkbox">
 | 
				
			||||||
 | 
					                    <label>
 | 
				
			||||||
 | 
					                        <input type="checkbox" value="true" name="init-md">
 | 
				
			||||||
 | 
					                        <strong>Initialize this repository with a README</strong>
 | 
				
			||||||
 | 
					                    </label>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="form-group">
 | 
				
			||||||
 | 
					            <div class="col-md-offset-2 col-md-8">
 | 
				
			||||||
 | 
					                <button type="submit" class="btn btn-lg btn-primary">Create repository</button>
 | 
				
			||||||
 | 
					                <a href="/" class="text-danger">Cancel</a>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    </form>
 | 
					    </form>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
{{template "base/head" .}}
 | 
					{{template "base/head" .}}
 | 
				
			||||||
{{template "base/navbar" .}}
 | 
					{{template "base/navbar" .}}
 | 
				
			||||||
<div class="container">
 | 
					<div class="container" id="gogs-body">
 | 
				
			||||||
	<form action="/user/delete" method="post" class="form-horizontal">
 | 
						<form action="/user/delete" method="post" class="form-horizontal">
 | 
				
			||||||
		<div class="form-group">
 | 
							<div class="form-group">
 | 
				
			||||||
		    <div class="col-md-offset-4 col-md-3">
 | 
							    <div class="col-md-offset-4 col-md-3">
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										37
									
								
								templates/user/profile.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								templates/user/profile.tmpl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					{{template "base/head" .}}
 | 
				
			||||||
 | 
					{{template "base/navbar" .}}
 | 
				
			||||||
 | 
					<div id="gogs-body" class="container">
 | 
				
			||||||
 | 
					    <div id="gogs-user-profile" class="col-md-3">
 | 
				
			||||||
 | 
					        <div class="profile-avatar text-center">
 | 
				
			||||||
 | 
					            <a href="#" class="center-block" data-toggle="tooltip" data-placement="bottom" title="Change Avatar">
 | 
				
			||||||
 | 
					                <img id="gogs-user-avatar" src="http://1.gravatar.com/avatar/x?s=200" alt="user-avatar" title="username"/>
 | 
				
			||||||
 | 
					            </a>
 | 
				
			||||||
 | 
					            <span id="gogs-user-name" class="center-block" href="#">Username</span>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="profile-info">
 | 
				
			||||||
 | 
					            <ul class="list-group">
 | 
				
			||||||
 | 
					                <li class="list-group-item"><i class="fa fa-thumb-tack"></i>City, County, State, Nation</li>
 | 
				
			||||||
 | 
					                <li class="list-group-item"><i class="fa fa-envelope"></i><a href="#">Email@EmailAddress.com</a></li>
 | 
				
			||||||
 | 
					                <li class="list-group-item"><i class="fa fa-link"></i><a href="#">http://yousite/</a></li>
 | 
				
			||||||
 | 
					                <li class="list-group-item"><i class="fa fa-clock-o"></i>Joined At 03.02, 2014</li>
 | 
				
			||||||
 | 
					            </ul>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					    <div id="gogs-user-activity" class="col-md-9">
 | 
				
			||||||
 | 
					        <ul class="nav nav-tabs" id="gogs-user-act-tabs">
 | 
				
			||||||
 | 
					            <li class="active"><a href="#repo" data-toggle="tab"><i class="fa fa-gittip"></i>Repositories</a></li>
 | 
				
			||||||
 | 
					            <li><a href="#activity" data-toggle="tab"><i class="fa fa-rss"></i>Activity</a></li>
 | 
				
			||||||
 | 
					        </ul>
 | 
				
			||||||
 | 
					        <div class="tab-content">
 | 
				
			||||||
 | 
					            <div class="tab-pane active" id="repo">repo</div>
 | 
				
			||||||
 | 
					            <div class="tab-pane" id="activity">activity</div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					    $(function () {
 | 
				
			||||||
 | 
					        Gogits.showTooltips();
 | 
				
			||||||
 | 
					        Gogits.showTab("#gogs-user-act-tabs");
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					{{template "base/footer" .}}
 | 
				
			||||||
							
								
								
									
										34
									
								
								templates/user/signin.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								templates/user/signin.tmpl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,34 @@
 | 
				
			|||||||
 | 
					{{template "base/head" .}}
 | 
				
			||||||
 | 
					{{template "base/navbar" .}}
 | 
				
			||||||
 | 
					<div class="container" id="gogs-body">
 | 
				
			||||||
 | 
					    <form action="/user/signin" method="post" class="form-horizontal gogs-card" id="gogs-login-card">
 | 
				
			||||||
 | 
					        <h3>Log in</h3>
 | 
				
			||||||
 | 
					        <div class="form-group">
 | 
				
			||||||
 | 
					            <label class="col-md-4 control-label">Username or Email: </label>
 | 
				
			||||||
 | 
					            <div class="col-md-6">
 | 
				
			||||||
 | 
					                <input name="account" class="form-control" placeholder="Type your username or e-mail address">
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="form-group">
 | 
				
			||||||
 | 
					            <label class="col-md-4 control-label">Password: </label>
 | 
				
			||||||
 | 
					            <div class="col-md-6">
 | 
				
			||||||
 | 
					                <input name="passwd" type="password" class="form-control" placeholder="Type your password">
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="form-group">
 | 
				
			||||||
 | 
					            <div class="col-md-offset-4 col-md-6">
 | 
				
			||||||
 | 
					                <button type="submit" class="btn btn-lg btn-primary">Log In</button>
 | 
				
			||||||
 | 
					                <a href="/forget-password/">Forgot your password?</a>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="form-group">
 | 
				
			||||||
 | 
					            <div class="col-md-offset-4 col-md-6">
 | 
				
			||||||
 | 
					                <a href="/sign-up/">Need an account? Sign up free.</a>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					        <div class="form-group text-center" id="gogs-social-login">
 | 
				
			||||||
 | 
					            <a class="btn btn-default btn-lg">Social Login</a>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </form>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
 | 
					{{template "base/footer" .}}
 | 
				
			||||||
@@ -1,43 +1,44 @@
 | 
				
			|||||||
{{template "base/head" .}}
 | 
					{{template "base/head" .}}
 | 
				
			||||||
{{template "base/navbar" .}}
 | 
					{{template "base/navbar" .}}
 | 
				
			||||||
<div class="container">
 | 
					<div class="container" id="gogs-body">
 | 
				
			||||||
	<form action="/user/signup" method="post" class="form-horizontal">
 | 
						<form action="/user/signup" method="post" class="form-horizontal gogs-card" id="gogs-login-card">
 | 
				
			||||||
 | 
					        <h3>Sign Up</h3>
 | 
				
			||||||
		<div class="form-group">
 | 
							<div class="form-group">
 | 
				
			||||||
			<label class="col-md-4 control-label">Username: </label>
 | 
								<label class="col-md-4 control-label">Username: </label>
 | 
				
			||||||
			<div class="col-md-3">
 | 
								<div class="col-md-6">
 | 
				
			||||||
				<input name="username" class="form-control" placeholder="Type your username">
 | 
									<input name="username" class="form-control" placeholder="Type your username">
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					 | 
				
			||||||
		<div class="form-group">
 | 
							<div class="form-group">
 | 
				
			||||||
			<label class="col-md-4 control-label">Email: </label>
 | 
								<label class="col-md-4 control-label">Email: </label>
 | 
				
			||||||
			<div class="col-md-3">
 | 
								<div class="col-md-6">
 | 
				
			||||||
				<input name="email" class="form-control" placeholder="Type your e-mail address">
 | 
									<input name="email" class="form-control" placeholder="Type your e-mail address">
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<div class="form-group">
 | 
							<div class="form-group">
 | 
				
			||||||
			<label class="col-md-4 control-label">Password: </label>
 | 
								<label class="col-md-4 control-label">Password: </label>
 | 
				
			||||||
			<div class="col-md-3">
 | 
								<div class="col-md-6">
 | 
				
			||||||
				<input name="passwd" type="password" class="form-control" placeholder="Type your password">
 | 
									<input name="passwd" type="password" class="form-control" placeholder="Type your password">
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					 | 
				
			||||||
		<div class="form-group">
 | 
							<div class="form-group">
 | 
				
			||||||
			<label class="col-md-4 control-label">Re-type: </label>
 | 
								<label class="col-md-4 control-label">Re-type: </label>
 | 
				
			||||||
			<div class="col-md-3">
 | 
								<div class="col-md-6">
 | 
				
			||||||
				<input type="password" class="form-control" placeholder="Re-type your password">
 | 
									<input type="password" class="form-control" placeholder="Re-type your password">
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<div class="form-group">
 | 
							<div class="form-group">
 | 
				
			||||||
		    <div class="col-md-offset-4 col-md-3">
 | 
							    <div class="col-md-offset-4 col-md-6">
 | 
				
			||||||
		    	<button type="submit" class="btn btn-info">Sign Up</button>
 | 
							    	<button type="submit" class="btn btn-lg btn-primary">Create an account</button>
 | 
				
			||||||
		    </div>
 | 
							    </div>
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	    <div class="col-md-offset-4 col-md-3">
 | 
						    <div class="form-group">
 | 
				
			||||||
	    	<a href="/user/signin">Already have an account? Sign in now!</a>
 | 
					            <div class="col-md-offset-4 col-md-6">
 | 
				
			||||||
 | 
					                <a href="/login/">Already have an account? Sign in now!</a>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
	    </div>
 | 
						    </div>
 | 
				
			||||||
	</form>
 | 
						</form>
 | 
				
			||||||
</div>
 | 
					</div>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										9
									
								
								web.go
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								web.go
									
									
									
									
									
								
							@@ -48,10 +48,15 @@ func runWeb(*cli.Context) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	// Routers.
 | 
						// Routers.
 | 
				
			||||||
	m.Get("/", routers.Dashboard)
 | 
						m.Get("/", routers.Dashboard)
 | 
				
			||||||
	m.Get("/user/signin", user.SignIn)
 | 
						m.Any("/login", user.SignIn)
 | 
				
			||||||
 | 
						m.Any("/user/signin", user.SignIn)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m.Any("/sign-up", user.SignUp)
 | 
				
			||||||
	m.Any("/user/signup", user.SignUp)
 | 
						m.Any("/user/signup", user.SignUp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						m.Get("/user/profile", user.Profile) // should be /username
 | 
				
			||||||
	m.Any("/user/delete", user.Delete)
 | 
						m.Any("/user/delete", user.Delete)
 | 
				
			||||||
	m.Any("/user/publickey/add", user.AddPublickKey)
 | 
						m.Any("/user/publickey/add", user.AddPublicKey)
 | 
				
			||||||
	m.Any("/repo/create", repo.Create)
 | 
						m.Any("/repo/create", repo.Create)
 | 
				
			||||||
	m.Any("/repo/delete", repo.Delete)
 | 
						m.Any("/repo/delete", repo.Delete)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user