50:c47569b938dd
Anton Shestakov <av6@dwimlabs.net>, Sun, 27 Mar 2016 14:47:06 +0800
css: improve contact list borders (between contacts and on the right)

next change 118:f7022798c64a
previous change 46:e3696f4866fc

coffee/register.coffee

Permissions: -rw-r--r--

Other formats: Feeds:
class RegistrationData extends Backbone.Model
defaults:
username: ''
password1: ''
password2: ''
validate: (attrs, options) ->
@unset('username-errors')
@unset('password1-errors')
@unset('password2-errors')
if (attrs.username ? '').trim() is ''
@set('username-errors', ['This field is required.'])
if (attrs.password1 ? '') is ''
@set('password1-errors', ['This field is required.'])
if (attrs.password1 ? '') isnt (attrs.password2 ? '')
@set('password2-errors', ['Passwords must match.'])
else if (attrs.password2 ? '') is ''
@set('password2-errors', ['This field is required.'])
return @has('username-errors') or @has('password1-errors') or @has('password2-errors')
class ProfileData extends Backbone.Model
defaults:
fullname: ''
nickname: ''
avatar: ''
window.regData = new RegistrationData()
window.vcData = new ProfileData()
registerfn = ->
if regData.isValid()
X.register(regData.get('username').trim(), regData.get('password1'))
savefn = ->
data =
fullname: vcData.get('fullname').trim()
nickname: vcData.get('nickname').trim()
okcb = ->
console.debug('vcard is set!', arguments)
$('[data-step="vcard"]').addClass('uk-hidden')
location.href = '/'
failcb = ->
console.warn('vcard is NOT set!', arguments)
$('[data-msg="save-failed"]').removeClass('uk-hidden')
file = $('#avatar').get(0).files[0]
if file?
reader = new FileReader()
reader.onloadend = ->
_(data).extend(avatar: reader.result)
X.savevCard(data, okcb, failcb)
reader.readAsDataURL(file)
else
X.savevCard(data, okcb, failcb)
window.regRivet = rivets.bind($('[data-form="registration"]'), data: regData, register: registerfn)
window.vcRivet = rivets.bind($('[data-form="vcard"]'), data: vcData, save: savefn)
window.X = new Tram.XMPPInterface()
X.on 'register', ->
$('[data-step="registration"]').removeClass('uk-hidden')
X.on 'registered', ->
X.finishRegistration()
$('[data-step="registration"]').addClass('uk-hidden')
X.on 'regifail', ->
$('[data-msg="registration-closed"]').removeClass('uk-hidden')
X.on 'conflict', ->
regData.set('username-errors', ['A user with this username already exists.'])
X.on 'notacceptable', ->
$('[data-msg="registration-failed"]').removeClass('uk-hidden')
X.on 'connected', ->
vcData.set('nickname', regData.get('username').trim())
$('[data-step="vcard"]').removeClass('uk-hidden')
$('#fullname').focus()
X.startRegistration()
$('[data-form="registration"], [data-form="vcard"]').each ->
$form = $(@)
$form.find('input').on 'keydown', (e) ->
if (not @required or @value isnt '') and e.keyCode is 13
e.preventDefault()
index = $form.find('input').index(@)
$next = $form.find('input').eq(index + 1)
if $next.length isnt 0
$next.focus()
else
$form.find('button').trigger('click')