@@ -269,7 +269,8 @@ body { | |||
/* gogits user setting */ | |||
#gogs-user-setting-nav > h4, #gogs-user-setting-container > h4, #gogs-ssh-keys > h4, #gogs-user-delete > h4 ,#gogs-repo-setting-container .tab-pane > h4{ | |||
#gogs-user-setting-nav > h4, #gogs-user-setting-container > h4, #gogs-user-setting-container > div > h4, | |||
#gogs-ssh-keys > h4, #gogs-user-delete > h4, #gogs-repo-setting-container .tab-pane > h4 { | |||
padding-bottom: 18px; | |||
margin-bottom: 18px; | |||
border-bottom: 1px solid #CCC; | |||
@@ -429,8 +430,7 @@ body { | |||
margin-bottom: 4px; | |||
} | |||
#gogs-repo-toolbar{ | |||
#gogs-repo-toolbar { | |||
margin-top: 51px; | |||
margin-bottom: -50px; | |||
border-bottom: 1px solid #BBB; | |||
@@ -438,23 +438,23 @@ body { | |||
height: 40px; | |||
} | |||
#gogs-repo-toolbar .navbar-default{ | |||
#gogs-repo-toolbar .navbar-default { | |||
border: none; | |||
height: 39px; | |||
} | |||
#gogs-repo-toolbar .nav > li > a{ | |||
#gogs-repo-toolbar .nav > li > a { | |||
height: 39px; | |||
} | |||
#gogs-repo-toolbar .navbar-toolbar.navbar-default .navbar-nav>.active>a:after{ | |||
#gogs-repo-toolbar .navbar-toolbar.navbar-default .navbar-nav > .active > a:after { | |||
border-bottom-color: #999; | |||
} | |||
#gogs-repo-toolbar .navbar.nav-toolbar{ | |||
#gogs-repo-toolbar .navbar.nav-toolbar { | |||
margin-bottom: 0; | |||
} | |||
#gogs-repo-toolbar .navbar-collapse{ | |||
#gogs-repo-toolbar .navbar-collapse { | |||
padding: 0; | |||
} |
@@ -47,6 +47,14 @@ func Setting(form auth.UpdateProfileForm, r render.Render, data base.TmplData, r | |||
r.HTML(200, "user/setting", data) | |||
} | |||
func SettingEmailPassword(r render.Render, data base.TmplData, session sessions.Session, req *http.Request) { | |||
data["Title"] = "Email & Password" | |||
data["PageIsUserSetting"] = true | |||
data["IsPwdSuccess"] = (req.FormValue("password") == "true") | |||
r.HTML(200, "user/email_password", data) | |||
} | |||
func UpdatePasswd(form auth.UpdatePasswdForm, r render.Render, data base.TmplData, req *http.Request, session sessions.Session) { | |||
data["Title"] = "Setting" | |||
data["PageIsUserSetting"] = true | |||
@@ -5,10 +5,10 @@ | |||
<h4>Account Setting</h4> | |||
<ul class="list-group"> | |||
<li class="list-group-item"><a href="/user/setting">Account Profile</a></li> | |||
<li class="list-group-item"><a href="#">Emails and Password</a></li> | |||
<li class="list-group-item"><a href="#">Notifications</a></li> | |||
<li class="list-group-item"><a href="/user/setting/email_password">Emails and Password</a></li> | |||
<li class="list-group-item"><a href="/user/setting/notification">Notifications</a></li> | |||
<li class="list-group-item"><a href="/user/setting/ssh/">SSH Keys</a></li> | |||
<li class="list-group-item"><a href="#">Security</a></li> | |||
<li class="list-group-item"><a href="/user/setting/security">Security</a></li> | |||
<li class="list-group-item list-group-item-success"><a href="/user/delete">Delete Account</a></li> | |||
</ul> | |||
</div> | |||
@@ -0,0 +1,53 @@ | |||
{{template "base/head" .}} | |||
{{template "base/navbar" .}} | |||
<div id="gogs-body" class="container"> | |||
<div id="gogs-user-setting-nav" class="col-md-3"> | |||
<h4>Account Setting</h4> | |||
<ul class="list-group"> | |||
<li class="list-group-item"><a href="/user/setting">Account Profile</a></li> | |||
<li class="list-group-item list-group-item-success"><a href="/user/setting/email_password">Emails and Password</a></li> | |||
<li class="list-group-item"><a href="/user/setting/notification">Notifications</a></li> | |||
<li class="list-group-item"><a href="/user/setting/ssh/">SSH Keys</a></li> | |||
<li class="list-group-item"><a href="/user/setting/security">Security</a></li> | |||
<li class="list-group-item"><a href="/user/delete">Delete Account</a></li> | |||
</ul> | |||
</div> | |||
<div id="gogs-user-setting-container" class="col-md-9"> | |||
<div id="gogs-setting-email"> | |||
<h4>Email</h4> | |||
<p><strong>Your Primary Email</strong> will be used for Account related notifications as well as any web based operations, such as edits and merges made via the web.</p> | |||
<p>// TODO</p><br/> | |||
</div> | |||
<div id="gogs-setting-pwd"> | |||
<h4>Password</h4> | |||
<form class="form-horizontal" id="gogs-password-form" method="post" action="/user/setting/update_passwd">{{if .IsPwdSuccess}} | |||
<p class="alert alert-success">Password is changed successfully. You can sign in via new password.</p>{{end}} | |||
<div class="form-group"> | |||
<label class="col-md-2 control-label">Old Password<strong class="text-danger">*</strong></label> | |||
<div class="col-md-8"> | |||
<input type="password" name="oldpasswd" class="form-control" placeholder="Type your current password" required="required"> | |||
</div> | |||
</div> | |||
<div class="form-group"> | |||
<label class="col-md-2 control-label">New Password<strong class="text-danger">*</strong></label> | |||
<div class="col-md-8"> | |||
<input type="password" name="newpasswd" class="form-control" placeholder="Type your new password" required="required"> | |||
</div> | |||
</div> | |||
<div class="form-group"> | |||
<label class="col-md-2 control-label">Re-Type<strong class="text-danger">*</strong></label> | |||
<div class="col-md-8"> | |||
<input type="password" name="re-type" class="form-control" placeholder="Re-type your new password" required="required"> | |||
</div> | |||
</div> | |||
<div class="form-group"> | |||
<div class="col-md-offset-2 col-md-8"> | |||
<button type="submit" class="btn btn-primary">Change Password</button> | |||
<a href="/forget-password/">Forget Password ?</a> | |||
</div> | |||
</div> | |||
</form> | |||
</div> | |||
</div> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -5,10 +5,10 @@ | |||
<h4>Account Setting</h4> | |||
<ul class="list-group"> | |||
<li class="list-group-item"><a href="/user/setting">Account Profile</a></li> | |||
<li class="list-group-item"><a href="#">Emails and Password</a></li> | |||
<li class="list-group-item"><a href="#">Notifications</a></li> | |||
<li class="list-group-item"><a href="/user/setting/email_password">Emails and Password</a></li> | |||
<li class="list-group-item"><a href="/user/setting/notification">Notifications</a></li> | |||
<li class="list-group-item list-group-item-success"><a href="/user/setting/ssh/">SSH Keys</a></li> | |||
<li class="list-group-item"><a href="#">Security</a></li> | |||
<li class="list-group-item"><a href="/user/setting/security">Security</a></li> | |||
<li class="list-group-item"><a href="/user/delete">Delete Account</a></li> | |||
</ul> | |||
</div> | |||
@@ -1,26 +0,0 @@ | |||
{{template "base/head" .}} | |||
{{template "base/navbar" .}} | |||
<div class="container" id="gogs-body"> | |||
<form action="/user/publickey/add" method="post" class="form-horizontal"> | |||
<div class="form-group"> | |||
<label class="col-md-4 control-label">Name of this public key: </label> | |||
<div class="col-md-3"> | |||
<input name="keyname" class="form-control" placeholder="Type your preferred name" value="{{.KeyName}}"> | |||
</div> | |||
</div> | |||
<div class="form-group"> | |||
<label class="col-md-4 control-label">Paste your key here: </label> | |||
<div class="col-md-3"> | |||
<textarea name="key_content" cols="30" rows="10" class="form-control">{{.KeyContent}}</textarea> | |||
</div> | |||
</div> | |||
<div class="form-group"> | |||
<div class="col-md-offset-4 col-md-3"> | |||
<button type="submit" class="btn btn-info">Add public key</button> | |||
</div> | |||
</div> | |||
</form> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -1,8 +0,0 @@ | |||
{{template "base/head" .}} | |||
{{template "base/navbar" .}} | |||
<div class="container"> | |||
<div class="form-group"> | |||
publickey added | |||
</div> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -1,12 +0,0 @@ | |||
{{template "base/head" .}} | |||
{{template "base/navbar" .}} | |||
<div class="container" id="gogs-body"> | |||
<div><a href="/user/publickey/add">Add publick key</a></div> | |||
<ul> | |||
{{range .Keys}} | |||
<li>{{.Name}}</li> | |||
<li>{{.Content}}</li> | |||
{{end}} | |||
</ul> | |||
</div> | |||
{{template "base/footer" .}} |
@@ -5,10 +5,10 @@ | |||
<h4>Account Setting</h4> | |||
<ul class="list-group"> | |||
<li class="list-group-item list-group-item-success"><a href="/user/setting">Account Profile</a></li> | |||
<li class="list-group-item"><a href="#">Emails and Password</a></li> | |||
<li class="list-group-item"><a href="#">Notifications</a></li> | |||
<li class="list-group-item"><a href="/user/setting/ssh">SSH Keys</a></li> | |||
<li class="list-group-item"><a href="#">Security</a></li> | |||
<li class="list-group-item"><a href="/user/setting/email_password">Emails and Password</a></li> | |||
<li class="list-group-item"><a href="/user/setting/notification">Notifications</a></li> | |||
<li class="list-group-item"><a href="/user/setting/ssh/">SSH Keys</a></li> | |||
<li class="list-group-item"><a href="/user/setting/security">Security</a></li> | |||
<li class="list-group-item"><a href="/user/delete">Delete Account</a></li> | |||
</ul> | |||
</div> | |||
@@ -64,6 +64,7 @@ func runWeb(*cli.Context) { | |||
m.Get("/user/feeds", binding.Bind(auth.FeedsForm{}), user.Feeds) | |||
m.Any("/user/setting", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdateProfileForm{}), user.Setting) | |||
m.Get("/user/setting/email_password",auth.SignInRequire(true),user.SettingEmailPassword) | |||
m.Post("/user/setting/update_passwd", auth.SignInRequire(true), binding.BindIgnErr(auth.UpdatePasswdForm{}), user.UpdatePasswd) | |||
m.Any("/user/setting/ssh", auth.SignInRequire(true), binding.BindIgnErr(auth.AddSSHKeyForm{}), user.SettingSSHKeys) | |||