From 0be03aa1fe5cd16ef2dfc91eefe68eabe1ad1e64 Mon Sep 17 00:00:00 2001 From: Ruben Vereecken <rubenvereecken@gmail.com> Date: Sun, 13 Jul 2014 17:06:04 +0200 Subject: [PATCH] Refactored conflicted name checking so it can be used in more places --- app/models/User.coffee | 7 +++++++ app/views/account/settings_view.coffee | 15 ++++++--------- app/views/modal/wizard_settings_modal.coffee | 8 ++++---- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/app/models/User.coffee b/app/models/User.coffee index cdaf1e86a..6e6f6688b 100644 --- a/app/models/User.coffee +++ b/app/models/User.coffee @@ -68,6 +68,13 @@ module.exports = class User extends CocoModel cache[idOrSlug] = user user + @getUnconflictedName: (name, done) -> + $.ajax "/auth/name/#{name}", + success: (data) -> done data.name + statusCode: 409: (data) -> + response = JSON.parse data.responseText + done response.name + getEnabledEmails: -> @migrateEmails() emails = _.clone(@get('emails')) or {} diff --git a/app/views/account/settings_view.coffee b/app/views/account/settings_view.coffee index 22a9641a3..103c4636b 100644 --- a/app/views/account/settings_view.coffee +++ b/app/views/account/settings_view.coffee @@ -63,16 +63,13 @@ module.exports = class SettingsView extends View checkNameExists: => name = $('#name').val() - console.debug 'about to check for ' + name - $.ajax "/auth/name/#{name}", - success: (data) => - forms.clearFormAlerts(@$el) + User.getUnconflictedName name, (newName) => + forms.clearFormAlerts(@$el) + if name is newName @suggestedName = undefined - statusCode: 409: (data) => - forms.clearFormAlerts(@$el) - response = JSON.parse data.responseText - @suggestedName = response.name - forms.setErrorToProperty @$el, 'name', "This name is already taken. What about #{response.name}?", true + else + @suggestedName = newName + forms.setErrorToProperty @$el, 'name', "This name is already taken. What about #{newName}?", true afterRender: -> super() diff --git a/app/views/modal/wizard_settings_modal.coffee b/app/views/modal/wizard_settings_modal.coffee index 736af3f99..12732b28e 100644 --- a/app/views/modal/wizard_settings_modal.coffee +++ b/app/views/modal/wizard_settings_modal.coffee @@ -4,6 +4,7 @@ WizardSprite = require 'lib/surface/WizardSprite' ThangType = require 'models/ThangType' {me} = require 'lib/auth' forms = require 'lib/forms' +User = require 'models/User' module.exports = class WizardSettingsModal extends View id: 'wizard-settings-modal' @@ -28,10 +29,9 @@ module.exports = class WizardSettingsModal extends View checkNameExists: => forms.clearFormAlerts(@$el) name = $('#wizard-settings-name').val() - $.ajax "/auth/name/#{name}", - success: (data) => - forms.clearFormAlerts(@$el) - statusCode: 409: (data) => + User.getUnconflictedName name, (newName) => + forms.clearFormAlerts(@$el) + if name isnt newName forms.setErrorToProperty @$el, 'name', 'This name is already taken so you won\'t be able to keep it.', true onWizardSettingsDone: ->