mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-25 08:38:09 -05:00
Merge branch 'master' into production
This commit is contained in:
commit
58b1d1ae8a
12 changed files with 211 additions and 37 deletions
|
@ -107,8 +107,11 @@ _.extend CampaignSchema.properties, {
|
|||
level: { type: 'string', links: [{rel: 'db', href: '/db/level/{($)}/version'}], format: 'latest-version-original-reference' }
|
||||
type: { enum: ['heroes', 'items', 'levels'] }
|
||||
}}
|
||||
|
||||
campaign: c.shortString title: 'Campaign', description: 'Which campaign this level is part of (like "desert").', format: 'hidden' # Automatically set by campaign editor.
|
||||
|
||||
tasks: c.array {title: 'Tasks', description: 'Tasks to be completed for this level.'}, c.task
|
||||
|
||||
#- normal properties
|
||||
position: c.point2d()
|
||||
}
|
||||
|
|
|
@ -10,6 +10,10 @@
|
|||
.treema-root
|
||||
max-height: 100%
|
||||
overflow: scroll
|
||||
|
||||
.completion
|
||||
position: absolute
|
||||
right: 0
|
||||
|
||||
#right-column
|
||||
position: absolute
|
||||
|
@ -17,12 +21,3 @@
|
|||
bottom: 0
|
||||
right: 0
|
||||
width: 75%
|
||||
|
||||
#campaign-level-view
|
||||
position: absolute
|
||||
top: 0
|
||||
left: 0
|
||||
right: 0
|
||||
bottom: 0
|
||||
background-color: white
|
||||
z-index: 3
|
13
app/styles/editor/campaign/campaign-level-view.sass
Normal file
13
app/styles/editor/campaign/campaign-level-view.sass
Normal file
|
@ -0,0 +1,13 @@
|
|||
#campaign-level-view
|
||||
background-color: white
|
||||
position: absolute
|
||||
top: 0
|
||||
left: 0
|
||||
right: 0
|
||||
z-index: 3
|
||||
|
||||
.tasks
|
||||
padding: 15px
|
||||
|
||||
.button.close
|
||||
font-size: 63px
|
|
@ -1,4 +1,17 @@
|
|||
.jumbotron
|
||||
.button.close(type="button", aria-hidden="true") ×
|
||||
h1= level.get('name')
|
||||
h1
|
||||
span.spr= level.get('name')
|
||||
a(href="/editor/level/#{level.get('slug')}", target="_blank") (edit)
|
||||
p= level.get('description')
|
||||
|
||||
h2 TODO: actually put useful stuff in here
|
||||
|
||||
if level.get('tasks')
|
||||
.tasks
|
||||
h3 Tasks (read only)
|
||||
ul.list-unstyled
|
||||
for task in level.get('tasks')
|
||||
li
|
||||
input(type='checkbox', checked=task.complete)
|
||||
span.spl= task.name
|
||||
|
|
|
@ -164,6 +164,7 @@ module.exports = class CampaignEditorView extends RootView
|
|||
@listenTo @campaignView, 'level-moved', @onCampaignLevelMoved
|
||||
@listenTo @campaignView, 'adjacent-campaign-moved', @onAdjacentCampaignMoved
|
||||
@listenTo @campaignView, 'level-clicked', @onCampaignLevelClicked
|
||||
@listenTo @campaignView, 'level-double-clicked', @onCampaignLevelDoubleClicked
|
||||
@insertSubView @campaignView
|
||||
|
||||
onTreemaChanged: (e, nodes) =>
|
||||
|
@ -188,8 +189,7 @@ module.exports = class CampaignEditorView extends RootView
|
|||
path = node.getPath()
|
||||
return unless _.string.startsWith path, '/levels/'
|
||||
original = path.split('/')[2]
|
||||
level = @supermodel.getModelByOriginal Level, original
|
||||
@insertSubView new CampaignLevelView({}, level)
|
||||
@openCampaignLevelView @supermodel.getModelByOriginal Level, original
|
||||
|
||||
onCampaignLevelMoved: (e) ->
|
||||
path = "levels/#{e.levelOriginal}/position"
|
||||
|
@ -204,6 +204,14 @@ module.exports = class CampaignEditorView extends RootView
|
|||
levelTreema.select()
|
||||
# levelTreema.open()
|
||||
|
||||
onCampaignLevelDoubleClicked: (levelOriginal) ->
|
||||
@openCampaignLevelView @supermodel.getModelByOriginal Level, levelOriginal
|
||||
|
||||
openCampaignLevelView: (level) ->
|
||||
@insertSubView campaignLevelView = new CampaignLevelView({}, level)
|
||||
@listenToOnce campaignLevelView, 'hidden', => @$el.find('#campaign-view').show()
|
||||
@$el.find('#campaign-view').hide()
|
||||
|
||||
updateRewardsForLevel: (level, rewards) ->
|
||||
achievements = @supermodel.getModels(Achievement)
|
||||
achievements = (a for a in achievements when a.get('related') is level.get('original'))
|
||||
|
@ -250,7 +258,27 @@ class LevelsNode extends TreemaObjectNode
|
|||
class LevelNode extends TreemaObjectNode
|
||||
valueClass: 'treema-level'
|
||||
buildValueForDisplay: (valEl, data) ->
|
||||
@buildValueForDisplaySimply valEl, data.name
|
||||
name = data.name
|
||||
if data.requiresSubscription
|
||||
name = "[P] " + name
|
||||
|
||||
status = ''
|
||||
el = 'strong'
|
||||
if data.adminOnly
|
||||
status += " (disabled)"
|
||||
el = 'span'
|
||||
else if data.adventurer
|
||||
status += " (adventurer)"
|
||||
|
||||
completion = ''
|
||||
if data.tasks
|
||||
completion = "#{(t for t in data.tasks when t.complete).length} / #{data.tasks.length}"
|
||||
|
||||
valEl.append $("<#{el}></#{el}>").addClass('treema-shortened').text name
|
||||
if status
|
||||
valEl.append $('<em class="spl"></em>').text status
|
||||
if completion
|
||||
valEl.append $('<span class="completion"></span>').text completion
|
||||
|
||||
populateData: ->
|
||||
return if @data.name?
|
||||
|
|
|
@ -1,19 +1,24 @@
|
|||
CocoView = require 'views/core/CocoView'
|
||||
Level = require 'models/Level'
|
||||
|
||||
module.exports = class CampaignLevelView extends CocoView
|
||||
id: 'campaign-level-view'
|
||||
template: require 'templates/editor/campaign/campaign-level-view'
|
||||
|
||||
|
||||
events:
|
||||
'click .close': 'onClickClose'
|
||||
|
||||
|
||||
constructor: (options, @level) ->
|
||||
super(options)
|
||||
|
||||
@fullLevel = new Level _id: @level.id
|
||||
@fullLevel.fetch()
|
||||
@listenToOnce @fullLevel, 'sync', => @render?()
|
||||
|
||||
getRenderData: ->
|
||||
c = super()
|
||||
c.level = @level
|
||||
c.level = if @fullLevel.loaded then @fullLevel else @level
|
||||
c
|
||||
|
||||
onClickClose: ->
|
||||
@$el.addClass('hidden')
|
||||
@$el.addClass('hidden')
|
||||
@trigger 'hidden'
|
||||
|
|
|
@ -34,6 +34,7 @@ module.exports = class CampaignView extends RootView
|
|||
events:
|
||||
'click .map-background': 'onClickMap'
|
||||
'click .level a': 'onClickLevel'
|
||||
'dblclick .level a': 'onDoubleClickLevel'
|
||||
'click .level-info-container .start-level': 'onClickStartLevel'
|
||||
'mouseenter .level a': 'onMouseEnterLevel'
|
||||
'mouseleave .level a': 'onMouseLeaveLevel'
|
||||
|
@ -236,8 +237,9 @@ module.exports = class CampaignView extends RootView
|
|||
@$levelInfo?.hide()
|
||||
levelElement = $(e.target).parents('.level')
|
||||
levelSlug = levelElement.data('level-slug')
|
||||
levelOriginal = levelElement.data('level-original')
|
||||
if @editorMode
|
||||
return @trigger 'level-clicked', levelSlug
|
||||
return @trigger 'level-clicked', levelOriginal
|
||||
level = _.find _.values(@campaign.get('levels')), slug: levelSlug
|
||||
if application.isIPadApp
|
||||
@$levelInfo = @$el.find(".level-info-container[data-level-slug=#{levelSlug}]").show()
|
||||
|
@ -256,6 +258,12 @@ module.exports = class CampaignView extends RootView
|
|||
@startLevel levelElement
|
||||
window.tracker?.trackEvent 'Clicked Level', category: 'World Map', levelID: levelSlug, ['Google Analytics']
|
||||
|
||||
onDoubleClickLevel: (e) ->
|
||||
return unless @editorMode
|
||||
levelElement = $(e.target).parents('.level')
|
||||
levelOriginal = levelElement.data('level-original')
|
||||
@trigger 'level-double-clicked', levelOriginal
|
||||
|
||||
onClickStartLevel: (e) ->
|
||||
levelElement = $(e.target).parents('.level-info-container')
|
||||
@startLevel levelElement
|
||||
|
|
|
@ -137,9 +137,9 @@ class LinuxNodeDownloader(NodeDownloader):
|
|||
@property
|
||||
def download_url(self):
|
||||
if self.dependency.config.mem_width == 64:
|
||||
return u"http://nodejs.org/dist/v0.10.24/node-v0.10.24-linux-x64.tar.gz"
|
||||
return u"http://nodejs.org/dist/v0.10.35/node-v0.10.35-linux-x64.tar.gz"
|
||||
else:
|
||||
return u"http://nodejs.org/dist/v0.10.24/node-v0.10.24-linux-x86.tar.gz"
|
||||
return u"http://nodejs.org/dist/v0.10.35/node-v0.10.35-linux-x86.tar.gz"
|
||||
|
||||
class WindowsNodeDownloader(NodeDownloader):
|
||||
@property
|
||||
|
@ -147,16 +147,16 @@ class WindowsNodeDownloader(NodeDownloader):
|
|||
raise NotImplementedError(u"Needs MSI to be executed to install npm")
|
||||
#"http://nodejs.org/dist/v0.10.24/x64/node-v0.10.24-x64.msi"
|
||||
if self.dependency.config.mem_width == 64:
|
||||
return u"http://nodejs.org/dist/v0.10.24/x64/node.exe"
|
||||
return u"http://nodejs.org/dist/v0.10.35/x64/node.exe"
|
||||
else:
|
||||
return u"http://nodejs.org/dist/v0.10.24/node.exe"
|
||||
return u"http://nodejs.org/dist/v0.10.35/node.exe"
|
||||
|
||||
class MacNodeDownloader(NodeDownloader):
|
||||
@property
|
||||
def download_url(self):
|
||||
if self.dependency.config.mem_width == 64:
|
||||
return u"http://nodejs.org/dist/v0.10.24/node-v0.10.24-darwin-x64.tar.gz"
|
||||
return u"http://nodejs.org/dist/v0.10.35/node-v0.10.35-darwin-x64.tar.gz"
|
||||
else:
|
||||
return u"http://nodejs.org/dist/v0.10.24/node-v0.10.24-darwin-x86.tar.gz"
|
||||
return u"http://nodejs.org/dist/v0.10.35/node-v0.10.35-darwin-x86.tar.gz"
|
||||
|
||||
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
<variables>
|
||||
<general>
|
||||
<b32>
|
||||
<nodejs>http://nodejs.org/dist/v0.10.25/node-v0.10.25-x86.msi</nodejs>
|
||||
<nodejs>http://nodejs.org/dist/v0.10.35/node-v0.10.35-x86.msi</nodejs>
|
||||
<ruby>http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353.exe?direct</ruby>
|
||||
<python>http://s3.amazonaws.com/CodeCombatLargeFiles/python-32.msi</python>
|
||||
<vs12redist>http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x86.exe</vs12redist>
|
||||
</b32>
|
||||
<b64>
|
||||
<nodejs>http://nodejs.org/dist/v0.10.25/x64/node-v0.10.25-x64.msi</nodejs>
|
||||
<nodejs>http://nodejs.org/dist/v0.10.35/x64/node-v0.10.35-x64.msi</nodejs>
|
||||
<ruby>http://dl.bintray.com/oneclick/rubyinstaller/rubyinstaller-2.0.0-p353-x64.exe?direct</ruby>
|
||||
<python>http://s3.amazonaws.com/CodeCombatLargeFiles/python-64.msi</python>
|
||||
<vs12redist>http://download.microsoft.com/download/1/6/B/16B06F60-3B20-4FF2-B699-5E9B7962F9AE/VSU_4/vcredist_x64.exe</vs12redist>
|
||||
|
@ -20,26 +20,26 @@
|
|||
</general>
|
||||
<Win8>
|
||||
<b32>
|
||||
<mongodb>https://fastdl.mongodb.org/win32/mongodb-win32-i386-2.6.0.zip</mongodb>
|
||||
<mongodb>https://fastdl.mongodb.org/win32/mongodb-win32-i386-2.8.0-rc4.zip</mongodb>
|
||||
</b32>
|
||||
<b64>
|
||||
<mongodb>https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.6.0.zip</mongodb>
|
||||
<mongodb>https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.8.0-rc4.zip</mongodb>
|
||||
</b64>
|
||||
</Win8>
|
||||
<Win7>
|
||||
<b32>
|
||||
<mongodb>https://fastdl.mongodb.org/win32/mongodb-win32-i386-2.6.0.zip</mongodb>
|
||||
<mongodb>https://fastdl.mongodb.org/win32/mongodb-win32-i386-2.8.0-rc4.zip</mongodb>
|
||||
</b32>
|
||||
<b64>
|
||||
<mongodb>https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.6.0.zip</mongodb>
|
||||
<mongodb>https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.8.0-rc4.zip</mongodb>
|
||||
</b64>
|
||||
</Win7>
|
||||
<Vista>
|
||||
<b32>
|
||||
<mongodb>https://fastdl.mongodb.org/win32/mongodb-win32-i386-2.6.0.zip</mongodb>
|
||||
<mongodb>https://fastdl.mongodb.org/win32/mongodb-win32-i386-2.8.0-rc4.zip</mongodb>
|
||||
</b32>
|
||||
<b64>
|
||||
<mongodb>https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2.6.0.zip</mongodb>
|
||||
<mongodb>https://fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.8.0-rc4.zip</mongodb>
|
||||
</b64>
|
||||
</Vista>
|
||||
</variables>
|
||||
|
|
108
scripts/windows/coco-dev-setup/batch/localization/es.coco
Normal file
108
scripts/windows/coco-dev-setup/batch/localization/es.coco
Normal file
|
@ -0,0 +1,108 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1" ?>
|
||||
<variables>
|
||||
<global>
|
||||
<native>Espanol</native>
|
||||
<description>Espanol</description>
|
||||
<tips>Algunas sugerencias antes de comenzar la instalación:</tips>
|
||||
<exit>Presiona cualquier tecla para salir...</exit>
|
||||
</global>
|
||||
<language>
|
||||
<choosen>Has elegido Español como tu idioma.</choosen>
|
||||
<feedback>De ahora en adelante te enviaremos nuestro feedback en Español.</feedback>
|
||||
</language>
|
||||
<license>
|
||||
<s1>Para continuar con la instalación del ambiente de desarrollo</s1>
|
||||
<s2>tendrás que leer y estar de acuerdo con la licencia:</s2>
|
||||
<q1>¿Has leído toda la licencia y estás de acuerdo con ella?</q1>
|
||||
<a1>Esta instalación no se puede completar sin un acuerdo.</a1>
|
||||
<a2>La instalación y configuración del ambiente de CodeCombat ha sido cancelada.</a2>
|
||||
</license>
|
||||
<install>
|
||||
<system>
|
||||
<bit>-bit computadora detectada.</bit>
|
||||
<prefix>El sistema operativo</prefix>
|
||||
<sufix>ha sido detectado.</sufix>
|
||||
<xp>No soportamos Windows XP, instalación cancelada.</xp>
|
||||
</system>
|
||||
<process>
|
||||
<sks>¿Ya has instalado todo el software necesario para instalar CodeCombat?</sks>
|
||||
<skq>Te recomendamos que respondas negativamente si no estás seguro.</skq>
|
||||
<skc>Saltando la instalación del software...</skc>
|
||||
<s1>CodeCombat no pudo ser desarrollo sin third-party software.</s1>
|
||||
<s2>Por eso necesitas instalar este software,</s2>
|
||||
<s3>para comenzar a contribuir a nuestra comunidad.</s3>
|
||||
<s4>Cancela la instalación si ya tienes la aplicación.</s4>
|
||||
<winpath>Asegúrate de seleccionar la opción que agrega la aplicación al Windows Path, si la opción está disponible.</winpath>
|
||||
<prefix>¿Ya tienes la última versión </prefix>
|
||||
<sufix>instalada?</sufix>
|
||||
<downloading>está descargando...</downloading>
|
||||
<installing>está instalando...</installing>
|
||||
<unzipping>está descomprimiendo...</unzipping>
|
||||
<cleaning>está limpiando...</cleaning>
|
||||
<mongodbpath>Por favor especifica la ruta completa donde MongoDB debe ser isntalado</mongodbpath>
|
||||
</process>
|
||||
</install>
|
||||
<github>
|
||||
<intro>
|
||||
<opensource>CodeCombat es opensource, como ya sabes.</opensource>
|
||||
<online>Todo nuestro código puede ser encontrada online en GitHub.</online>
|
||||
<manual>Tú puedes instalar Git por tu cuenta.</manual>
|
||||
<norec>Pero te recomendamos que nos permitas hacerlo nosotros.</norec>
|
||||
</intro>
|
||||
<skip>
|
||||
<question>¿Quieres instalar Git por tu cuenta?</question>
|
||||
<consequence>Asegurate de haber configurado tu repositorio correctamente.</consequence>
|
||||
<donotclose>No cierres estaventana por favor..</donotclose>
|
||||
<wait>Cuando estés listo, presiona cualquier tecla para continuar...</wait>
|
||||
</skip>
|
||||
<process>
|
||||
<path>Por favor escriba la ruta completa de tu repositorio de CodeCombat de Git: </path>
|
||||
<checkout>Por favor escriba la ruta completa donde quieres que se instale el ambiente de desarrollo de CodeCombat</checkout>
|
||||
<bashi>Estainstalación necesita Git Bash.</bashi>
|
||||
<bashp64>Git bash está instalada por default en 'C:\Program Files (x86)\Git'.</bashp64>
|
||||
<bashp32>Git bash está instalada por default en 'C:\Program Files\Git'.</bashp32>
|
||||
<bashq>Por favor escriba la ruta completa donde git bash está instalada o presione enter si está en el lugar default</bashq>
|
||||
<ssh>Quieres revisar el repositorio via ssh?</ssh>
|
||||
</process>
|
||||
<config>
|
||||
<intro>Deberías haber hecho fork a CodeCombat at tu propia cuenta de GitHub...</intro>
|
||||
<info>Por favor ingrese su información de github para configurar el repositorio local.</info>
|
||||
<username>Usuario: </username>
|
||||
<password>Contraseña: </password>
|
||||
<process>Gracias... Configurando tu repositorio local ahora mismo...</process>
|
||||
</config>
|
||||
</github>
|
||||
<switch>
|
||||
<install>¡La instalación de tu ambiente local exitosa!</install>
|
||||
<close>Ahora puedes cerrar esta instalación.</close>
|
||||
<open>Después de esto, deberías abrir la configuración para configurar automáticamente tu ambiente...</open>
|
||||
</switch>
|
||||
<npm>
|
||||
<install>Instalando bower, brunch, nodemon y sendwithus...</install>
|
||||
<binstall>Instalando bower packages...</binstall>
|
||||
<sass>Instalando sass...</sass>
|
||||
<npm>Instalando npm...</npm>
|
||||
<brnch>Iniciando brunch....</brnch>
|
||||
<mongodb>Configurando una base de datos de MongoDB para ti...</mongodb>
|
||||
<db>Descargando la última version de la base de datos de CodeCombat...</db>
|
||||
<script>Preparando el scritp de inicio automático...</script>
|
||||
<close>¡No cerrar!</close>
|
||||
</npm>
|
||||
<error>
|
||||
<path>¿Esa ruta ya existe, quieres sobreescribirla?</path>
|
||||
<exist>Esa ruta no existe. Intente de nuevo...</exist>
|
||||
</error>
|
||||
<end>
|
||||
<succesfull> La configuración fue exitosa.</succesfull>
|
||||
<thankyou>Muchas gracias por tu contribución y nos veremos pronto.</thankyou>
|
||||
<readme>¿Quieres leer el README para más información?</readme>
|
||||
</end>
|
||||
<start>
|
||||
<s1>Puedes iniciar el ambiente </s1>
|
||||
<s2>en un instance</s2>
|
||||
<s3> 1) Da doble clickk</s3>
|
||||
<s4> y el ambiente de desarrollo iniciará.</s4>
|
||||
<s5> 2) Ahora abre 'localhost:3000' en tu browser preferido.</s5>
|
||||
<s6>¡Listo! Ya estás preparado para trabajar en CodeCombat</s6>
|
||||
</start>
|
||||
</variables>
|
|
@ -3,4 +3,5 @@ ru
|
|||
nl
|
||||
de
|
||||
zh-HANT
|
||||
zh-HANS
|
||||
zh-HANS
|
||||
es
|
||||
|
|
|
@ -2,9 +2,9 @@ Set-ExecutionPolicy RemoteSigned
|
|||
|
||||
$mongoDbPath = "C:\MongoDB"
|
||||
$mongoDbConfigPath = "$mongoDbPath\mongod.cfg"
|
||||
$url = "http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.4.9.zip"
|
||||
$url = "http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.8.0-rc4.zip"
|
||||
$zipFile = "$mongoDbPath\mongo.zip"
|
||||
$unzippedFolderContent ="$mongoDbPath\mongodb-win32-x86_64-2008plus-2.4.9"
|
||||
$unzippedFolderContent ="$mongoDbPath\mongodb-win32-x86_64-2008plus-2.8.0-rc4.zip"
|
||||
|
||||
if ((Test-Path -path $mongoDbPath) -eq $True)
|
||||
{
|
||||
|
@ -36,4 +36,4 @@ Remove-Item $zipFile -recurse -force
|
|||
|
||||
& $mongoDBPath\bin\mongod.exe --config $mongoDbConfigPath --install
|
||||
|
||||
& net start mongodb
|
||||
& net start mongodb
|
||||
|
|
Loading…
Reference in a new issue