注销,fix bugs

This commit is contained in:
绯村月
2014-03-15 22:00:42 +08:00
parent 68542db892
commit 7d1177c363
8 changed files with 53 additions and 87 deletions

View File

@@ -14,6 +14,4 @@ $ ->
.fail (reply) ->
if reply.status is 400
error = reply.responseJSON.error
pageErrorHandle.clearError()
pageErrorHandle.addError error
pageErrorHandle.showError()
ErrorHandle.flushError error

View File

@@ -1,22 +1,20 @@
$ ->
$('.signup-form').find('button').on 'click', (e) ->
$('.signup-btn').on 'click', (e) ->
e.preventDefault()
$('.signup-form').checkAndRequest '/account/signup/',
username:
check: /^[0-9a-z_]+$/
error: '用户名必须以数字或小写字母开头'
email:
check: /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/
error: '邮箱格式不正确'
passwd:
check: ->
$('#passwd').val() is $('#passwd2').val()
error: '两次密码不一致'
, (reply) ->
location.href = '/'
, (reply) ->
if reply.status is 400
error = reply.responseJSON.error
pageErrorHandle.clearError()
pageErrorHandle.addError error
pageErrorHandle.showError()
if $('#passwd').val() isnt $('#passwd2').val()
ErrorHandle.flushError '两次密码不一致'
else
data =
username: $('#username').val()
passwd: $('#passwd').val()
email: $('#email').val()
$.ajax
method: 'post'
url: '/account/signup/'
data: data
.done (reply) ->
location.href = '/'
.fail (reply) ->
if reply.status is 400
error = reply.responseJSON.error
ErrorHandle.flushError error

View File

@@ -0,0 +1,18 @@
$ ->
window.ErrorHandle =
addError: (error) ->
$('#page-alert').append "<p>#{error}</p>"
clearError: ->
$('#page-alert').find('button').nextAll().remove()
showError: ->
$('#page-alert').show()
hideError: ->
$('#page-alert').hide()
flushError: (error) ->
@clearError()
@addError error
@showError()

View File

@@ -1,58 +0,0 @@
$ ->
window.pageErrorHandle =
addError: (error) ->
$('#page-alert').append "<p>#{error}</p>"
clearError: ->
$('#page-alert').find('button').nextAll().remove()
showError: ->
$('#page-alert').show()
hideError: ->
$('#page-alert').hide()
$.fn.checkAndRequest = (url, opts, callback, errorHandle) ->
defaults = {}
opts = $.extend defaults, opts
form = $(@)
error = false
data = {}
$('#page-alert').show().find('button').nextAll().remove()
for k, v of opts
item = form.find "##{k}"
formGroup = item.closest '.form-group'
method = v['check']
result = switch typeof method
when "object" then method.test item.val()
when "function" then method()
when "string"
rt = switch method
when 'required'
item.val() isnt ''
when ''
true
else
false
else
false
if result
formGroup.addClass 'has-success'
data[k] = item.val()
else
formGroup.addClass 'has-error'
$('#page-alert').append "<p>#{v['error']}</p>"
error = true
if not error
$('#page-alert').hide()
$.ajax
url: url
method: 'post'
data: data
success: callback
error: errorHandle

View File

@@ -2,3 +2,15 @@ $ ->
$('nav a').each ->
$(@).parent().addClass('active') if $(@).attr('href') is location.pathname
$('#logout').on 'click', (e) ->
e.preventDefault()
$.ajax
method: 'post'
url: '/account/logout/'
.done ->
location.href = '/'
.fail (reply) ->
if reply.status is 400
error = reply.responseJSON.error
ErrorHandle.flushError error

View File

@@ -23,11 +23,11 @@ html
ul.nav.navbar-nav.navbar-right
if account
li
a= user.data.username
a= account.data.username
li
a(href='/panel/')= t('word.panel')
li
a(href='/account/logout/')= t('word.logout')
a#logout(href='/account/logout/')= t('word.logout')
else
li
a(href='/account/signup/')= t('word.signup')
@@ -50,6 +50,6 @@ html
#footer
script(src='http://cdn.staticfile.org/jquery/2.0.3/jquery.min.js')
script(src='http://cdn.staticfile.org/twitter-bootstrap/3.0.0-rc2/js/bootstrap.min.js')
script(src='/script/base/ErrorHandle.js')
script(src='/script/layout.js')
block script

View File

@@ -25,5 +25,4 @@ prepend sidebar
append script
script(src='/script/base/checkAndRequest.js')
script(src='/script/account/login.js')

View File

@@ -24,7 +24,7 @@ block main
input#passwd2.form-control(type='password', name='passwd2', required)
.form-group
.col-sm-offset-3
button.btn.btn-lg.btn-primary(type='submit')= t('word.signup')
button.signup-btn.btn.btn-lg.btn-primary(type='submit')= t('word.signup')
prepend sidebar
.row
@@ -32,5 +32,4 @@ prepend sidebar
a.btn.btn-lg.btn-success(href='/account/login/')= t('word.login')
append script
script(src='/script/base/checkAndRequest.js')
script(src='/script/account/signup.js')