| @@ -10,17 +10,17 @@ body { | |||
| /* override bs3 */ | |||
| .tooltip-inner{ | |||
| .tooltip-inner { | |||
| border-radius: 3px; | |||
| background: #333; | |||
| border: none; | |||
| } | |||
| .tooltip-arrow{ | |||
| .tooltip-arrow { | |||
| border-bottom-color: #333 !important; | |||
| } | |||
| .fa{ | |||
| .fa { | |||
| margin: 0 .5em; | |||
| } | |||
| @@ -28,8 +28,7 @@ body { | |||
| .gogs-masthead { | |||
| background-color: #428bca; | |||
| box-shadow: inset 0 -2px 5px rgba(0, 0, 0, .1); | |||
| min-height: 45px; | |||
| padding: 2px 16px; | |||
| padding: 0 16px; | |||
| } | |||
| /* gogits nav item link */ | |||
| @@ -54,6 +53,14 @@ body { | |||
| padding: 5px 15px; | |||
| } | |||
| .gogs-nav-item.navbar-right { | |||
| margin-top: 3px; | |||
| } | |||
| .gogs-nav-item.navbar-right .fa{ | |||
| margin: 0; | |||
| } | |||
| /* gogits nav item active status */ | |||
| .gogs-nav .active { | |||
| color: #fff; | |||
| @@ -73,19 +80,41 @@ body { | |||
| border-left: 5px solid transparent; | |||
| } | |||
| .gogs-nav .tooltip{ | |||
| border: none; | |||
| } | |||
| /* gogits logo */ | |||
| #gogs-logo { | |||
| #gogs-nav-avatar { | |||
| margin-top: 0; | |||
| } | |||
| #gogs-logo, #gogs-nav-avatar img { | |||
| width: 28px; | |||
| height: 28px; | |||
| } | |||
| #gogs-nav-out { | |||
| margin-top: 10px; | |||
| padding: 5px 0; | |||
| margin-left: 10px; | |||
| height: 28px; | |||
| } | |||
| #gogs-nav-out .fa { | |||
| vertical-align: -10%; | |||
| margin: 0 .5em; | |||
| } | |||
| /* gogits body */ | |||
| #gogs-body { | |||
| padding-top: 30px; | |||
| padding-bottom: 60px; | |||
| margin-top: 50px; | |||
| } | |||
| /* gogits login card */ | |||
| .gogs-card{ | |||
| .gogs-card { | |||
| margin: auto; | |||
| padding: 30px; | |||
| background: #fff; | |||
| @@ -101,7 +130,7 @@ body { | |||
| border-bottom: 1px solid #ccc; | |||
| } | |||
| #gogs-login-card{ | |||
| #gogs-login-card { | |||
| width: 600px; | |||
| } | |||
| @@ -115,51 +144,51 @@ body { | |||
| line-height: 30px; | |||
| } | |||
| .gogs-card .btn{ | |||
| .gogs-card .btn { | |||
| cursor: pointer; | |||
| margin-right: 1.2em; | |||
| } | |||
| #gogs-social-login{ | |||
| #gogs-social-login { | |||
| margin-top: 30px; | |||
| padding-top: 20px; | |||
| border-top: 1px solid #ccc; | |||
| } | |||
| #gogs-social-login .btn{ | |||
| #gogs-social-login .btn { | |||
| float: none; | |||
| margin: auto; | |||
| } | |||
| /* gogs-user-profile */ | |||
| #gogs-user-avatar{ | |||
| #gogs-user-avatar { | |||
| width: 200px; | |||
| height: 200px; | |||
| border-radius: 6px; | |||
| } | |||
| #gogs-user-name{ | |||
| #gogs-user-name { | |||
| margin-top: 20px; | |||
| font-size: 1.6em; | |||
| font-weight: bold; | |||
| margin-bottom: 20px; | |||
| } | |||
| #gogs-user-profile .profile-info .list-group-item{ | |||
| #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{ | |||
| #gogs-user-profile .profile-info .list-group-item a { | |||
| margin: 0; | |||
| padding: 0; | |||
| display: inline; | |||
| color: #0093c4; | |||
| } | |||
| #gogs-user-profile .profile-info .list-group{ | |||
| #gogs-user-profile .profile-info .list-group { | |||
| border-top: 1px solid #ccc; | |||
| padding-bottom: 18px; | |||
| border-bottom: 1px solid #ccc; | |||
| @@ -167,20 +196,20 @@ body { | |||
| padding-right: 18px; | |||
| } | |||
| #gogs-user-activity .tab-pane{ | |||
| #gogs-user-activity .tab-pane { | |||
| padding: 20px; | |||
| } | |||
| #gogs-user-act-tabs li.active a{ | |||
| #gogs-user-act-tabs li.active a { | |||
| border-bottom-color: #ddd; | |||
| } | |||
| /* gogits repo create */ | |||
| #gogs-repo-create{ | |||
| #gogs-repo-create { | |||
| width: 800px; | |||
| } | |||
| #gogs-repo-create textarea[name=desc]{ | |||
| #gogs-repo-create textarea[name=desc] { | |||
| height: 8em; | |||
| } | |||
| @@ -14,4 +14,9 @@ var Gogits = {}; | |||
| $(selector).tab("show"); | |||
| $(selector).find("li:eq(" + index + ") a").tab("show"); | |||
| } | |||
| })(jQuery); | |||
| })(jQuery); | |||
| function initCore(){ | |||
| Gogits.showTooltips(); | |||
| } | |||
| @@ -25,24 +25,28 @@ func Profile(r render.Render) { | |||
| } | |||
| func SignIn(req *http.Request, r render.Render, session sessions.Session) { | |||
| if req.Method == "GET" { | |||
| r.HTML(200, "user/signin", map[string]interface{}{ | |||
| "Title": "Log In", | |||
| }) | |||
| return | |||
| } | |||
| // TODO: LDAP sign in | |||
| user, 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 | |||
| var ( | |||
| errString string | |||
| account string | |||
| ) | |||
| if req.Method == "POST" { | |||
| account = req.FormValue("account") | |||
| user, err := models.LoginUserPlain(account, req.FormValue("passwd")) | |||
| if err == nil { | |||
| // login success | |||
| session.Set("userId", user.Id) | |||
| session.Set("userName", user.Name) | |||
| r.Redirect("/") | |||
| return | |||
| } | |||
| // login fail | |||
| errString = fmt.Sprintf("%v", err) | |||
| } | |||
| session.Set("userId", user.Id) | |||
| session.Set("userName", user.Name) | |||
| r.Redirect("/") | |||
| r.HTML(200, "user/signin", map[string]interface{}{ | |||
| "Title": "Log In", | |||
| "Error": errString, | |||
| "Account": account, | |||
| }) | |||
| } | |||
| func SignUp(req *http.Request, r render.Render) { | |||
| @@ -1,2 +1,7 @@ | |||
| </body> | |||
| <script> | |||
| $(function(){ | |||
| initCore(); | |||
| }); | |||
| </script> | |||
| </body> | |||
| </html> | |||
| @@ -1,13 +1,18 @@ | |||
| <div class="gogs-masthead" id="masthead"> | |||
| <div class="gogs-masthead navbar navbar-fixed-top" 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="/repo/create">Create a repository</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>--> | |||
| <!--<a class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/login/">Sign in</a>--> | |||
| <a id="gogs-nav-out" class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/login/"><i class="fa fa-power-off fa-lg"></i></a> | |||
| <a id="gogs-nav-avatar" class="gogs-nav-item navbar-right" href="/user/profile" data-toggle="tooltip" data-placement="bottom" title="Username"> | |||
| <img src="http://1.gravatar.com/avatar/x?s=28" alt="user-avatar" title="username"/> | |||
| </a> | |||
| <a class="navbar-right gogs-nav-item" href="/repo/create" data-toggle="tooltip" data-placement="bottom" title="New Repository"><i class="fa fa-plus fa-lg"></i></a> | |||
| <a class="navbar-right gogs-nav-item" href="#" data-toggle="tooltip" data-placement="bottom" title="Setting"><i class="fa fa-cogs fa-lg"></i></a> | |||
| </nav> | |||
| </div> | |||
| </div> | |||
| @@ -30,7 +30,6 @@ | |||
| </div> | |||
| <script> | |||
| $(function () { | |||
| Gogits.showTooltips(); | |||
| Gogits.showTab("#gogs-user-act-tabs"); | |||
| }); | |||
| </script> | |||
| @@ -2,17 +2,20 @@ | |||
| {{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> | |||
| <h3>Log in</h3>{{if .Error}} | |||
| <div class="form-group"> | |||
| <div class="col-md-6 col-md-offset-3 alert alert-danger text-center"><strong>{{.Error}}</strong></div> | |||
| </div>{{end}} | |||
| <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"> | |||
| <input name="account" class="form-control" placeholder="Type your username or e-mail address" value="{{.Account}}" required="required"> | |||
| </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"> | |||
| <input name="passwd" type="password" class="form-control" placeholder="Type your password" required="required"> | |||
| </div> | |||
| </div> | |||
| <div class="form-group"> | |||