2
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2025-09-06 10:50:21 +08:00

Username validation in signup and username change forms

This commit is contained in:
Neil Lalonde 2013-02-07 18:23:41 -05:00
parent c524e769d0
commit 79dfccf717
8 changed files with 95 additions and 32 deletions

View file

@ -1,6 +1,7 @@
Discourse.PreferencesUsernameController = Ember.ObjectController.extend Discourse.Presence,
taken: false
invalid: false
saving: false
error: false
@ -8,8 +9,10 @@ Discourse.PreferencesUsernameController = Ember.ObjectController.extend Discours
return true if @get('saving')
return true if @blank('newUsername')
return true if @get('taken')
return true if @get('invalid')
return true if @get('unchanged')
).property('newUsername', 'taken', 'unchanged', 'saving')
false
).property('newUsername', 'taken', 'invalid', 'unchanged', 'saving')
unchanged: (->
@get('newUsername') == @get('content.username')
@ -17,10 +20,14 @@ Discourse.PreferencesUsernameController = Ember.ObjectController.extend Discours
checkTaken: (->
@set('taken', false)
@set('invalid', false)
return if @blank('newUsername')
return if @get('unchanged')
Discourse.User.checkUsername(@get('newUsername')).then (result) =>
@set('taken', true) unless result.available
if result.errors
@set('invalid', true)
else if result.available == false
@set('taken', true)
).observes('newUsername')
saveButtonText: (->

View file

@ -23,6 +23,9 @@
{{#if controller.taken}}
{{i18n user.change_username.taken}}
{{/if}}
{{#if controller.invalid}}
{{i18n user.change_username.invalid}}
{{/if}}
</div>
</div>

View file

@ -2,6 +2,13 @@ window.Discourse.PreferencesUsernameView = Ember.View.extend
templateName: 'user/username'
classNames: ['user-preferences']
didInsertElement: ->
$('#change_username').focus()
keyDown: (e) ->
if e.keyCode is 13
unless @get('controller').get('saveDisabled')
@get('controller').changeUsername()
else
e.preventDefault()
return false