Merge branch 'master' into feature/loading-views

This commit is contained in:
Scott Erickson 2014-04-26 12:54:37 -07:00
commit fed5d681f2
79 changed files with 622 additions and 126 deletions

View file

@ -1,5 +1,6 @@
FacebookHandler = require 'lib/FacebookHandler'
GPlusHandler = require 'lib/GPlusHandler'
LinkedInHandler = require 'lib/LinkedInHandler'
locale = require 'locale/locale'
{me} = require 'lib/auth'
Tracker = require 'lib/Tracker'
@ -35,7 +36,7 @@ Application = initialize: ->
@facebookHandler = new FacebookHandler()
@gplusHandler = new GPlusHandler()
$(document).bind 'keydown', preventBackspace
@linkedinHandler = new LinkedInHandler()
preload(COMMON_FILES)
$.i18n.init {
lng: me?.lang() ? 'en'

View file

@ -42,7 +42,18 @@
<script>require('initialize');</script>
<!-- begin LinkedIn code -->
<script>
window.linkedInAsyncInit = function() {
Backbone.Mediator.publish('linkedin-loaded');
};
</script>
<script type="text/javascript" src="http://platform.linkedin.com/in.js">
api_key: 75v8mv4ictvmx6
onLoad: linkedInAsyncInit
authorize: true
</script>
<!-- end LinkedIn code -->
<!-- begin segment.io code -->
<script type="text/javascript">
var analytics=analytics||[];(function(){var e=["identify","track","trackLink","trackForm","trackClick","trackSubmit","page","pageview","ab","alias","ready","group"],t=function(e){return function(){analytics.push([e].concat(Array.prototype.slice.call(arguments,0)))}};for(var n=0;n<e.length;n++)analytics[e[n]]=t(e[n])})(),analytics.load=function(e){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src=("https:"===document.location.protocol?"https://":"http://")+"d2dq2ahtl5zl1z.cloudfront.net/analytics.js/v1/"+e+"/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n)};
@ -70,6 +81,7 @@
/* custom configuration goes here (www.olark.com/documentation) */
olark.identify('1451-787-10-5544');/*]]>*/</script>
<!-- end olark code -->
</head>
<body class="nano clearfix">

View file

@ -0,0 +1,27 @@
CocoClass = require 'lib/CocoClass'
{me} = require 'lib/auth'
{backboneFailure} = require 'lib/errors'
storage = require 'lib/storage'
module.exports = LinkedInHandler = class LinkedInHandler extends CocoClass
constructor: ->
super()
subscriptions:
'linkedin-loaded': 'onLinkedInLoaded'
onLinkedInLoaded: (e) ->
IN.Event.on IN, "auth", @onLinkedInAuth
onLinkedInAuth: (e) => console.log "Authorized with LinkedIn"
constructEmployerAgreementObject: (cb) =>
IN.API.Profile("me")
.fields(["positions","public-profile-url","id","first-name","last-name","email-address"])
.error(cb)
.result (profiles) =>
cb null, profiles.values[0]
destroy: ->
super()

View file

@ -19,6 +19,14 @@ module.exports.createUser = (userObject, failure=backboneFailure, nextURL=null)
error: failure,
success: -> if nextURL then window.location.href = nextURL else window.location.reload()
})
module.exports.createUserWithoutReload = (userObject, failure=backboneFailure) ->
user = new User(userObject)
user.save({}, {
error: failure
success: ->
Backbone.Mediator.publish("created-user-without-reload")
})
module.exports.loginUser = (userObject, failure=genericFailure) ->
jqxhr = $.post('/auth/login',

View file

@ -211,7 +211,7 @@ module.exports = ScriptManager = class ScriptManager extends CocoClass
for module in nextNoteGroup.modules
@processNote(note, nextNoteGroup) for note in module.startNotes()
if nextNoteGroup.script.duration
f = => @onNoteGroupTimeout nextNoteGroup
f = => @onNoteGroupTimeout? nextNoteGroup
setTimeout(f, nextNoteGroup.script.duration)
Backbone.Mediator.publish('note-group-started')

View file

@ -32,7 +32,7 @@ module.exports = class Simulator extends CocoClass
@simulateAnotherTaskAfterDelay()
handleNoGamesResponse: ->
@trigger 'statusUpdate', 'There were no games to simulate--nice. Retrying in 10 seconds.'
@trigger 'statusUpdate', 'There were no games to simulate--all simulations are done or in process. Retrying in 10 seconds.'
@simulateAnotherTaskAfterDelay()
simulateAnotherTaskAfterDelay: =>
@ -102,7 +102,7 @@ module.exports = class Simulator extends CocoClass
sendResultsBackToServer: (results) =>
@trigger 'statusUpdate', 'Simulation completed, sending results back to server!'
console.log "Sending result back to server!"
$.ajax
url: "/queue/scoring"
data: results
@ -279,9 +279,9 @@ class SimulationTask
getReceiptHandle: -> @rawData.receiptHandle
getSessions: -> @rawData.sessions
getSpellKeyToTeamMap: -> @spellKeyToTeamMap
getPlayerTeams: -> _.pluck @rawData.sessions, 'team'
generateSpellKeyToSourceMap: ->
@ -303,7 +303,7 @@ class SimulationTask
fullSpellName = [thangName,spellName].join '/'
if _.contains(teamSpells, fullSpellName)
teamCode[fullSpellName]=spell
_.merge spellKeyToSourceMap, teamCode
spellKeyToSourceMap

View file

@ -164,8 +164,9 @@ module.exports = class Camera extends CocoClass
target = {x: newTargetX, y:newTargetY}
else
target = @target
if not(newZoom >= MAX_ZOOM or newZoom <= Math.max(@minZoom, MIN_ZOOM))
@zoomTo target, newZoom, 0
newZoom = Math.min newZoom, MAX_ZOOM
newZoom = Math.max newZoom, MIN_ZOOM, @minZoom
@zoomTo target, newZoom, 0
onMouseDown: (e) ->
return if @dragDisabled

View file

@ -447,6 +447,10 @@ module.exports = CocoSprite = class CocoSprite extends CocoClass
scaleFactor = @thang.scaleFactor ? 1
pos.x *= @thang.scaleFactorX ? scaleFactor
pos.y *= @thang.scaleFactorY ? scaleFactor
# We might need to do this, but I don't have a good test case yet. TODO: figure out.
#if prop isnt @registration
# pos.x *= if @getActionProp 'flipX' then -1 else 1
# pos.y *= if @getActionProp 'flipY' then -1 else 1
pos
createMarks: ->

View file

@ -45,8 +45,10 @@ module.exports = class Label extends CocoClass
update: ->
return unless @text
offset = @sprite.getOffset? (if @style is 'dialogue' then 'mouth' else 'aboveHead')
offset = @sprite.getOffset? (if @style in ['dialogue', 'say'] then 'mouth' else 'aboveHead')
offset ?= x: 0, y: 0 # temp (if not CocoSprite)
rotation = @sprite.getRotation()
offset.x *= -1 if rotation >= 135 or rotation <= -135
@label.x = @background.x = @sprite.displayObject.x + offset.x
@label.y = @background.y = @sprite.displayObject.y + offset.y
null

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "العربية", englishDescription: "Arabi
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "български език", englishDescri
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Нивото не може да бъде заредено: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "български език", englishDescri
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Català", englishDescription: "Catalan", tr
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Úroveň se nepodařilo otevřít: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "čeština", englishDescription: "Czech", tr
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Banen kunne ikke indlæses: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "dansk", englishDescription: "Danish", trans
new_article_title: "Opret en Ny Artikel"
# new_thang_title: "Create a New Thang Type"
new_level_title: "Opret en Ny Bane"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "Søg Artikler Her"
# thang_search_title: "Search Thang Types Here"
level_search_title: "Søg Baner Her"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Deutsch (Österreich)", englishDescription:
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Deutsch (Schweiz)", englishDescription: "Ge
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Level konnte nicht geladen werden: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Deutsch (Deutschland)", englishDescription:
new_article_title: "Erstelle einen neuen Artikel"
# new_thang_title: "Create a New Thang Type"
new_level_title: "Erstelle ein neues Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Level konnte nicht geladen werden: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Deutsch", englishDescription: "German", tra
new_article_title: "Erstelle einen neuen Artikel"
# new_thang_title: "Create a New Thang Type"
new_level_title: "Erstelle ein neues Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Το επίπεδο δεν μπόρεσε να φορτωθεί: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "ελληνικά", englishDescription: "Gre
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "English (AU)", englishDescription: "English
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "English (UK)", englishDescription: "English
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "English (US)", englishDescription: "English
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "El nivel no puede ser cargado: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "español (América Latina)", englishDescrip
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
candidate_top_skills: "Mejores Habilidades"
candidate_years_experience: "Años Exp"
candidate_last_updated: "Última actualización"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "No se pudo cargar el nivel: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "español (ES)", englishDescription: "Spanis
new_article_title: "Crear un nuevo artículo"
new_thang_title: "Crea un nuevo tipo de objeto"
new_level_title: "Crear un nuevo nivel"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "Buscar artículos aquí"
thang_search_title: "Busca tipos de objetos aquí"
level_search_title: "Buscar niveles aquí"
signup_to_create: "Regístrate para crear nuevo contenido"
read_only_warning2: "Nota: no puedes guardar nada de lo que edites aqui porque no has iniciado sesión."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "No se pudo cargar el nivel: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "español", englishDescription: "Spanish", t
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "فارسی", englishDescription: "Persian",
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "suomi", englishDescription: "Finnish", tran
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Le niveau ne peut pas être chargé: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "français", englishDescription: "French", t
new_article_title: "Créer un nouvel article"
new_thang_title: "Créer un nouveau Type Thang"
new_level_title: "Créer un nouveau niveau"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "Rechercher dans les articles"
thang_search_title: "Rechercher dans les types Thang"
level_search_title: "Rechercher dans les niveaux"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "עברית", englishDescription: "Hebrew",
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "मानक हिन्दी", englishDe
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
candidate_last_updated: "Legutóbb napra-készre hozva"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "A pályát nem sikerült betölteni: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "magyar", englishDescription: "Hungarian", t
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Bahasa Indonesia", englishDescription: "Ind
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Il livello non può essere caricato: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Italiano", englishDescription: "Italian", t
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
candidate_top_skills: "得意分野"
candidate_years_experience: "経験年数"
candidate_last_updated: "最終更新日時"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "レベルがロード出来ませんでした: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "日本語", englishDescription: "Japanese",
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "레벨 로딩 실패 : "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "한국어", englishDescription: "Korean", t
new_article_title: "새로운 기사 작성"
new_thang_title: "새로운 Thang type 시작"
new_level_title: "새로운 레벨 시작"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "기사들은 여기에서 찾으세요"
thang_search_title: "Thang 타입들은 여기에서 찾으세요"
level_search_title: "레벨들은 여기에서 찾으세요"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "lietuvių kalba", englishDescription: "Lith
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Bahasa Melayu", englishDescription: "Bahasa
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Nivået kunne ikke bli lastet: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Norsk Bokmål", englishDescription: "Norweg
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
candidate_top_skills: "Beste vaardigheden"
candidate_years_experience: "Jaren ervaring"
candidate_last_updated: "Laatst aangepast"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Level kon niet geladen worden: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Nederlands (België)", englishDescription:
new_article_title: "Maak een Nieuw Artikel"
new_thang_title: "Maak een Nieuw Thang Type"
new_level_title: "Maak een Nieuw Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "Zoek Artikels Hier"
thang_search_title: "Zoek Thang Types Hier"
level_search_title: "Zoek Levels Hier"
signup_to_create: "Registreer je om nieuwe content te maken"
read_only_warning2: "Pas op, je kunt geen aanpassingen opslaan hier, want je bent niet ingelogd."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
candidate_top_skills: "Beste vaardigheden"
candidate_years_experience: "Jaren ervaring"
candidate_last_updated: "Laatst aangepast"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Level kon niet geladen worden: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Nederlands (Nederland)", englishDescription
new_article_title: "Maak een Nieuw Artikel"
new_thang_title: "Maak een Nieuw Thang Type"
new_level_title: "Maak een Nieuw Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "Zoek Artikels Hier"
thang_search_title: "Zoek Thang Types Hier"
level_search_title: "Zoek Levels Hier"
signup_to_create: "Registreer je om nieuwe content te maken"
read_only_warning2: "Pas op, je kunt geen aanpassingen opslaan hier, want je bent niet ingelogd."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
candidate_top_skills: "Beste vaardigheden"
candidate_years_experience: "Jaren ervaring"
candidate_last_updated: "Laatst aangepast"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Level kon niet geladen worden: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Nederlands", englishDescription: "Dutch", t
new_article_title: "Maak een Nieuw Artikel"
new_thang_title: "Maak een Nieuw Thang Type"
new_level_title: "Maak een Nieuw Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "Zoek Artikels Hier"
thang_search_title: "Zoek Thang Types Hier"
level_search_title: "Zoek Levels Hier"
signup_to_create: "Registreer je om nieuwe content te maken"
read_only_warning2: "Pas op, je kunt geen aanpassingen opslaan hier, want je bent niet ingelogd."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Norwegian Nynorsk", englishDescription: "No
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Nivået kunne ikke bli lastet: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Norsk", englishDescription: "Norwegian", tr
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Nie udało się wczytać poziomu: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "język polski", englishDescription: "Polish
new_article_title: "Stwórz nowy artykuł"
new_thang_title: "Stwórz nowy typ obiektu"
new_level_title: "Stwórz nowy poziom"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "Przeszukaj artykuły"
thang_search_title: "Przeszukaj typy obiektów"
level_search_title: "Przeszukaj poziomy"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "O estágio não pôde ser carregado: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "português do Brasil", englishDescription:
new_article_title: "Criar um Novo Artigo"
new_thang_title: "Criar um Novo Tipo de Thang"
new_level_title: "Criar um Novo Nível"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "Procurar Artigos Aqui"
thang_search_title: "Procurar Tipos de Thang Aqui"
level_search_title: "Procurar Níveis Aqui"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "O nível não pôde ser carregado: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Português europeu", englishDescription: "P
new_article_title: "Criar um Novo Artigo"
new_thang_title: "Criar um Novo Tipo de Thang"
new_level_title: "Criar um Novo Nível"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "Procurar Artigos Aqui"
thang_search_title: "Procurar Tipos de Thang Aqui"
level_search_title: "Procurar Níveis Aqui"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "O estágio não pôde ser carregado: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "português", englishDescription: "Portugues
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Nivelul nu a putut fi încărcat: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "limba română", englishDescription: "Roman
new_article_title: "Crează un articol nou"
new_thang_title: "Crează un nou tip de Thang"
new_level_title: "Crează un nivel nou"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "Caută articole aici"
thang_search_title: "Caută tipuri de Thang aici"
level_search_title: "Caută nivele aici"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
candidate_top_skills: "Лучшие навыки"
candidate_years_experience: "Лет опыта"
candidate_last_updated: "Последнее обновление"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Уровень не может быть загружен: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "русский", englishDescription: "Russi
new_article_title: "Создать новую статью"
new_thang_title: "Создать новый тип объектов"
new_level_title: "Создать новый уровень"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "Искать статьи"
thang_search_title: "Искать типы объектов"
level_search_title: "Искать уровни"
signup_to_create: "Авторизуйтесь для создания нового контента"
read_only_warning2: "Примечание: вы не можете сохранять любые правки здесь, потому что вы не авторизованы."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "slovenčina", englishDescription: "Slovak",
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "slovenščina", englishDescription: "Sloven
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Ниво није могао бити учитан: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "српски", englishDescription: "Serbian
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Nivån kunde inte laddas: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Svenska", englishDescription: "Swedish", tr
new_article_title: "Skapa ny artikel"
new_thang_title: "Skapa ny enhetstyp"
new_level_title: "Skapa ny nivå"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "Sök artiklar här"
thang_search_title: "Sök enhetstyper här"
level_search_title: "Sök nivåer här"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "ไทย", englishDescription: "Thai", tra
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Seviye yüklenemedi: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Türkçe", englishDescription: "Turkish", t
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
new_level_title: "Yeni Bir Seviye Oluştur"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
level_search_title: "Seviye ara"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "українська мова", englishDesc
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "Неможливо завантажити рівень: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "українська мова", englishDesc
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "اُردُو", englishDescription: "Urdu",
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "Tiếng Việt", englishDescription: "Vietn
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
candidate_top_skills: "高级技能"
candidate_years_experience: "多年工作经验"
candidate_last_updated: "最后一次更新"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "关卡不能载入: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "简体中文", englishDescription: "Chinese
new_article_title: "创建一个新物品"
new_thang_title: "创建一个新物品类型"
new_level_title: "创建一个新关卡"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
article_search_title: "在这里搜索物品"
thang_search_title: "在这里搜索物品类型"
level_search_title: "在这里搜索关卡"
signup_to_create: "注册之后就可以创建一个新的关卡"
read_only_warning2: "提示:你不能保存任何编辑,因为你没有登陆"
article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
play_level:
level_load_error: "載入關卡時發生錯誤: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "繁体中文", englishDescription: "Chinese
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -204,6 +204,8 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
# candidate_top_skills: "Top Skills"
# candidate_years_experience: "Yrs Exp"
# candidate_last_updated: "Last Updated"
# candidate_approved: "Us?"
# candidate_active: "Them?"
# play_level:
# level_load_error: "Level could not be loaded: "
@ -370,10 +372,12 @@ module.exports = nativeDescription: "中文", englishDescription: "Chinese", tra
# new_article_title: "Create a New Article"
# new_thang_title: "Create a New Thang Type"
# new_level_title: "Create a New Level"
# new_article_title_signup: "Sign Up to Create a New Article"
# new_thang_title_signup: "Sign Up to Create a New Thang Type"
# new_level_title_signup: "Sign Up to Create a New Level"
# article_search_title: "Search Articles Here"
# thang_search_title: "Search Thang Types Here"
# level_search_title: "Search Levels Here"
# signup_to_create: "Sign Up to Create a New Content"
# read_only_warning2: "Note: you can't save any edits here, because you're not logged in."
# article:

View file

@ -30,10 +30,11 @@ UserSchema = c.object {},
artisanNews: { $ref: '#/definitions/emailSubscription' }
diplomatNews: { $ref: '#/definitions/emailSubscription' }
scribeNews: { $ref: '#/definitions/emailSubscription' }
# notifications
anyNotes: { $ref: '#/definitions/emailSubscription' } # overrides any other notifications settings
recruitNotes: { $ref: '#/definitions/emailSubscription' }
employerNotes: { $ref: '#/definitions/emailSubscription' }
# server controlled
permissions: c.array {'default': []}, c.shortString()
@ -109,6 +110,11 @@ UserSchema = c.object {},
jobProfileApproved: {title: 'Job Profile Approved', type: 'boolean', description: 'Whether your profile has been approved by CodeCombat.'}
jobProfileNotes: {type: 'string', maxLength: 1000, title: 'Our Notes', description: "CodeCombat's notes on the candidate.", format: 'markdown', default: ''}
employerAt: c.shortString {description: "If given employer permissions to view job candidates, for which employer?"}
signedEmployerAgreement: c.object {},
linkedinID: c.shortString {title:"LinkedInID", description: "The user's LinkedIn ID when they signed the contract."}
date: c.date {title: "Date signed employer agreement"}
data: c.object {description: "Cached LinkedIn data slurped from profile."}
c.extendBasicProperties UserSchema, 'user'

View file

@ -133,6 +133,14 @@ a[data-toggle="modal"]
background-color: transparent
margin: 0 14px
border-bottom-color: #ccc
.modal-footer.linkedin
text-align: center
.signin-text
font-size: 15px
padding-bottom: 10px
.login-link
cursor: pointer
// Bigger versions of some Bootstrap icons
// TODO: make the non-white versions of these if we ever need them

View file

@ -1,4 +1,6 @@
#employers-view
#see-candidates
cursor: pointer
.tablesorter
//img
// display: none

View file

@ -125,7 +125,7 @@
background-position-x: -6 * $iconSize
&.prop-label-icon-maxSpeed
background-position-x: -7 * $iconSize
&.prop-label-icon-gold
&.prop-label-icon-gold, &.prop-label-icon-bountyGold
background-position-x: -8 * $iconSize
.prop-value.bar-prop

View file

@ -14,6 +14,8 @@ block content
i.icon-cog
span(data-i18n='account_profile.approved').approved Approved
span(data-i18n='account_profile.not_approved').not-approved Not Approved
if user.id != me.id
button.btn.edit-settings-button#enter-espionage-mode 007
if user.get('jobProfile')
- var profile = user.get('jobProfile');
@ -62,7 +64,7 @@ block content
div.long-description!= marked(profile.longDescription)
if profile.work.length
h3.experience-header
h3.experience-header
img.header-icon(src="/images/pages/account/profile/work.png", alt="")
span(data-i18n="account_profile.work_experience") Work Experience
each job in profile.work
@ -103,7 +105,8 @@ block content
each project in profile.projects
if project.name
li
a(href=project.link)
if project.link && project.link.length && project.link != 'http://example.com'
a(href=project.link)
if project.picture
.project-image(style="background-image: url('/file/" + project.picture + "')")
p= project.name

View file

@ -12,9 +12,11 @@ block content
span(data-i18n="employers.candidates_count_many") many
|
span(data-i18n="employers.candidates_count_suffix") highly skilled and vetted developers looking for work.
h3
a(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/employer_signup", data-i18n="employers.contact_george") Contact George to see our candidates
if !isEmployer
h3
a#see-candidates(title='Contact', tabindex=-1, data-toggle="coco-modal", data-target="modal/employer_signup") Click here to see candidates
if candidates.length
table.table.table-condensed.table-hover.table-responsive.tablesorter
thead

View file

@ -1,9 +1,68 @@
extends /templates/modal/modal_base
block modal-header-content
h3(data-i18n="employer_signup.title") Hire CodeCombat Players
if userIsAnonymous || !userIsAuthorized
h3(data-i18n="employer_signup.title") Sign up to hire CodeCombat players!
else
h3 CodeCombat Placement Agreement
block modal-body-content
h4(data-i18n="employer_signup.sub_heading") Let us find your next brilliant developers.
if userIsAnonymous
if userIsAuthorized
| You appear to be authorized on CodeCombat with LinkedIn.
else
h4(data-i18n="employer_signup.sub_heading") Let us find your next brilliant developers.
p Create an account to get started!
.form
.form-group
label.control-label(for="signup-email", data-i18n="general.email") Email
input#signup-email.form-control.input-large(name="email",type="email")
.form-group
label.control-label(for="signup-password", data-i18n="general.password") Password
input#signup-password.input-large.form-control(name="password", type="password")
else if !userIsAuthorized
.modal-footer.linkedin
p Please sign into your LinkedIn account to verify your identity.
script(type="in/Login" id="linkedInAuthButton" data-onAuth="contractCallback")
p(data-i18n="employer_signup.pitch_body") When you hire one of our players, you will pay CodeCombat 18% of her first-year salary, payable within 30 days of when she starts working. We will fully refund our placement fee if she leaves or is fired within 90 days. Cool? Email george@codecombat.com to get set up with employer permissions to see our candidates.
else
| Please agree to our terms before accessing our candidates.
br
br
b Who we are:
| CodeCombat is a programming game that both teaches and vets programmers. If you accept this agreement, we will let you hire the most talented developers on our platform.
br
br
b Placement fee:
| If you hire our any of our players, you agree to pay us 15% of the candidate's first year annualized starting base salary. The fee is due on the first day that the candidate is employed and is 100% refundable for up to 90 day if the candidate doesn't remain employed at the company for any reason.
br
br
b Interns are free:
| We will not bill you for interns and part time hires (remote or onsite) hired through this site, provided they do not become full time hires within 1 year of their start date. If they do become full time hires within 1 year of their start date, we will invoice you 15% of their first year's annualized starting base salary on their first day of full time employment. For these hires, the 90 day guarantee does not apply.
br
br
| By clicking Agree, you are agreeing to CodeCombat's Placement Agreement on behalf of your company. You also consent to CodeCombat storing basic LinkedIn profile data for verification purposes, including your name, email, public profile URL, and work history.
block modal-footer
if userIsAnonymous
if !userIsAuthorized
.modal-footer.linkedin
b.signin-text Sign in with LinkedIn to complete the registration process.
script(type="in/Login" id="linkedInAuthButton" data-onAuth="contractCallback")
br
br
| Already have a CodeCombat account?
a.login-link(data-toggle="coco-modal", data-target="modal/login") Log in to continue!
else
.modal-footer.linkedin
a.login-link(data-toggle="coco-modal", data-target="modal/login") Please log in to continue.
else if !userIsAnonymous && !userIsAuthorized
.modal-footer.linkedin
| We will record your name and work history for verification purposes.
else if userIsAuthorized && !userHasSignedContract
.modal-footer.linkedin
button.btn.btn-primary(id="contract-agreement-button") I agree
else
.modal-footer.linkedin
| Thanks! You've already agreed to the contract.

View file

@ -11,6 +11,7 @@ module.exports = class ProfileView extends View
'click #toggle-job-profile-approved': 'toggleJobProfileApproved'
'keyup #job-profile-notes': 'onJobProfileNotesChanged'
'click #contact-candidate': 'onContactCandidate'
'click #enter-espionage-mode': 'enterEspionageMode'
constructor: (options, @userID) ->
@onJobProfileNotesChanged = _.debounce @onJobProfileNotesChanged, 1000
@ -52,6 +53,17 @@ module.exports = class ProfileView extends View
@user.save()
@updateProfileApproval()
enterEspionageMode: ->
postData = emailLower: @user.get('email').toLowerCase(), usernameLower: @user.get('name').toLowerCase()
$.ajax
type: "POST",
url: "/auth/spy"
data: postData
success: @espionageSuccess
espionageSuccess: (model) ->
window.location.reload()
onJobProfileNotesChanged: (e) =>
notes = @$el.find("#job-profile-notes").val()
@user.set 'jobProfileNotes', notes

View file

@ -1,36 +1,31 @@
{backboneFailure, genericFailure} = require 'lib/errors'
View = require 'views/kinds/RootView'
template = require 'templates/admin'
storage = require 'lib/storage'
module.exports = class AdminView extends View
id: "admin-view"
template: template
events:
'click #enter-espionage-mode': 'enterEspionageMode'
enterEspionageMode: ->
userEmail = $("#user-email").val().toLowerCase()
username = $("#user-username").val().toLowerCase()
userIdentifier = userEmail || username
postData =
usernameLower: username
emailLower: userEmail
$.ajax
type: "POST",
url: "/auth/spy"
data: postData
success: @espionageSuccess
error: @espionageFailure
espionageSuccess: (model) ->
storage.save('whoami',model)
window.location.reload()
espionageFailure: (jqxhr, status,error)->
console.log "There was an error entering espionage mode: #{error}"

View file

@ -2,6 +2,7 @@ View = require 'views/kinds/RootView'
template = require 'templates/employers'
app = require 'application'
User = require 'models/User'
{me} = require 'lib/auth'
CocoCollection = require 'collections/CocoCollection'
EmployerSignupView = require 'views/modal/employer_signup_modal'
@ -27,6 +28,9 @@ module.exports = class EmployersView extends View
getRenderData: ->
c = super()
c.candidates = @candidates.models
userPermissions = me.get('permissions') ? []
c.isEmployer = _.contains userPermissions, "employer"
c.moment = moment
c

View file

@ -1,7 +1,91 @@
View = require 'views/kinds/ModalView'
template = require 'templates/modal/employer_signup_modal'
forms = require('lib/forms')
User = require 'models/User'
auth = require('lib/auth')
me = auth.me
module.exports = class EmployerSignupView extends View
id: "employer-signup"
template: template
closeButton: true
subscriptions:
"server-error": "onServerError"
"created-user-without-reload": "linkedInAuth"
events:
"click #contract-agreement-button": "agreeToContract"
constructor: (options) ->
super(options)
@authorizedWithLinkedIn = IN?.User?.isAuthorized()
window.tracker?.trackEvent 'Started Employer Signup'
@reloadWhenClosed = false
window.contractCallback = =>
@authorizedWithLinkedIn = IN?.User?.isAuthorized()
@render()
onServerError: (e) ->
@disableModalInProgress(@$el)
afterInsert: ->
super()
linkedInButtonParentElement = document.getElementById("linkedInAuthButton")?.parentNode
if linkedInButtonParentElement
IN.parse()
if me.get('anonymous')
$(".IN-widget").get(0).addEventListener('click', @createAccount, true)
getRenderData: ->
context = super()
context.userIsAuthorized = @authorizedWithLinkedIn
context.userHasSignedContract = "employer" in me.get("permissions")
context.userIsAnonymous = context.me.get('anonymous')
context
agreeToContract: ->
application.linkedinHandler.constructEmployerAgreementObject (err, profileData) =>
if err? then return handleAgreementFailure err
$.ajax
url: "/db/user/#{me.id}/agreeToEmployerAgreement"
data: profileData
type: "POST"
success: @handleAgreementSuccess
error: @handleAgreementFailure
handleAgreementSuccess: (result) ->
window.tracker?.trackEvent 'Employer Agreed to Contract'
me.fetch()
window.location.reload()
handleAgreementFailure: (error) ->
alert "There was an error signing the contract. Please contact team@codecombat.com with this error: #{error.responseText}"
createAccount: (e) =>
window.tracker?.trackEvent 'Finished Employer Signup'
e.stopPropagation()
forms.clearFormAlerts(@$el)
userObject = forms.formToObject @$el
delete userObject.subscribe
for key, val of me.attributes when key in ["preferredLanguage", "testGroupNumber", "dateCreated", "wizardColor1", "name", "music", "volume", "emails"]
userObject[key] ?= val
userObject.emails ?= {}
userObject.emails.employerNotes = {enabled: true}
res = tv4.validateMultiple userObject, User.schema
return forms.applyErrorsToForm(@$el, res.errors) unless res.valid
@enableModalInProgress(@$el)
auth.createUserWithoutReload userObject, null
IN.User.authorize @render, @
linkedInAuth: (e) ->
me.fetch()
@reloadWhenClosed = true
destroy: ->
reloadWhenClosed = @reloadWhenClosed
super()
if reloadWhenClosed
window.location.reload()

View file

@ -249,7 +249,7 @@ module.exports = class HUDView extends View
return null # included in the bar
context =
prop: prop
hasIcon: prop in ["health", "pos", "target", "inventory", "gold", "visualRange", "attackDamage", "attackRange", "maxSpeed"]
hasIcon: prop in ["health", "pos", "target", "inventory", "gold", "bountyGold", "visualRange", "attackDamage", "attackRange", "maxSpeed"]
hasBar: prop in ["health"]
$(prop_template(context))

View file

@ -36,7 +36,7 @@ module.exports = class CastButtonView extends View
@castOptions = $('.autocast-delays', @$el)
delay = me.get('autocastDelay')
delay ?= 5000
if @levelID in ['brawlwood', 'brawlwood-tutorial', 'dungeon-arena', 'dungeon-arena-tutorial']
if @levelID in ['brawlwood', 'brawlwood-tutorial', 'dungeon-arena', 'dungeon-arena-tutorial', 'gold-rush', 'greed']
delay = 90019001
@setAutocastDelay delay
@ -78,7 +78,7 @@ module.exports = class CastButtonView extends View
async.some _.values(@spells), (spell, callback) =>
spell.hasChangedSignificantly spell.getSource(), null, callback
, (castable) =>
@castButtonGroup.toggleClass('castable', castable).toggleClass('casting', @casting)
if @casting
s = $.i18n.t("play_level.tome_cast_button_casting", defaultValue: "Casting")

View file

@ -51,19 +51,24 @@ module.exports = class SpellPaletteView extends View
allDocs['__' + doc.name].push doc
if doc.type is 'snippet' then doc.owner = 'snippets'
propStorage =
'this': 'programmableProperties'
more: 'moreProgrammableProperties'
Math: 'programmableMathProperties'
Array: 'programmableArrayProperties'
Object: 'programmableObjectProperties'
String: 'programmableStringProperties'
Vector: 'programmableVectorProperties'
snippets: 'programmableSnippets'
if @options.programmable
propStorage =
'this': 'programmableProperties'
more: 'moreProgrammableProperties'
Math: 'programmableMathProperties'
Array: 'programmableArrayProperties'
Object: 'programmableObjectProperties'
String: 'programmableStringProperties'
Vector: 'programmableVectorProperties'
snippets: 'programmableSnippets'
else
propStorage =
'this': 'apiProperties'
count = 0
propGroups = {}
for owner, storage of propStorage
added = propGroups[owner] = _.sortBy(@thang[storage] ? []).slice()
props = _.reject @thang[storage] ? [], (prop) -> prop[0] is '_' # no private properties
added = propGroups[owner] = _.sortBy(props).slice()
count += added.length
shortenize = count > 6
@ -78,7 +83,7 @@ module.exports = class SpellPaletteView extends View
doc ?= prop
@entries.push @addEntry(doc, shortenize, tabbify, owner is 'snippets')
groupForEntry = (entry) ->
return 'more' if entry.doc.owner is 'this' and entry.doc.name in propGroups.more
return 'more' if entry.doc.owner is 'this' and entry.doc.name in (propGroups.more ? [])
entry.doc.owner
@entries = _.sortBy @entries, (entry) ->
order = ['this', 'more', 'Math', 'Vector', 'snippets']

View file

@ -73,7 +73,7 @@ module.exports = class TomeView extends View
delete @options.thangs
onNewWorld: (e) ->
thangs = _.filter e.world.thangs, 'isSelectable'
thangs = _.filter e.world.thangs, 'inThangList'
programmableThangs = _.filter thangs, 'isProgrammable'
@createSpells programmableThangs, e.world
@thangList.adjustThangs @spells, thangs
@ -178,14 +178,12 @@ module.exports = class TomeView extends View
thang = e.thang
spellName = e.spellName
@spellList?.$el.hide()
return @clearSpellView() unless thang?.isProgrammable
selectedThangSpells = (@spells[spellKey] for spellKey in @thangSpells[thang.id])
if spellName
spell = _.find selectedThangSpells, {name: spellName}
else
spell = @thangList.topSpellForThang thang
#spell = selectedThangSpells[0] # TODO: remember last selected spell for this thang
return @clearSpellView() unless spell?.canRead()
return @clearSpellView() unless thang
spell = @spellFor thang, spellName
unless spell?.canRead()
@clearSpellView()
@updateSpellPalette thang, spell
return
unless spell.view is @spellView
@clearSpellView()
@spellView = spell.view
@ -198,9 +196,22 @@ module.exports = class TomeView extends View
@spellList.setThangAndSpell thang, spell
@spellView?.setThang thang
@spellTabView?.setThang thang
if @spellPaletteView?.thang isnt thang
@spellPaletteView = @insertSubView new SpellPaletteView thang: thang, supermodel: @supermodel
@spellPaletteView.toggleControls {}, spell.view.controlsEnabled # TODO: know when palette should have been disabled but didn't exist
@updateSpellPalette thang, spell
updateSpellPalette: (thang, spell) ->
return unless thang and @spellPaletteView?.thang isnt thang and thang.programmableProperties or thang.apiProperties
@spellPaletteView = @insertSubView new SpellPaletteView thang: thang, supermodel: @supermodel, programmable: spell?.canRead()
@spellPaletteView.toggleControls {}, spell.view.controlsEnabled if spell # TODO: know when palette should have been disabled but didn't exist
spellFor: (thang, spellName) ->
return null unless thang?.isProgrammable
selectedThangSpells = (@spells[spellKey] for spellKey in @thangSpells[thang.id])
if spellName
spell = _.find selectedThangSpells, {name: spellName}
else
spell = @thangList.topSpellForThang thang
#spell = selectedThangSpells[0] # TODO: remember last selected spell for this thang
spell
reloadAllCode: ->
spell.view.reloadCode false for spellKey, spell of @spells when spell.team is me.team or (spell.team in ["common", "neutral", null])

View file

@ -151,6 +151,22 @@ module.exports = class PlayView extends View
description: "Play head-to-head against fellow Wizards in a dungeon melee!"
levelPath: 'ladder'
}
{
name: 'Gold Rush'
difficulty: 3
id: 'gold-rush'
image: '/file/db/level/52602ecb026e8481e7000001/generic_1.png'
description: "Prove you are better at collecting gold than your opponent!"
levelPath: 'ladder'
}
{
name: 'Greed'
difficulty: 4
id: 'greed'
image: '/file/db/level/526fd3043c637ece50001bb2/the_herd_icon.png'
description: "Liked Dungeon Arena and Gold Rush? Put them together in this economic arena!"
levelPath: 'ladder'
}
{
name: 'Brawlwood'
difficulty: 4
@ -159,14 +175,6 @@ module.exports = class PlayView extends View
description: "Combat the armies of other Wizards in a strategic forest arena! (Fast computer required.)"
levelPath: 'ladder'
}
{
name: 'Gold Rush'
difficulty: 3
id: 'gold-rush'
image: '/file/db/level/525ef8ef06e1ab0962000003/commanding_followers_icon.png'
description: "Prove you are better at collecting gold than your opponent!"
levelPath: 'ladder'
}
]
playerCreated = [
@ -219,7 +227,14 @@ module.exports = class PlayView extends View
image: '/file/db/level/526ae95c1e5cd30000000008/zone_of_danger_icon.png'
description: "Identify the spies hidden among your soldiers - by Nathan Gossett"
}
{
name: 'Harvest Time'
difficulty: 2
id: 'find-the-spy'
image: '/file/db/level/529662dfe0df8f0000000007/grab_the_mushroom_icon.png'
description: "Collect a hundred mushrooms in just five lines of code - by Nathan Gossett"
}
#{
# name: 'Enemy Artillery'
# difficulty: 1

View file

@ -29,7 +29,7 @@ UserSchema.post('init', ->
UserSchema.methods.isAdmin = ->
p = @get('permissions')
return p and 'admin' in p
emailNameMap =
generalNews: 'announcement'
adventurerNews: 'tester'
@ -39,20 +39,20 @@ emailNameMap =
diplomatNews: 'translator'
ambassadorNews: 'support'
anyNotes: 'notification'
UserSchema.methods.setEmailSubscription = (newName, enabled) ->
oldSubs = _.clone @get('emailSubscriptions')
if oldSubs and oldName = emailNameMap[newName]
oldSubs = (s for s in oldSubs when s isnt oldName)
oldSubs.push(oldName) if enabled
@set('emailSubscriptions', oldSubs)
newSubs = _.clone(@get('emails') or _.cloneDeep(jsonschema.properties.emails.default))
newSubs[newName] ?= {}
newSubs[newName].enabled = enabled
@set('emails', newSubs)
@newsSubsChanged = true if newName in mail.NEWS_GROUPS
UserSchema.methods.isEmailSubscriptionEnabled = (newName) ->
emails = @get 'emails'
if not emails
@ -74,10 +74,10 @@ UserSchema.statics.updateMailChimp = (doc, callback) ->
newGroups = []
for [mailchimpEmailGroup, emailGroup] in _.zip(mail.MAILCHIMP_GROUPS, mail.NEWS_GROUPS)
newGroups.push(mailchimpEmailGroup) if doc.isEmailSubscriptionEnabled(emailGroup)
if (not existingProps) and newGroups.length is 0
return callback?() # don't add totally unsubscribed people to the list
params = {}
params.id = mail.MAILCHIMP_LIST_ID
params.email = if existingProps then {leid:existingProps.leid} else {email:doc.get('email')}
@ -113,7 +113,7 @@ UserSchema.pre('save', (next) ->
recipient:
address: @get 'email'
sendwithus.api.send data, (err, result) ->
log.error 'error', err, 'result', result if err
log.error "sendwithus post-save error: #{err}, result: #{result}" if err
next()
)

View file

@ -14,7 +14,7 @@ LevelSessionHandler = require '../levels/sessions/level_session_handler'
serverProperties = ['passwordHash', 'emailLower', 'nameLower', 'passwordReset']
privateProperties = [
'permissions', 'email', 'firstName', 'lastName', 'gender', 'facebookID',
'gplusID', 'music', 'volume', 'aceConfig', 'employerAt'
'gplusID', 'music', 'volume', 'aceConfig', 'employerAt', 'signedEmployerAgreement'
]
candidateProperties = [
'jobProfile', 'jobProfileApproved', 'jobProfileNotes'
@ -182,6 +182,7 @@ UserHandler = class UserHandler extends Handler
getByRelationship: (req, res, args...) ->
return @agreeToCLA(req, res) if args[1] is 'agreeToCLA'
return @agreeToEmployerAgreement(req,res) if args[1] is 'agreeToEmployerAgreement'
return @avatar(req, res, args[0]) if args[1] is 'avatar'
return @getNamesByIDs(req, res) if args[1] is 'names'
return @nameToID(req, res, args[0]) if args[1] is 'nameToID'
@ -232,6 +233,32 @@ UserHandler = class UserHandler extends Handler
documents = (LevelSessionHandler.formatEntity(req, doc) for doc in documents)
@sendSuccess(res, documents)
agreeToEmployerAgreement: (req, res) ->
userIsAnonymous = req.user?.get('anonymous')
if userIsAnonymous then return errors.unauthorized(res, "You need to be logged in to agree to the employer agreeement.")
profileData = req.body
#TODO: refactor this bit to make it more elegant
if not profileData.id or not profileData.positions or not profileData.emailAddress or not profileData.firstName or not profileData.lastName
return errors.badInput(res, "You need to have a more complete profile to sign up for this service.")
@modelClass.findById(req.user.id).exec (err, user) =>
if user.get('employerAt') or user.get('signedEmployerAgreement') or "employer" in user.get('permissions')
return errors.conflict(res, "You already have signed the agreement!")
#TODO: Search for the current position
employerAt = _.filter(profileData.positions.values,"isCurrent")[0]?.company.name ? "Not available"
signedEmployerAgreement =
linkedinID: profileData.id
date: new Date()
data: profileData
updateObject =
"employerAt": employerAt
"signedEmployerAgreement": signedEmployerAgreement
$push: "permissions":'employer'
User.update {"_id": req.user.id}, updateObject, (err, result) =>
if err? then return errors.serverError(res, "There was an issue updating the user object to reflect employer status: #{err}")
res.send({"message": "The agreement was successful."})
res.end()
getCandidates: (req, res) ->
authorized = req.user.isAdmin() or ('employer' in req.user.get('permissions'))
since = (new Date((new Date()) - 2 * 30.4 * 86400 * 1000)).toISOString()