Conflicts: templates/user/signup.tmpltags/v1.2.0-rc1
@@ -20,6 +20,10 @@ body { | |||||
border-bottom-color: #333 !important; | border-bottom-color: #333 !important; | ||||
} | } | ||||
.tooltip-arrow:before { | |||||
border-bottom-color: transparent !important; | |||||
} | |||||
.fa { | .fa { | ||||
margin: 0 .5em; | margin: 0 .5em; | ||||
} | } | ||||
@@ -39,6 +43,7 @@ body { | |||||
font-weight: bold; | font-weight: bold; | ||||
color: #EEE; | color: #EEE; | ||||
font-size: 100%; | font-size: 100%; | ||||
height: 46px; | |||||
} | } | ||||
.gogs-nav-item:hover, | .gogs-nav-item:hover, | ||||
@@ -55,6 +60,7 @@ body { | |||||
cursor: pointer; | cursor: pointer; | ||||
margin-top: 8px; | margin-top: 8px; | ||||
padding: 5px 15px; | padding: 5px 15px; | ||||
height: 30px; | |||||
} | } | ||||
.gogs-nav-item.navbar-right .fa { | .gogs-nav-item.navbar-right .fa { | ||||
@@ -68,7 +74,7 @@ body { | |||||
.gogs-nav .active:after { | .gogs-nav .active:after { | ||||
position: absolute; | position: absolute; | ||||
bottom: -2px; | |||||
bottom: -1px; | |||||
left: 50%; | left: 50%; | ||||
width: 0; | width: 0; | ||||
height: 0; | height: 0; | ||||
@@ -80,6 +86,10 @@ body { | |||||
border-left: 5px solid transparent; | border-left: 5px solid transparent; | ||||
} | } | ||||
#gogs-nav-logo:after { | |||||
bottom: -4px !important; | |||||
} | |||||
.gogs-nav .tooltip { | .gogs-nav .tooltip { | ||||
border: none; | border: none; | ||||
} | } | ||||
@@ -1,7 +1,9 @@ | |||||
var Gogits = {}; | |||||
var Gogits = { | |||||
"PageIsSignup": false | |||||
}; | |||||
(function($){ | |||||
Gogits.showTooltips = function(){ | |||||
(function ($) { | |||||
Gogits.showTooltips = function () { | |||||
$("body").tooltip({ | $("body").tooltip({ | ||||
selector: "[data-toggle=tooltip]" | selector: "[data-toggle=tooltip]" | ||||
//container: "body" | //container: "body" | ||||
@@ -13,10 +15,48 @@ var Gogits = {}; | |||||
} | } | ||||
$(selector).tab("show"); | $(selector).tab("show"); | ||||
$(selector).find("li:eq(" + index + ") a").tab("show"); | $(selector).find("li:eq(" + index + ") a").tab("show"); | ||||
} | |||||
}; | |||||
Gogits.validateForm = function (selector, options) { | |||||
var $form = $(selector); | |||||
options = options || {}; | |||||
options.showErrors = function (map, list) { | |||||
var $error = $form.find('.form-error').addClass('hidden'); | |||||
$('.has-error').removeClass("has-error"); | |||||
$error.text(list[0].message).show().removeClass("hidden"); | |||||
$(list[0].element).parents(".form-group").addClass("has-error"); | |||||
}; | |||||
$form.validate(options); | |||||
}; | |||||
})(jQuery); | })(jQuery); | ||||
function initCore(){ | |||||
function initCore() { | |||||
Gogits.showTooltips(); | Gogits.showTooltips(); | ||||
} | |||||
function initRegister() { | |||||
$.getScript("/js/jquery.validate.min.js", function () { | |||||
Gogits.validateForm("#gogs-login-card", { | |||||
rules: { | |||||
"username": { | |||||
required: true, | |||||
minlength: 5, | |||||
maxlength: 30 | |||||
}, | |||||
"email": { | |||||
required: true, | |||||
email: true | |||||
}, | |||||
"passwd": { | |||||
required: true, | |||||
minlength: 6, | |||||
maxlength: 30 | |||||
}, | |||||
"re-passwd": { | |||||
required: true, | |||||
equalTo: "input[name=passwd]" | |||||
} | |||||
} | |||||
}); | |||||
}); | |||||
} | } |
@@ -16,5 +16,6 @@ func Home(r render.Render, data base.TmplData, session sessions.Session) { | |||||
user.Dashboard(r, data, session) | user.Dashboard(r, data, session) | ||||
return | return | ||||
} | } | ||||
r.HTML(200, "home", nil) | |||||
data["PageIsHome"] = true | |||||
r.HTML(200, "home", data) | |||||
} | } |
@@ -27,6 +27,7 @@ func Dashboard(r render.Render, data base.TmplData, session sessions.Session) { | |||||
data["IsSigned"] = true | data["IsSigned"] = true | ||||
data["SignedUserId"] = SignedInId(session) | data["SignedUserId"] = SignedInId(session) | ||||
data["SignedUserName"] = SignedInName(session) | data["SignedUserName"] = SignedInName(session) | ||||
data["PageIsUserDashboard"] = true | |||||
data["Title"] = "Dashboard" | data["Title"] = "Dashboard" | ||||
r.HTML(200, "user/dashboard", data) | r.HTML(200, "user/dashboard", data) | ||||
@@ -112,6 +113,7 @@ func SignIn(req *http.Request, r render.Render, session sessions.Session) { | |||||
func SignUp(form auth.RegisterForm, data base.TmplData, req *http.Request, r render.Render) { | func SignUp(form auth.RegisterForm, data base.TmplData, req *http.Request, r render.Render) { | ||||
data["Title"] = "Sign Up" | data["Title"] = "Sign Up" | ||||
data["PageIsSignUp"] = true | |||||
if req.Method == "GET" { | if req.Method == "GET" { | ||||
r.HTML(200, "user/signup", data) | r.HTML(200, "user/signup", data) | ||||
@@ -1,6 +1,7 @@ | |||||
<script> | <script> | ||||
$(function(){ | $(function(){ | ||||
initCore(); | |||||
initCore(); | |||||
{{if .PageIsSignUp}}initRegister();{{end}} | |||||
}); | }); | ||||
</script> | </script> | ||||
</body> | </body> |
@@ -1,8 +1,8 @@ | |||||
<div class="gogs-masthead navbar navbar-fixed-top" id="masthead"> | <div class="gogs-masthead navbar navbar-fixed-top" id="masthead"> | ||||
<div class="container"> | <div class="container"> | ||||
<nav class="gogs-nav"> | <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 id="gogs-nav-logo" class="gogs-nav-item{{if .PageIsHome}} active{{end}}" href="/"><img src="/img/favicon.png" alt="Gogs Logo" id="gogs-logo"></a> | |||||
<a class="gogs-nav-item{{if .PageIsUserDashboard}} active{{end}}" href="#">Dashboard</a> | |||||
<a class="gogs-nav-item" href="#">Explore</a> | <a class="gogs-nav-item" href="#">Explore</a> | ||||
<a class="gogs-nav-item" href="#">Help</a>{{if .IsSigned}} | <a class="gogs-nav-item" href="#">Help</a>{{if .IsSigned}} | ||||
<a id="gogs-nav-out" class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/user/login/"><i class="fa fa-power-off fa-lg"></i></a> | <a id="gogs-nav-out" class="gogs-nav-item navbar-right navbar-btn btn btn-danger" href="/user/login/"><i class="fa fa-power-off fa-lg"></i></a> | ||||
@@ -3,41 +3,37 @@ | |||||
<div class="container" id="gogs-body"> | <div class="container" id="gogs-body"> | ||||
<form action="/user/sign_up" method="post" class="form-horizontal gogs-card" id="gogs-login-card"> | <form action="/user/sign_up" method="post" class="form-horizontal gogs-card" id="gogs-login-card"> | ||||
<h3>Sign Up</h3> | <h3>Sign Up</h3> | ||||
{{if .HasError}} | |||||
<div class="alert alert-danger">{{.ErrorMsg}}</div> | |||||
{{end}} | |||||
<div class="form-group {{if .Err_UserName}}has-error has-feedback{{end}}"> | |||||
<div class="alert alert-danger form-error{{if .HasError}}{{else}} hidden{{end}}">{{.ErrorMsg}}</div> | |||||
<div class="form-group {{if .Err_Username}}has-error has-feedback{{end}}"> | |||||
<label class="col-md-4 control-label">Username: </label> | <label class="col-md-4 control-label">Username: </label> | ||||
<div class="col-md-6"> | <div class="col-md-6"> | ||||
<input name="username" class="form-control" placeholder="Type your username" value="{{.username}}"> | |||||
<input name="username" class="form-control" placeholder="Type your username" value="{{.username}}" required="required" title="Username must contain at least has 5 characters"> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group {{if .Err_Email}}has-error has-feedback{{end}}"> | <div class="form-group {{if .Err_Email}}has-error has-feedback{{end}}"> | ||||
<label class="col-md-4 control-label">Email: </label> | <label class="col-md-4 control-label">Email: </label> | ||||
<div class="col-md-6"> | <div class="col-md-6"> | ||||
<input name="email" class="form-control" placeholder="Type your e-mail address" value="{{.email}}"> | |||||
<input name="email" class="form-control" placeholder="Type your e-mail address" value="{{.email}}" required="required" title="Email is not valid"> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group {{if .Err_Password}}has-error has-feedback{{end}}"> | <div class="form-group {{if .Err_Password}}has-error has-feedback{{end}}"> | ||||
<label class="col-md-4 control-label">Password: </label> | <label class="col-md-4 control-label">Password: </label> | ||||
<div class="col-md-6"> | <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" title="Password must contain at least has 6 characters"> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group {{if .Err_RetypePasswd}}has-error has-feedback{{end}}"> | <div class="form-group {{if .Err_RetypePasswd}}has-error has-feedback{{end}}"> | ||||
<label class="col-md-4 control-label">Re-type: </label> | <label class="col-md-4 control-label">Re-type: </label> | ||||
<div class="col-md-6"> | <div class="col-md-6"> | ||||
<input type="password" class="form-control" placeholder="Re-type your password"> | |||||
<input name="re-passwd" type="password" class="form-control" placeholder="Re-type your password" required="required" title="Re-type Password must be same to Password"> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group"> | <div class="form-group"> | ||||
<div class="col-md-offset-4 col-md-6"> | <div class="col-md-offset-4 col-md-6"> | ||||
<button type="submit" class="btn btn-lg btn-primary">Create an account</button> | <button type="submit" class="btn btn-lg btn-primary">Create an account</button> | ||||
</div> | </div> | ||||
</div> | </div> | ||||
<div class="form-group"> | <div class="form-group"> | ||||
<div class="col-md-offset-4 col-md-6"> | <div class="col-md-offset-4 col-md-6"> | ||||
<a href="/user/login">Already have an account? Sign in now!</a> | <a href="/user/login">Already have an account? Sign in now!</a> | ||||