This commit is contained in:
Nick Winter 2014-07-16 07:54:23 -07:00
commit 1fd28c0181
4 changed files with 62 additions and 57 deletions

View file

@ -186,6 +186,7 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# error_saving: "Error Saving" # error_saving: "Error Saving"
# saved: "Changes Saved" # saved: "Changes Saved"
# password_mismatch: "Password does not match." # password_mismatch: "Password does not match."
# password_repeat: "Please repeat your password."
# job_profile: "Job Profile" # job_profile: "Job Profile"
# job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks." # job_profile_approved: "Your job profile has been approved by CodeCombat. Employers will be able to see it until you either mark it inactive or it has not been changed for four weeks."
# job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job." # job_profile_explanation: "Hi! Fill this out, and we will get in touch about finding you a software developer job."

View file

@ -475,33 +475,33 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
lg_title: "Últimos Jogos" lg_title: "Últimos Jogos"
# clas: "CLAs" # clas: "CLAs"
# community: community:
# level_editor: "Level Editor" level_editor: "Editor de Níveis"
# main_title: "CodeCombat Community" main_title: "Comunidade do CodeCombat"
# facebook: "Facebook" facebook: "Facebook"
# twitter: "Twitter" twitter: "Twitter"
# gplus: "Google+" gplus: "Google+"
editor: editor:
main_title: "Editores para CodeCombat" main_title: "Editores do CodeCombat"
main_description: "Constrói os teus níveis, campanhas, unidades e conteúdo educacional. Nós fornecemos todas as ferramentas que precisas!" main_description: "Construa os seus próprios níveis, campanhas, unidades e conteúdo educacional. Nós fornecemos todas as ferramentas de que precisa!"
article_title: "Editor de Artigos" article_title: "Editor de Artigos"
article_description: "Escreve artigos que dêem aos jogadores uma visão geral dos conceitos de programação que podem ser usados nos mais diversos níveis e campanhas." article_description: "Escreva artigos que deem aos jogadores visões gerais de conceitos da programação, que podem ser usados numa variedade de níveis e campanhas."
thang_title: "Editor de Thang" thang_title: "Editor de Thangs"
thang_description: "Constrói unidades, definindo a sua logica, visual e audio por defeito. De momento só é suportado 'importing Flash exported vector graphics'." thang_description: "Construa unidades, definindo a lógica, o visual e o áudio delas. De momento só é suportada a importação de visuais vetoriais exportados do Flash."
level_title: "Editor de níveis" level_title: "Editor de Níveis"
level_description: "Inclui ferramentas para a criação de scripts, upload de áudio, e construção de lógica personalizada para criar todos os tipos de níveis. Tudo o que nós usamos!" level_description: "Inclui as ferramentas para criar scripts, importar áudio e construir lógica personalizada para criar todos os tipos de níveis. Tudo o que nós usamos!"
# achievement_title: "Achievement Editor" achievement_title: "Editor de Conquistas"
# got_questions: "Questions about using the CodeCombat editors?" got_questions: "Questões sobre o uso dos editores do CodeCombat?"
contact_us: "contacta-nos!" contact_us: "Contacte-nos!"
hipchat_prefix: "Podes encontrar-nos no nosso" hipchat_prefix: "Pode também encontrar-nos na nossa"
hipchat_url: "canal HipChat." hipchat_url: "sala HipChat."
# back: "Back" # back: "Back"
revert: "Reverter" revert: "Reverter"
revert_models: "Reverter Modelos" revert_models: "Reverter Modelos"
# pick_a_terrain: "Pick A Terrain" pick_a_terrain: "Escolha Um Terreno"
# small: "Small" small: "Pequeno"
# grassy: "Grassy" grassy: "Com Relva"
# fork_title: "Fork New Version" # fork_title: "Fork New Version"
# fork_creating: "Creating Fork..." # fork_creating: "Creating Fork..."
# randomize: "Randomize" # randomize: "Randomize"
@ -514,10 +514,10 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
level_tab_settings: "Configurações" level_tab_settings: "Configurações"
level_tab_components: "Componentes" level_tab_components: "Componentes"
level_tab_systems: "Sistemas" level_tab_systems: "Sistemas"
level_tab_thangs_title: "Thangs atuais" level_tab_thangs_title: "Thangs Atuais"
# level_tab_thangs_all: "All" level_tab_thangs_all: "Todos"
level_tab_thangs_conditions: "Condições iniciais" level_tab_thangs_conditions: "Condições Iniciais"
level_tab_thangs_add: "Adiciona Thangs" level_tab_thangs_add: "Adicionar Thangs"
# delete: "Delete" # delete: "Delete"
# duplicate: "Duplicate" # duplicate: "Duplicate"
level_settings_title: "Configurações" level_settings_title: "Configurações"
@ -544,13 +544,13 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
# new_achievement_title: "Create a New Achievement" # new_achievement_title: "Create a New Achievement"
# new_achievement_title_login: "Log In to Create a New Achievement" # new_achievement_title_login: "Log In to Create a New Achievement"
article_search_title: "Procurar Artigos Aqui" article_search_title: "Procurar Artigos Aqui"
thang_search_title: "Procurar Tipos de Thang Aqui" thang_search_title: "Procurar Thangs Aqui"
level_search_title: "Procurar Níveis Aqui" level_search_title: "Procurar Níveis Aqui"
# achievement_search_title: "Search Achievements" # achievement_search_title: "Search Achievements"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in." # read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article: article:
edit_btn_preview: "Visualizar" edit_btn_preview: "Pré-visualizar"
edit_article_title: "Editar Artigo" edit_article_title: "Editar Artigo"
general: general:
@ -581,7 +581,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
easy: "Fácil" easy: "Fácil"
medium: "Médio" medium: "Médio"
hard: "Difícil" hard: "Difícil"
# player: "Player" player: "Jogador"
# about: # about:
# who_is_codecombat: "Who is CodeCombat?" # who_is_codecombat: "Who is CodeCombat?"
@ -667,8 +667,8 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
# nutshell_description: "Any resources we provide in the Level Editor are free to use as you like for creating Levels. But we reserve the right to restrict distribution of the Levels themselves (that are created on codecombat.com) so that they may be charged for in the future, if that's what ends up happening." # nutshell_description: "Any resources we provide in the Level Editor are free to use as you like for creating Levels. But we reserve the right to restrict distribution of the Levels themselves (that are created on codecombat.com) so that they may be charged for in the future, if that's what ends up happening."
# canonical: "The English version of this document is the definitive, canonical version. If there are any discrepencies between translations, the English document takes precedence." # canonical: "The English version of this document is the definitive, canonical version. If there are any discrepencies between translations, the English document takes precedence."
# contribute: contribute:
# page_title: "Contributing" page_title: "Contribuir"
# character_classes_title: "Character Classes" # character_classes_title: "Character Classes"
# introduction_desc_intro: "We have high hopes for CodeCombat." # introduction_desc_intro: "We have high hopes for CodeCombat."
# introduction_desc_pref: "We want to be where programmers of all stripes come to learn and play together, introduce others to the wonderful world of coding, and reflect the best parts of the community. We can't and don't want to do that alone; what makes projects like GitHub, Stack Overflow and Linux great are the people who use them and build on them. To that end, " # introduction_desc_pref: "We want to be where programmers of all stripes come to learn and play together, introduce others to the wonderful world of coding, and reflect the best parts of the community. We can't and don't want to do that alone; what makes projects like GitHub, Stack Overflow and Linux great are the people who use them and build on them. To that end, "
@ -691,7 +691,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
# join_desc_4: "and we'll go from there!" # join_desc_4: "and we'll go from there!"
# join_url_email: "Email us" # join_url_email: "Email us"
# join_url_hipchat: "public HipChat room" # join_url_hipchat: "public HipChat room"
# more_about_archmage: "Learn More About Becoming an Archmage" more_about_archmage: "Aprenda Mais Sobre Tornar-se um Arcomago"
# archmage_subscribe_desc: "Get emails on new coding opportunities and announcements." # archmage_subscribe_desc: "Get emails on new coding opportunities and announcements."
# artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to" # artisan_summary_pref: "Want to design levels and expand CodeCombat's arsenal? People are playing through our content at a pace faster than we can build! Right now, our level editor is barebone, so be wary. Making levels will be a little challenging and buggy. If you have visions of campaigns spanning for-loops to"
# artisan_summary_suf: ", then this class is for you." # artisan_summary_suf: ", then this class is for you."
@ -705,7 +705,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
# artisan_join_step2: "Create a new level and explore existing levels." # artisan_join_step2: "Create a new level and explore existing levels."
# artisan_join_step3: "Find us in our public HipChat room for help." # artisan_join_step3: "Find us in our public HipChat room for help."
# artisan_join_step4: "Post your levels on the forum for feedback." # artisan_join_step4: "Post your levels on the forum for feedback."
# more_about_artisan: "Learn More About Becoming an Artisan" more_about_artisan: "Aprenda Mais Sobre Tornar-se um Artesão"
# artisan_subscribe_desc: "Get emails on level editor updates and announcements." # artisan_subscribe_desc: "Get emails on level editor updates and announcements."
# adventurer_summary: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you." # adventurer_summary: "Let us be clear about your role: you are the tank. You are going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class is for you."
# adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you." # adventurer_introduction: "Let's be clear about your role: you are the tank. You're going to take heavy damage. We need people to try out brand-new levels and help identify how to make things better. The pain will be enormous; making good games is a long process and no one gets it right the first time. If you can endure and have a high constitution score, then this class might be for you."
@ -714,7 +714,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
# adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like" # adventurer_join_pref: "Either get together with (or recruit!) an Artisan and work with them, or check the box below to receive emails when there are new levels to test. We'll also be posting about levels to review on our networks like"
# adventurer_forum_url: "our forum" # adventurer_forum_url: "our forum"
# adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!" # adventurer_join_suf: "so if you prefer to be notified those ways, sign up there!"
# more_about_adventurer: "Learn More About Becoming an Adventurer" more_about_adventurer: "Aprenda Mais Sobre Tornar-se um Aventureiro"
# adventurer_subscribe_desc: "Get emails when there are new levels to test." # adventurer_subscribe_desc: "Get emails when there are new levels to test."
# scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the " # scribe_summary_pref: "CodeCombat is not just going to be a bunch of levels. It will also be a resource of programming knowledge that players can hook into. That way, each Artisan can link to a detailed article that for the player's edification: documentation akin to what the "
# scribe_summary_suf: " has built. If you enjoy explaining programming concepts, then this class is for you." # scribe_summary_suf: " has built. If you enjoy explaining programming concepts, then this class is for you."
@ -724,7 +724,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
# scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others." # scribe_attribute_1: "Skill in words is pretty much all you need. Not only grammar and spelling, but able to convey complicated ideas to others."
# contact_us_url: "Contact us" # contact_us_url: "Contact us"
# scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!" # scribe_join_description: "tell us a little about yourself, your experience with programming and what sort of things you'd like to write about. We'll go from there!"
# more_about_scribe: "Learn More About Becoming a Scribe" more_about_scribe: "Aprenda Mais Sobre Tornar-se um Escrivão"
# scribe_subscribe_desc: "Get emails about article writing announcements." # scribe_subscribe_desc: "Get emails about article writing announcements."
# diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you." # diplomat_summary: "There is a large interest in CodeCombat in other countries that do not speak English! We are looking for translators who are willing to spend their time translating the site's corpus of words so that CodeCombat is accessible across the world as soon as possible. If you'd like to help getting CodeCombat international, then this class is for you."
# diplomat_introduction_pref: "So, if there's one thing we learned from the " # diplomat_introduction_pref: "So, if there's one thing we learned from the "
@ -734,7 +734,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
# diplomat_join_pref_github: "Find your language locale file " # diplomat_join_pref_github: "Find your language locale file "
# diplomat_github_url: "on GitHub" # diplomat_github_url: "on GitHub"
# diplomat_join_suf_github: ", edit it online, and submit a pull request. Also, check this box below to keep up-to-date on new internationalization developments!" # diplomat_join_suf_github: ", edit it online, and submit a pull request. Also, check this box below to keep up-to-date on new internationalization developments!"
# more_about_diplomat: "Learn More About Becoming a Diplomat" more_about_diplomat: "Aprenda Mais Sobre Tornar-se um Diplomata"
# diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate." # diplomat_subscribe_desc: "Get emails about i18n developments and levels to translate."
# ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you." # ambassador_summary: "We are trying to build a community, and every community needs a support team when there are troubles. We have got chats, emails, and social networks so that our users can get acquainted with the game. If you want to help people get involved, have fun, and learn some programming, then this class is for you."
# ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you." # ambassador_introduction: "This is a community we're building, and you are the connections. We've got Olark chats, emails, and social networks with lots of people to talk with and help get acquainted with the game and learn from. If you want to help people get involved and have fun, and get a good feel of the pulse of CodeCombat and where we're going, then this class might be for you."
@ -742,7 +742,7 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
# ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!" # ambassador_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll go from there!"
# ambassador_join_note_strong: "Note" # ambassador_join_note_strong: "Note"
# ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!" # ambassador_join_note_desc: "One of our top priorities is to build multiplayer where players having difficulty solving levels can summon higher level wizards to help them. This will be a great way for ambassadors to do their thing. We'll keep you posted!"
# more_about_ambassador: "Learn More About Becoming an Ambassador" more_about_ambassador: "Aprenda Mais Sobre Tornar-se um Embaixador"
# ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments." # ambassador_subscribe_desc: "Get emails on support updates and multiplayer developments."
# counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you." # counselor_summary: "None of the above roles fit what you are interested in? Do not worry, we are on the lookout for anybody who wants a hand in the development of CodeCombat! If you are interested in teaching, game development, open source management, or anything else that you think will be relevant to us, then this class is for you."
# counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design." # counselor_introduction_1: "Do you have life experience? A different perspective on things that can help us decide how to shape CodeCombat? Of all these roles, this will probably take the least time, but individually you may make the most difference. We're on the lookout for wisened sages, particularly in areas like: teaching, game development, open source project management, technical recruiting, entrepreneurship, or design."
@ -752,16 +752,16 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
# counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)." # counselor_join_desc: "tell us a little about yourself, what you've done and what you'd be interested in doing. We'll put you in our contact list and be in touch when we could use advice (not too often)."
# more_about_counselor: "Learn More About Becoming a Counselor" # more_about_counselor: "Learn More About Becoming a Counselor"
# changes_auto_save: "Changes are saved automatically when you toggle checkboxes." # changes_auto_save: "Changes are saved automatically when you toggle checkboxes."
# diligent_scribes: "Our Diligent Scribes:" diligent_scribes: "Os Nossos Dedicados Escrivões:"
# powerful_archmages: "Our Powerful Archmages:" powerful_archmages: "Os Nossos Poderosos Arcomagos:"
# creative_artisans: "Our Creative Artisans:" creative_artisans: "Os Nossos Creativos Artesãos:"
# brave_adventurers: "Our Brave Adventurers:" brave_adventurers: "Os Nossos Bravos Aventureiros:"
# translating_diplomats: "Our Translating Diplomats:" translating_diplomats: "Os Nossos Tradutores Diplomatas:"
# helpful_ambassadors: "Our Helpful Ambassadors:" helpful_ambassadors: "Os Nossos Prestáveis Embaixadores:"
classes: classes:
# archmage_title: "Archmage" archmage_title: "Arcomago"
# archmage_title_description: "(Coder)" archmage_title_description: "(Programador)"
artisan_title: "Artesão" artisan_title: "Artesão"
artisan_title_description: "(Construtor de Níveis)" artisan_title_description: "(Construtor de Níveis)"
adventurer_title: "Aventureiro" adventurer_title: "Aventureiro"
@ -772,8 +772,8 @@ module.exports = nativeDescription: "Português (Portugal)", englishDescription:
diplomat_title_description: "(Tradutor)" diplomat_title_description: "(Tradutor)"
ambassador_title: "Embaixador" ambassador_title: "Embaixador"
ambassador_title_description: "(Suporte)" ambassador_title_description: "(Suporte)"
counselor_title: "Conselheiro" # counselor_title: "Counselor"
counselor_title_description: "(Especialista/Professor)" # counselor_title_description: "(Expert/Teacher)"
ladder: ladder:
please_login: "Por favor, faz log in antes de jogar um jogo para o campeonato." please_login: "Por favor, faz log in antes de jogar um jogo para o campeonato."

View file

@ -87,23 +87,25 @@ module.exports = class SettingsView extends View
# make sure errors show up in the general pane, but keep the password pane clean # make sure errors show up in the general pane, but keep the password pane clean
$('#password-pane input').val('') $('#password-pane input').val('')
@save() unless $(e.target).attr('href') is '#password-pane' #@save() unless $(e.target).attr('href') is '#password-pane'
forms.clearFormAlerts($('#password-pane', @$el)) forms.clearFormAlerts($('#password-pane', @$el))
) )
@chooseTab(location.hash.replace('#', '')) @chooseTab(location.hash.replace('#', ''))
wizardSettingsView = new WizardSettingsView() wizardSettingsView = new WizardSettingsView()
@listenTo wizardSettingsView, 'change', @save @listenTo wizardSettingsView, 'change', @enableSaveButton
@insertSubView wizardSettingsView @insertSubView wizardSettingsView
@jobProfileView = new JobProfileView() @jobProfileView = new JobProfileView()
@listenTo @jobProfileView, 'change', @save @listenTo @jobProfileView, 'change', @enableSaveButton
@insertSubView @jobProfileView @insertSubView @jobProfileView
_.defer => @buildPictureTreema() # Not sure why, but the Treemas don't fully build without this if you reload the page. _.defer => @buildPictureTreema() # Not sure why, but the Treemas don't fully build without this if you reload the page.
afterInsert: -> afterInsert: ->
super() super()
$('#email-pane input[type="checkbox"]').on 'change', ->
$(@).addClass 'changed'
if me.get('anonymous') if me.get('anonymous')
@openModalView new AuthModalView() @openModalView new AuthModalView()
@updateSavedValues() @updateSavedValues()
@ -159,7 +161,7 @@ module.exports = class SettingsView extends View
@$el.find('.gravatar-fallback').toggle not me.get 'photoURL' @$el.find('.gravatar-fallback').toggle not me.get 'photoURL'
save: (e) -> save: (e) ->
$(e.target).addClass('changed') if e $('#settings-tabs input').removeClass 'changed'
forms.clearFormAlerts(@$el) forms.clearFormAlerts(@$el)
@grabData() @grabData()
res = me.validate() res = me.validate()
@ -182,7 +184,7 @@ module.exports = class SettingsView extends View
res.success (model, response, options) => res.success (model, response, options) =>
@changedFields = [] @changedFields = []
@updateSavedValues() @updateSavedValues()
save.text($.i18n.t('account_settings.saved', defaultValue: 'Changes Saved')).removeClass('btn-success', 500) save.text($.i18n.t('account_settings.saved', defaultValue: 'Changes Saved')).removeClass('btn-success', 500).attr('disabled', 'true')
grabData: -> grabData: ->
@grabPasswordData() @grabPasswordData()
@ -199,6 +201,10 @@ module.exports = class SettingsView extends View
return return
if bothThere if bothThere
me.set('password', password1) me.set('password', password1)
else if password1
message = $.i18n.t('account_settings.password_repeat', defaultValue: 'Please repeat your password.')
err = [message: message, property: 'password2', formatted: true]
forms.applyErrorsToForm(@$el, err)
grabOtherData: -> grabOtherData: ->
$('#name', @$el).val @suggestedName if @suggestedName $('#name', @$el).val @suggestedName if @suggestedName
@ -217,7 +223,7 @@ module.exports = class SettingsView extends View
jobProfile = me.get('jobProfile') ? {} jobProfile = me.get('jobProfile') ? {}
updated = false updated = false
for key, val of @jobProfileView.getData() for key, val of @jobProfileView.getData()
updated = updated or jobProfile[key] isnt val updated = updated or not _.isEqual jobProfile[key], val
jobProfile[key] = val jobProfile[key] = val
if updated if updated
jobProfile.updated = (new Date()).toISOString() jobProfile.updated = (new Date()).toISOString()

View file

@ -157,12 +157,10 @@ module.exports.setup = (app) ->
res.send msg + '<p><a href="/account/settings">Account settings</a></p>' res.send msg + '<p><a href="/account/settings">Account settings</a></p>'
res.end() res.end()
app.get '/auth/name/?*', (req, res) -> app.get '/auth/name*', (req, res) ->
parts = req.path.split '/' parts = req.path.split '/'
console.log parts originalName = decodeURI parts[3]
originalName = parts[3] return errors.badInput res, 'No name provided.' unless parts.length > 3 and originalName? and originalName isnt ''
return errors.badInput res, 'No name provided.' unless originalName and originalName isnt ''
return errors.notFound res if parts.length isnt 4 return errors.notFound res if parts.length isnt 4
User.unconflictName originalName, (err, name) -> User.unconflictName originalName, (err, name) ->