Skip to content

Commit

Permalink
add signin popup
Browse files Browse the repository at this point in the history
  • Loading branch information
tshi0912 committed Sep 27, 2012
1 parent 64191fa commit 480dc9e
Show file tree
Hide file tree
Showing 15 changed files with 203 additions and 42 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package net.baguajie.web.mvc.controllers;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import net.baguajie.constants.ApplicationConstants;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.SessionAttributes;

@Controller
@SessionAttributes(ApplicationConstants.SESSION_SIGNIN_USER)
public class GetSignInStatusBarController {

@RequestMapping(value="/signin/navbar", method=RequestMethod.GET)
public String thumb(Model model, HttpServletRequest request,
HttpSession session){
return "comp/sign.in.status";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import net.baguajie.repositories.UserRepository;
import net.baguajie.vo.AjaxResult;
import net.baguajie.vo.SignInCredentialVo;
import net.baguajie.vo.ValidationEngineError;
import net.baguajie.web.utils.AjaxUtil;
import net.baguajie.web.utils.SessionUtil;

Expand All @@ -31,7 +32,7 @@

@Controller
public class SignInController {

@Autowired
UserRepository userPepository;
@Autowired
Expand All @@ -40,65 +41,99 @@ public class SignInController {
SessionUtil sessionUtil;
@Autowired
AjaxUtil ajaxUtil;
@RequestMapping(value="/signin", method=RequestMethod.GET)
public String signIn(HttpSession session){
if(session.getAttribute(ApplicationConstants.SESSION_SIGNIN_USER)!=null){

@RequestMapping(value = "/signin", method = RequestMethod.GET)
public String signIn(HttpSession session) {
if (session.getAttribute(ApplicationConstants.SESSION_SIGNIN_USER) != null) {
return "redirect:/";
}
return "sign.in";
}

@RequestMapping(value="/checksignin", method=RequestMethod.GET)
public @ResponseBody AjaxResult checkSignIn(HttpServletRequest request,
ModelAndView mav, HttpSession session){
if(!ajaxUtil.isAjaxRequest(request)){

@RequestMapping(value = "/checksignin", method = RequestMethod.GET)
public @ResponseBody
AjaxResult checkSignIn(HttpServletRequest request, ModelAndView mav,
HttpSession session) {
if (!ajaxUtil.isAjaxRequest(request)) {
throw new ResourceNotFoundException();
}
if(sessionUtil.getSignInUser(session)!=null){
if (sessionUtil.getSignInUser(session) != null) {
Calendar c = Calendar.getInstance();
c.setTimeZone(TimeZone.getTimeZone("UTC"));
return new AjaxResult(AjaxResultCode.SUCCESS, c.getTimeInMillis());
}else{
} else {
return new AjaxResult(AjaxResultCode.NEED_SIGNIN);
}
}
@RequestMapping(value="/signin", method=RequestMethod.POST)
public String signIn(@Valid SignInCredentialVo signInCredentialVo,
BindingResult result,
Model model, HttpSession session){

@RequestMapping(value = "/signin/validate", method = RequestMethod.POST)
public @ResponseBody
Object[] validateSignIn(@Valid SignInCredentialVo signInCredentialVo,
BindingResult result, Model model, HttpSession session) {
User existed = null;
if(!result.hasFieldErrors("signInName")){
existed = userPepository
.getByEmail(signInCredentialVo.getSignInName());
if(existed == null){
result.addError(new FieldError("signInCredentialVo", "signInName",
"注册邮箱不存在"));
}else{
if(!signInCredentialVo.getSignInPassword()
.equals(existed.getPassword())){
result.addError(new FieldError("signInCredentialVo", "signInPassword",
"密码不正确"));
if (!result.hasFieldErrors("signInName")) {
existed = userPepository.getByEmail(signInCredentialVo
.getSignInName());
if (existed == null) {
result.addError(new FieldError("signInCredentialVo",
"signInName", "注册邮箱不存在"));
} else {
if (!signInCredentialVo.getSignInPassword().equals(
existed.getPassword())) {
result.addError(new FieldError("signInCredentialVo",
"signInPassword", "密码不正确"));
}
}
}

if(result.hasErrors()){
if (result.hasErrors()) {
return ValidationEngineError.normalize(ValidationEngineError
.from(result));
}else{
if (existed != null) {
session.setAttribute(ApplicationConstants.SESSION_SIGNIN_USER,
existed);
UserPreference up = userPreferenceRepository.getByUser(existed);
if (up != null) {
sessionUtil.setSignInUserPrefer(up, session);
}
}
return new ValidationEngineError[]{};
}
}

@RequestMapping(value = "/signin", method = RequestMethod.POST)
public String signIn(@Valid SignInCredentialVo signInCredentialVo,
BindingResult result, Model model, HttpSession session) {
User existed = null;
if (!result.hasFieldErrors("signInName")) {
existed = userPepository.getByEmail(signInCredentialVo
.getSignInName());
if (existed == null) {
result.addError(new FieldError("signInCredentialVo",
"signInName", "注册邮箱不存在"));
} else {
if (!signInCredentialVo.getSignInPassword().equals(
existed.getPassword())) {
result.addError(new FieldError("signInCredentialVo",
"signInPassword", "密码不正确"));
}
}
}

if (result.hasErrors()) {
return "sign.in";
}
if(existed!=null){
session.setAttribute(
ApplicationConstants.SESSION_SIGNIN_USER, existed);

if (existed != null) {
session.setAttribute(ApplicationConstants.SESSION_SIGNIN_USER,
existed);
UserPreference up = userPreferenceRepository.getByUser(existed);
if(up!=null){
if (up != null) {
sessionUtil.setSignInUserPrefer(up, session);
}
}

return "redirect:/";
}

}
1 change: 1 addition & 0 deletions baguajie-web/src/main/webapp/WEB-INF/views/apps.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/bootstrap.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/baguajie-base.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/baguajie-theme.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/validationEngine.bootstrap.css" />" />
<script type="text/javascript" src="<c:url value="/resources/js/ga.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.1.7.1.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/baguajie.op.js" />" ></script>
Expand Down
6 changes: 5 additions & 1 deletion baguajie-web/src/main/webapp/WEB-INF/views/comp/header.jsp
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://baguajie.net/functions" prefix="f" %>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container content-wrapper">
Expand Down Expand Up @@ -53,7 +54,7 @@
</ul>
</li>
<li class="divider-vertical"></li>
<li><a href="<c:url value="/signin" />">登录</a></li>
<li><a href="#sign-in-modal" data-toggle="modal">登录</a></li>
<li><a href="<c:url value="/signup" />">注册</a></li>
</ul>
</c:when>
Expand Down Expand Up @@ -111,6 +112,9 @@
<li><input name="signin-ts" type="hidden" value="${requestScope.signin_ts}"/></li>
</ul>
</div>
<c:import url="/WEB-INF/views/modal/sign.in.jsp"/>
<script type="text/javascript" src="<c:url value="/resources/languages/zh-cn/jquery.validationEngine.lang.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.validationEngine.js" />" ></script>
<script type="text/javascript">
function adjustWebWidth(){
var web_width = $(window).width()-50;
Expand Down
38 changes: 38 additions & 0 deletions baguajie-web/src/main/webapp/WEB-INF/views/comp/sign.in.status.jsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:if test="${not empty signInUser}">
<ul class="nav pull-right">
<li class="dropdown"><a class="dropdown-toggle"
data-toggle="dropdown" href="#"> 关于 <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="#">关于八卦街</a></li>
<li><a href="#">八卦工具</a></li>
<li><a href="#">开发动态</a></li>
<li class="divider"></li>
<li><a href="#">帮助</a></li>
<li><a href="#">反馈</a></li>
</ul></li>
<li class="divider-vertical"></li>
<li id="nav-profile"><a
href="<c:url value="/profiles/${signInUser.id}" />">我的门面</a></li>
<li id="nav-dashboard"><a href="<c:url value="/dashboard" />">我的八卦圈</a></li>
<li class="dropdown"><a class="dropdown-toggle"
data-toggle="dropdown" href="#"> 消息 <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="#">查看评论</a></li>
<li><a href="#">查看@我</a></li>
<li><a href="#">查看私信</a></li>
<li><a href="#">查看通知</a></li>
</ul></li>
<li class="dropdown"><a class="dropdown-toggle"
data-toggle="dropdown" href="#"> 账号 <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="<c:url value="/setting" />">账号设置</a></li>
<li class="divider"></li>
<li><a href="<c:url value="/signout" />">退出登录</a></li>
</ul></li>
</ul>
</c:if>
1 change: 1 addition & 0 deletions baguajie-web/src/main/webapp/WEB-INF/views/dashboard.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/jquery.pnotify.default.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/jquery-ui-1.8.18.custom.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/jquery.pnotify.baguajie.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/validationEngine.bootstrap.css" />" />
<script type="text/javascript" src="<c:url value="/resources/js/ga.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.1.7.1.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/baguajie.init.js" />" ></script>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/bootstrap.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/baguajie-base.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/baguajie-theme.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/validationEngine.bootstrap.css" />" />
<script type="text/javascript" src="<c:url value="/resources/js/ga.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.1.7.1.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/baguajie.op.js" />" ></script>
Expand Down
1 change: 1 addition & 0 deletions baguajie-web/src/main/webapp/WEB-INF/views/home.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/jquery.pnotify.default.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/jquery-ui-1.8.18.custom.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/jquery.pnotify.baguajie.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/validationEngine.bootstrap.css" />" />
<script type="text/javascript" src="<c:url value="/resources/js/ga.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.1.7.1.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/baguajie.init.js" />" ></script>
Expand Down
1 change: 1 addition & 0 deletions baguajie-web/src/main/webapp/WEB-INF/views/map.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/bootstrap.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/baguajie-base.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/baguajie-theme.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/validationEngine.bootstrap.css" />" />
<script type="text/javascript" src="<c:url value="/resources/js/ga.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.1.7.1.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/baguajie.init.js" />" ></script>
Expand Down
54 changes: 54 additions & 0 deletions baguajie-web/src/main/webapp/WEB-INF/views/modal/sign.in.jsp
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<div id="sign-in-modal" class="modal hide fade"
style="width: 450px;">
<form id="signInForm" class="mb-0 fs-14 lh-16 sign-in" action="<c:url value="/signin" />" method="post">
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h3>登录八卦街</h3>
</div>
<div class="modal-body">
<div class="row-fluid mt-10">
<input id="signInName" class="validate[required,custom[email]] input-large" name="signInName" type="text"
data-prompt-position="centerRight:0,-4" placeholder="八卦街注册邮箱" autocomplete="off" /></div>
<div class="row-fluid mt-10">
<input id="signInPassword" class="validate[required] input-large" name="signInPassword" type="password"
data-prompt-position="centerRight:0,-4" placeholder="输入密码" autocomplete="off" /></div>
<div class="row-fluid mt-10">
<a href="<c:url value="/signup" />">还没有八卦街账号?立即注册!</a>
<a href="#" class="f-r">忘记密码?</a>
</div>
</div>
<div class="modal-footer">
<input type="submit" class="btn btn-primary btn-large" value="登录"></input>
</div>
</form>
</div>
<script type="text/javascript">
$(function() {
$('#signInForm').validationEngine({
prettySelect: true,
useSuffix: '_target',
promptPosition: 'centerRight',
autoPositionUpdate: true,
ajaxFormValidation: true,
ajaxFormValidationMethod: 'post',
ajaxFormValidationURL: '<c:url value="/signin/validate" />',
onBeforeAjaxFormValidation: function(form, options){
form.find('.modal-footer input[type="submit"]').button('loading');
},
onAjaxFormComplete: function(status, form, errors, options){
form.find('.modal-footer input[type="submit"]').button('reset')
if(status == true){
$('#sign-in-modal').modal('hide');
$.get('<c:url value="/signin/navbar" />', function(data){
var statefulNav = $.trim(data);
if(statefulNav){
$('.navbar .nav.pull-right').replaceWith(statefulNav);
}
})
}
}
});
});
</script>
1 change: 1 addition & 0 deletions baguajie-web/src/main/webapp/WEB-INF/views/profiles.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/jquery.pnotify.default.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/jquery-ui-1.8.18.custom.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/jquery.pnotify.baguajie.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/validationEngine.bootstrap.css" />" />
<script type="text/javascript" src="<c:url value="/resources/js/ga.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.1.7.1.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/baguajie.init.js" />" ></script>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -231,8 +231,6 @@
<script type="text/javascript" src="<c:url value="/resources/js/jquery-ui-1.8.18.custom.min.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.scrollTo.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.form.js" />"></script>
<script type="text/javascript" src="<c:url value="/resources/languages/zh-cn/jquery.validationEngine.lang.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.validationEngine.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.Jcrop.js" />" ></script>
<script type="text/javascript">
$(function(){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/bootstrap.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/baguajie-base.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/baguajie-theme.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/validationEngine.bootstrap.css" />" />
<script type="text/javascript" src="<c:url value="/resources/js/ga.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.1.7.1.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/baguajie.init.js" />" ></script>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/bootstrap.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/baguajie-base.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/baguajie-theme.css" />" />
<link rel="stylesheet" type="text/css" href="<c:url value="/resources/css/validationEngine.bootstrap.css" />" />
<script type="text/javascript" src="<c:url value="/resources/js/ga.js" />" ></script>
<script type="text/javascript" src="<c:url value="/resources/js/jquery.1.7.1.js" />" ></script>
</head>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,8 @@ a.img img:hover, a.img img:active{
font-size: 16px;
}

.sign-in input[type="text"]{
.sign-in input[type="text"],
.sign-in input[type="password"]{
height: 24px;
}

Expand Down

0 comments on commit 480dc9e

Please sign in to comment.