1、实现用户注册

2、实现验证码
3、完善文档评论功能
This commit is contained in:
lifei6671
2017-05-01 12:15:55 +08:00
parent ad67558b80
commit 5b5c5b73bc
26 changed files with 380 additions and 23 deletions

View File

@@ -16,8 +16,8 @@
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="static/bootstrap/js/html5shiv.min.js"></script>
<script src="/static/bootstrap/js/respond.min.js"></script>
<script src="/static/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="/static/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="/static/jquery/1.12.4/jquery.min.js"></script>
@@ -53,18 +53,19 @@
</div>
{{if ne .ENABLED_CAPTCHA "false"}}
<div class="form-group">
<div class="input-group">
<div class="input-group" style="float: left;width: 195px;">
<div class="input-group-addon">
<i class="fa fa-check-square"></i>
</div>
<input type="text" name="code" id="code" class="form-control" style="width: 150px" maxlength="5" placeholder="验证码" autocomplete="off">&nbsp;
<img id="captcha-img" src="" onclick="this.src='/verify?key=login&t='+(new Date()).getTime();" title="点击换一张">
</div>
<img id="captcha-img" style="width: 140px;height: 40px;display: inline-block;float: right" src="{{urlfor "AccountController.Captcha"}}" onclick="this.src='{{urlfor "AccountController.Captcha"}}?key=login&t='+(new Date()).getTime();" title="点击换一张">
<div class="clearfix"></div>
</div>
{{end}}
<div class="checkbox">
<label>
<input type="checkbox" name="is_remember"> 保持登录
<input type="checkbox" name="is_remember" value="yes"> 保持登录
</label>
<a href="{{urlfor "AccountController.FindPassword" }}" style="display: inline-block;float: right">忘记密码?</a>
</div>

163
views/account/register.tpl Normal file
View File

@@ -0,0 +1,163 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="utf-8">
<link rel="shortcut icon" href="/favicon.ico">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="renderer" content="webkit" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="author" content="SmartWiki" />
<title>用户登录 - Powered by MinDoc</title>
<!-- Bootstrap -->
<link href="/static/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="/static/font-awesome/css/font-awesome.min.css" rel="stylesheet">
<link href="/static/css/main.css" rel="stylesheet">
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="/static/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="/static/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="/static/jquery/1.12.4/jquery.min.js"></script>
</head>
<body class="manual-container">
<header class="navbar navbar-static-top smart-nav navbar-fixed-top manual-header" role="banner">
<div class="container">
<div class="navbar-header col-sm-12 col-md-6 col-lg-5">
<a href="/" class="navbar-brand">MinDoc</a>
</div>
</div>
</header>
<div class="container manual-body">
<div class="row login">
<div class="login-body">
<form role="form" method="post" id="registerForm">
<h3 class="text-center">用户注册</h3>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon">
<i class="fa fa-user"></i>
</div>
<input type="text" class="form-control" placeholder="用户名" name="account" id="account" autocomplete="off">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon">
<i class="fa fa-lock"></i>
</div>
<input type="password" class="form-control" placeholder="密码" name="password1" id="password1" autocomplete="off">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon">
<i class="fa fa-lock"></i>
</div>
<input type="password" class="form-control" placeholder="确认密码" name="password2" id="password2" autocomplete="off">
</div>
</div>
<div class="form-group">
<div class="input-group">
<div class="input-group-addon" style="padding: 6px 9px;"><i class="fa fa-envelope"></i></div>
<input type="email" class="form-control" placeholder="用户邮箱" name="email" id="email" autocomplete="off">
</div>
</div>
{{if ne .ENABLED_CAPTCHA "false"}}
<div class="form-group">
<div class="input-group" style="float: left;width: 195px;">
<div class="input-group-addon">
<i class="fa fa-check-square"></i>
</div>
<input type="text" name="code" id="code" class="form-control" style="width: 150px" maxlength="5" placeholder="验证码" autocomplete="off">&nbsp;
</div>
<img id="captcha-img" style="width: 140px;height: 40px;display: inline-block;float: right" src="{{urlfor "AccountController.Captcha"}}" onclick="this.src='{{urlfor "AccountController.Captcha"}}?key=login&t='+(new Date()).getTime();" title="点击换一张">
<div class="clearfix"></div>
</div>
{{end}}
<div class="form-group">
<button type="submit" id="btnRegister" class="btn btn-success" style="width: 100%" data-loading-text="正在注册..." autocomplete="off">立即注册</button>
</div>
{{if ne .ENABLED_REGISTER "false"}}
<div class="form-group">
已有账号?<a href="{{urlfor "AccountController.Register" }}" title="立即登录">立即登录</a>
</div>
{{end}}
</form>
</div>
</div>
<div class="clearfix"></div>
</div>
{{template "widgets/footer.tpl" .}}
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="/static/bootstrap/js/bootstrap.min.js" type="text/javascript"></script>
<script src="/static/layer/layer.js" type="text/javascript"></script>
<script src="/static/js/jquery.form.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
$("#account,#password,#confirm_password,#code").on('focus',function () {
$(this).tooltip('destroy').parents('.form-group').removeClass('has-error');;
});
$(document).keyup(function (e) {
var event = document.all ? window.event : e;
if(event.keyCode === 13){
$("#btnRegister").trigger("click");
}
});
$("#registerForm").ajaxForm({
beforeSubmit : function () {
var account = $.trim($("#account").val());
var password = $.trim($("#password1").val());
var confirmPassword = $.trim($("#password2").val());
var code = $.trim($("#code").val());
var email = $.trim($("#email").val());
if(account === ""){
$("#account").focus().tooltip({placement:"auto",title : "账号不能为空",trigger : 'manual'})
.tooltip('show')
.parents('.form-group').addClass('has-error');
return false;
}else if(password === ""){
$("#password").focus().tooltip({title : '密码不能为空',trigger : 'manual'})
.tooltip('show')
.parents('.form-group').addClass('has-error');
return false;
}else if(confirmPassword !== password){
$("#confirm_password").focus().tooltip({title : '确认密码不正确',trigger : 'manual'})
.tooltip('show')
.parents('.form-group').addClass('has-error');
return false;
}else if(email === ""){
$("#email").focus().tooltip({title : '邮箱不能为空',trigger : 'manual'})
.tooltip('show')
.parents('.form-group').addClass('has-error');
return false;
}else if(code !== undefined && code === ""){
$("#code").focus().tooltip({title : '验证码不能为空',trigger : 'manual'})
.tooltip('show')
.parents('.form-group').addClass('has-error');
return false;
}else {
$("button[type='submit']").button('loading');
}
},
success : function (res) {
$("button[type='submit']").button('reset');
if(res.errcode === 0){
window.location = "{{urlfor "AccountController.Login"}}";
}else{
$("#captcha-img").click();
$("#code").val('');
layer.msg(res.message);
}
}
});
});
</script>
</body>
</html>

View File

@@ -110,7 +110,32 @@
<div class="article-body {{if eq .Model.Editor "markdown"}}markdown-body editormd-preview-container{{else}}editor-content{{end}}" id="page-content">
{{.Content}}
</div>
{{if .Model.IsDisplayComment}}
<div id="articleComment" class="m-comment">
<div class="comment-result">
<strong class="title">相关评论(<b class="comment-total">100</b>)</strong>
<div class="comment-post">
<form class="form" action="/comment/create" method="post">
<label class="enter w-textarea textarea-full">
<textarea class="textarea-input form-control" name="content" placeholder="文明上网,理性发言" style="height: 72px;"></textarea>
<input type="hidden" name="doc_id" value="118003"></label>
<div class="util cf">
<div class="pull-left"><span style="font-size: 12px;color: #999"> 支持Markdown语法 </span></div>
<div class="pull-right">
<span class="form-tip w-fragment fragment-tip">Ctrl + Enter快速发布</span>
<label class="form-submit w-btn btn-success btn-m">
<button class="btn btn-success btn-sm" type="submit">发布</button>
</label>
</div>
</div>
</form>
</div>
<div class="clearfix"></div>
</div>
</div>
{{end}}
</div>
</div>
</div>
<div class="manual-progress"><b class="progress-bar"></b></div>