mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2025-03-23 19:32:03 -04:00
Signup form now has an optional name field
This commit is contained in:
parent
0be03aa1fe
commit
605bf85729
3 changed files with 27 additions and 5 deletions
|
@ -34,6 +34,12 @@ block modal-body-content
|
||||||
input#password.input-large.form-control(name="password", type="password", value=formValues.password)
|
input#password.input-large.form-control(name="password", type="password", value=formValues.password)
|
||||||
|
|
||||||
if mode === 'signup'
|
if mode === 'signup'
|
||||||
|
.form-group
|
||||||
|
label.control-label(for="name", data-i18n="general.name") Name
|
||||||
|
if me.get('name')
|
||||||
|
input#name.input-large.form-control(name="name", type="text", value="#{me.get('name')}")
|
||||||
|
else
|
||||||
|
input#name.input-large.form-control(name="name", type="text", value="", placeholder="Anoner")
|
||||||
.form-group.checkbox
|
.form-group.checkbox
|
||||||
label.control-label(for="subscribe")
|
label.control-label(for="subscribe")
|
||||||
input#subscribe(name="subscribe", type="checkbox", checked='checked')
|
input#subscribe(name="subscribe", type="checkbox", checked='checked')
|
||||||
|
|
|
@ -15,7 +15,6 @@ module.exports = class SettingsView extends View
|
||||||
|
|
||||||
events:
|
events:
|
||||||
'click #save-button': 'save'
|
'click #save-button': 'save'
|
||||||
#'change #settings-panes input': (e) -> @trigger 'inputChanged', e
|
|
||||||
'change #settings-panes input:checkbox': (e) -> @trigger 'checkboxToggled', e
|
'change #settings-panes input:checkbox': (e) -> @trigger 'checkboxToggled', e
|
||||||
'keyup #settings-panes input:text, #settings-panes input:password': (e) -> @trigger 'inputChanged', e
|
'keyup #settings-panes input:text, #settings-panes input:password': (e) -> @trigger 'inputChanged', e
|
||||||
'keyup #name': 'onNameChange'
|
'keyup #name': 'onNameChange'
|
||||||
|
@ -38,7 +37,6 @@ module.exports = class SettingsView extends View
|
||||||
$that = $(that)
|
$that = $(that)
|
||||||
savedValue = $that.data 'saved-value'
|
savedValue = $that.data 'saved-value'
|
||||||
currentValue = $that.val()
|
currentValue = $that.val()
|
||||||
console.debug savedValue, currentValue
|
|
||||||
if savedValue isnt currentValue
|
if savedValue isnt currentValue
|
||||||
@changedFields.push that unless that in @changedFields
|
@changedFields.push that unless that in @changedFields
|
||||||
@enableSaveButton()
|
@enableSaveButton()
|
||||||
|
@ -49,7 +47,6 @@ module.exports = class SettingsView extends View
|
||||||
onToggle: (e) ->
|
onToggle: (e) ->
|
||||||
$that = $(e.currentTarget)
|
$that = $(e.currentTarget)
|
||||||
$that.val $that[0].checked
|
$that.val $that[0].checked
|
||||||
console.debug $that.val()
|
|
||||||
|
|
||||||
enableSaveButton: ->
|
enableSaveButton: ->
|
||||||
$('#save-button', @$el).removeClass 'disabled'
|
$('#save-button', @$el).removeClass 'disabled'
|
||||||
|
@ -62,14 +59,14 @@ module.exports = class SettingsView extends View
|
||||||
$('#save-button', @$el).text 'No Changes'
|
$('#save-button', @$el).text 'No Changes'
|
||||||
|
|
||||||
checkNameExists: =>
|
checkNameExists: =>
|
||||||
name = $('#name').val()
|
name = $('#name', @$el).val()
|
||||||
User.getUnconflictedName name, (newName) =>
|
User.getUnconflictedName name, (newName) =>
|
||||||
forms.clearFormAlerts(@$el)
|
forms.clearFormAlerts(@$el)
|
||||||
if name is newName
|
if name is newName
|
||||||
@suggestedName = undefined
|
@suggestedName = undefined
|
||||||
else
|
else
|
||||||
@suggestedName = newName
|
@suggestedName = newName
|
||||||
forms.setErrorToProperty @$el, 'name', "This name is already taken. What about #{newName}?", true
|
forms.setErrorToProperty @$el, 'name', "That name is taken! How about #{newName}?", true
|
||||||
|
|
||||||
afterRender: ->
|
afterRender: ->
|
||||||
super()
|
super()
|
||||||
|
|
|
@ -15,11 +15,16 @@ module.exports = class AuthModalView extends View
|
||||||
'click #switch-to-signup-button': 'onSignupInstead'
|
'click #switch-to-signup-button': 'onSignupInstead'
|
||||||
'click #signup-confirm-age': 'checkAge'
|
'click #signup-confirm-age': 'checkAge'
|
||||||
'submit': 'onSubmitForm' # handles both submit buttons
|
'submit': 'onSubmitForm' # handles both submit buttons
|
||||||
|
'keyup #name': 'onNameChange'
|
||||||
|
|
||||||
subscriptions:
|
subscriptions:
|
||||||
'server-error': 'onServerError'
|
'server-error': 'onServerError'
|
||||||
'logging-in-with-facebook': 'onLoggingInWithFacebook'
|
'logging-in-with-facebook': 'onLoggingInWithFacebook'
|
||||||
|
|
||||||
|
constructor: (options) ->
|
||||||
|
@onNameChange = _.debounce @checkNameExists, 500
|
||||||
|
super options
|
||||||
|
|
||||||
getRenderData: ->
|
getRenderData: ->
|
||||||
c = super()
|
c = super()
|
||||||
c.showRequiredError = @options.showRequiredError
|
c.showRequiredError = @options.showRequiredError
|
||||||
|
@ -31,6 +36,7 @@ module.exports = class AuthModalView extends View
|
||||||
c.mode = @mode
|
c.mode = @mode
|
||||||
c.formValues = @previousFormInputs or {}
|
c.formValues = @previousFormInputs or {}
|
||||||
c.onEmployersPage = Backbone.history.fragment is "employers"
|
c.onEmployersPage = Backbone.history.fragment is "employers"
|
||||||
|
c.me = me
|
||||||
c
|
c
|
||||||
|
|
||||||
afterInsert: ->
|
afterInsert: ->
|
||||||
|
@ -64,6 +70,8 @@ module.exports = class AuthModalView extends View
|
||||||
userObject = forms.formToObject @$el
|
userObject = forms.formToObject @$el
|
||||||
delete userObject.subscribe
|
delete userObject.subscribe
|
||||||
delete userObject['confirm-age']
|
delete userObject['confirm-age']
|
||||||
|
delete userObject.name if userObject.name is ''
|
||||||
|
userObject.name = @suggestedName if @suggestedName
|
||||||
for key, val of me.attributes when key in ['preferredLanguage', 'testGroupNumber', 'dateCreated', 'wizardColor1', 'name', 'music', 'volume', 'emails']
|
for key, val of me.attributes when key in ['preferredLanguage', 'testGroupNumber', 'dateCreated', 'wizardColor1', 'name', 'music', 'volume', 'emails']
|
||||||
userObject[key] ?= val
|
userObject[key] ?= val
|
||||||
subscribe = @$el.find('#signup-subscribe').prop('checked')
|
subscribe = @$el.find('#signup-subscribe').prop('checked')
|
||||||
|
@ -82,3 +90,14 @@ module.exports = class AuthModalView extends View
|
||||||
|
|
||||||
onServerError: (e) -> # TODO: work error handling into a separate forms system
|
onServerError: (e) -> # TODO: work error handling into a separate forms system
|
||||||
@disableModalInProgress(@$el)
|
@disableModalInProgress(@$el)
|
||||||
|
|
||||||
|
checkNameExists: =>
|
||||||
|
name = $('#name', @$el).val()
|
||||||
|
return forms.clearFormAlerts(@$el) if name is ''
|
||||||
|
User.getUnconflictedName name, (newName) =>
|
||||||
|
forms.clearFormAlerts(@$el)
|
||||||
|
if name is newName
|
||||||
|
@suggestedName = undefined
|
||||||
|
else
|
||||||
|
@suggestedName = newName
|
||||||
|
forms.setErrorToProperty @$el, 'name', "That name is taken! How about #{newName}?", true
|
||||||
|
|
Loading…
Add table
Reference in a new issue