mirror of
https://github.com/HackPlan/RootPanel.git
synced 2026-04-23 03:10:30 +08:00
注销,fix bugs
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
18
core/static/script/base/ErrorHandle.coffee
Normal file
18
core/static/script/base/ErrorHandle.coffee
Normal 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()
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -25,5 +25,4 @@ prepend sidebar
|
||||
|
||||
|
||||
append script
|
||||
script(src='/script/base/checkAndRequest.js')
|
||||
script(src='/script/account/login.js')
|
||||
|
||||
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user