Merge branch 'master' into production

This commit is contained in:
Matt Lott 2016-02-26 10:36:24 -08:00
commit 0dc4c79107
4 changed files with 76 additions and 128 deletions

View file

@ -545,11 +545,19 @@
editor_config_behaviors_description: "Autocompletes brackets, braces, and quotes." editor_config_behaviors_description: "Autocompletes brackets, braces, and quotes."
about: about:
main_title:"If you want to learn to program, you need to write (a lot of) code."
main_description: "At CodeCombat, our job is to make sure you're doing that with a smile on your face."
mission_link: "Mission"
team_link: "Team"
community_link: "Community"
story_link: "Story"
careers_link: "Careers"
press_link: "Press"
mission_title: "Our mission: make programming accessible to every student on Earth." mission_title: "Our mission: make programming accessible to every student on Earth."
mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code." mission_description_1: "Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code."
mission_description_2: "As it turns out, that enables them to learn faster too. WAY faster. It's like having a conversation instead of reading a manual. We want to bring that conversation to every school and to every student, because everyone should have the chance to learn the magic of programming." mission_description_2: "As it turns out, that enables them to learn faster too. WAY faster. It's like having a conversation instead of reading a manual. We want to bring that conversation to every school and to every student, because everyone should have the chance to learn the magic of programming."
team_title: "Meet the CodeCombat team" team_title: "Meet the CodeCombat team"
team_values: "We value open and respectful dialog, where the best idea wins. Our decisions are grounded in customer research and our process is focused on delivering tangible results for them. Everyone is hands-on, from our CEO to our Github contributors, because we value growth and learning in our team." team_values: "We value open and respectful dialog, where the best idea wins. Our decisions are grounded in customer research and our process is focused on delivering tangible results for them. Everyone is hands-on, from our CEO to our Github contributors, because we value growth and learning in our team."
nick_title: "Cofounder, CEO" nick_title: "Cofounder, CEO"
nick_blurb: "Motivation Guru" nick_blurb: "Motivation Guru"
matt_title: "Cofounder, CTO" matt_title: "Cofounder, CTO"
@ -576,13 +584,15 @@
carlos_blurb: "Celery Man" carlos_blurb: "Celery Man"
community_title: "...and our open-source community" community_title: "...and our open-source community"
community_subtitle: "Over 450 contributors have helped build CodeCombat, with more joining every week!" community_subtitle: "Over 450 contributors have helped build CodeCombat, with more joining every week!"
community_description_1: "CodeCombat is a community project, with hundreds of players volunteering to create levels, contribute to our code to add features, fix bugs, playtest, and even translate the game into 50 languages so far. Employees, contributors and the site gain by sharing ideas and pooling effort, as does the open source community in general. The site is built on numerous open source projects, and we are open sourced to give back to the community and provide code-curious players a familiar project to explore and experiment with. Anyone can join the CodeCombat community! Check out our " community_description_1: "CodeCombat is a community project, with hundreds of players volunteering to create levels, contribute to our code to add features, fix bugs, playtest, and even translate the game into 50 languages so far. Employees, contributors and the site gain by sharing ideas and pooling effort, as does the open source community in general. The site is built on numerous open source projects, and we are open sourced to give back to the community and provide code-curious players a familiar project to explore and experiment with. Anyone can join the CodeCombat community! Check out our"
community_description_link: "contribute page " community_description_link: "contribute page"
community_description_2: "for more info." community_description_2: "for more info."
number_contributors: "Over 450 contributors have lent their support and time to this project."
story_title: "Our story so far" story_title: "Our story so far"
story_subtitle: "Since 2013, CodeCombat has grown from a mere set of sketches to a living, thriving game." story_subtitle: "Since 2013, CodeCombat has grown from a mere set of sketches to a living, thriving game."
story_statistic_1a: "5,000,000+" story_statistic_1a: "5,000,000+"
story_statistic_1b: "total players" story_statistic_1b: "total players"
story_statistic_1c: "have started their programming journey through CodeCombat"
story_statistic_2a: "Weve been translated into over 50 languages — our players hail from" story_statistic_2a: "Weve been translated into over 50 languages — our players hail from"
story_statistic_2b: "200+ countries" story_statistic_2b: "200+ countries"
story_statistic_3a: "Together, they have written" story_statistic_3a: "Together, they have written"
@ -600,12 +610,13 @@
jobs_benefit_4: "Unlimited sick/personal days" jobs_benefit_4: "Unlimited sick/personal days"
jobs_benefit_5: "Professional development and continuing education support" jobs_benefit_5: "Professional development and continuing education support"
jobs_benefit_6: "Medical/dental/vision insurance" jobs_benefit_6: "Medical/dental/vision insurance"
learn_more: "Learn More"
jobs_custom_title: "Create Your Own" jobs_custom_title: "Create Your Own"
jobs_custom_description: "Are you passionate about CodeCombat but don't see a job listed that matches your qualifications? Write us and show how you think you can contribute to our team. We'd love to hear from you!" jobs_custom_description: "Are you passionate about CodeCombat but don't see a job listed that matches your qualifications? Write us and show how you think you can contribute to our team. We'd love to hear from you!"
jobs_custom_contact_1: "Send us a note at " jobs_custom_contact_1: "Send us a note at"
jobs_custom_contact_2: "introducing yourself and we might get in touch in the future!" jobs_custom_contact_2: "introducing yourself and we might get in touch in the future!"
contact_title: "Press & Contact" contact_title: "Press & Contact"
contact_subtitle: "Need more information? Get in touch with us at " contact_subtitle: "Need more information? Get in touch with us at"
screenshots_title: "Game Screenshots" screenshots_title: "Game Screenshots"
screenshots_hint: "(click to view full size)" screenshots_hint: "(click to view full size)"
downloads_title: "Download Assets & Information" downloads_title: "Download Assets & Information"
@ -614,9 +625,9 @@
screenshots: "Screenshots" screenshots: "Screenshots"
character_art: "Character Art" character_art: "Character Art"
download_all: "Download All" download_all: "Download All"
previous: "Previous"
next: "Next"
location_title: "We're located in downtown SF:" location_title: "We're located in downtown SF:"
teachers: teachers:
who_for_title: "Who is CodeCombat for?" who_for_title: "Who is CodeCombat for?"
@ -626,7 +637,7 @@
more_info_1: "Our" more_info_1: "Our"
more_info_2: "teachers forum" more_info_2: "teachers forum"
more_info_3: "is a good place to connect with fellow educators who are using CodeCombat." more_info_3: "is a good place to connect with fellow educators who are using CodeCombat."
teachers_quote: teachers_quote:
name: "Quote Form" name: "Quote Form"
title: "Request a Quote" title: "Request a Quote"

View file

@ -7,60 +7,49 @@ block content
.row .row
//TODO: Size these correctly //TODO: Size these correctly
.col-xs-10 .col-xs-10
h1 If you want to learn to program, you need to write (a lot of) code. h1(data-i18n="about.main_title")
.row .row
.col-xs-8 .col-xs-8
h2 At CodeCombat, our job is to make sure you're doing that with a smile on your face. h2(data-i18n="about.main_description")
#nav-container #nav-container
nav#fixed-nav.nav.navbar nav#fixed-nav.nav.navbar
.container-fluid.text-center .container-fluid.text-center
ul.center-block ul.center-block
li.active li.active
a(href="#mission")#mission-link a(href="#mission")#mission-link
small.label(data-i18n="about.mission_link") small.label(data-i18n="about.mission_link")
| Mission
li li
a(href="#team")#team-link a(href="#team")#team-link
small.label(data-i18n="about.team_link") small.label(data-i18n="about.team_link")
| Team
li li
a(href="#community")#community-link a(href="#community")#community-link
small.label(data-i18n="about.community_link") small.label(data-i18n="about.community_link")
| Community
li li
a(href="#story")#story-link a(href="#story")#story-link
small.label(data-i18n="about.story_link") small.label(data-i18n="about.story_link")
| Story
li li
a(href="#jobs")#jobs-link a(href="#jobs")#jobs-link
small.label(data-i18n="about.jobs_link") small.label(data-i18n="about.careers_link")
| Careers
li li
a(href="#contact")#contact-link a(href="#contact")#contact-link
small.label(data-i18n="about.contact_link") small.label(data-i18n="about.press_link")
| Press
#about-container.container #about-container.container
#mission.anchor.row #mission.anchor.row
.col-sm-6#mission-graphic.responsive-side-margins .col-sm-6#mission-graphic.responsive-side-margins
img(src="/images/pages/about/globe_white.png") img(src="/images/pages/about/globe_white.png")
h2(data-i18n="about.mission_title") h2(data-i18n="about.mission_title")
| Our mission: make programming accessible to every student on Earth.
#mission-graphic-filler #mission-graphic-filler
.col-sm-5.col-sm-offset-1 .col-sm-5.col-sm-offset-1
#mission-text.responsive-side-margins #mission-text.responsive-side-margins
p(data-i18n="about.mission_description_1") p(data-i18n="about.mission_description_1")
| Programming is magic. It's the ability to create things from pure imagination. We started CodeCombat to give learners the feeling of wizardly power at their fingertips by using typed code.
p(data-i18n="about.mission_description_2") p(data-i18n="about.mission_description_2")
| As it turns out, that enables them to learn faster too. WAY faster. It's like having a conversation instead of reading a manual. We want to bring that conversation to every school and to every student, because everyone should have the chance to learn the magic of programming.
#team.anchor #team.anchor
.text-center .text-center
h3(data-i18n="about.team_title") h3(data-i18n="about.team_title")
| Meet the CodeCombat team
h4.responsive-side-margins(data-i18n="about.team_values") h4.responsive-side-margins(data-i18n="about.team_values")
| We value open and respectful dialog, where the best idea wins. Our decisions are grounded in customer research and our process is focused on delivering tangible results for them. Everyone is hands-on, from our CEO to our Github contributors, because we value growth and learning in our team.
ul ul
// Full time // Full time
li li
@ -104,9 +93,7 @@ block content
small(data-i18n="about.maka_title") small(data-i18n="about.maka_title")
small(data-i18n="about.maka_blurb") small(data-i18n="about.maka_blurb")
a(href="http://basicer.com/" rel="external") li
li
a(href="http://basicer.com/" rel="external") a(href="http://basicer.com/" rel="external")
img(src="/images/pages/about/rob_small.png").img-thumbnail img(src="/images/pages/about/rob_small.png").img-thumbnail
.team-bio .team-bio
@ -122,8 +109,6 @@ block content
small(data-i18n="about.josh_c_title") small(data-i18n="about.josh_c_title")
small(data-i18n="about.josh_c_blurb") small(data-i18n="about.josh_c_blurb")
a(href="http://robinyang.com/" rel="external")
li li
a(href="http://robinyang.com/" rel="external") a(href="http://robinyang.com/" rel="external")
img(src="/images/pages/about/robin_small.png").img-thumbnail img(src="/images/pages/about/robin_small.png").img-thumbnail
@ -135,7 +120,6 @@ block content
// Part time / contract // Part time / contract
li li
a(href="http://floor.is/lava/" rel="external") a(href="http://floor.is/lava/" rel="external")
img(src="/images/pages/about/josh_small.png").img-thumbnail img(src="/images/pages/about/josh_small.png").img-thumbnail
@ -178,120 +162,94 @@ block content
h6.label.team-name Carlos Maia h6.label.team-name Carlos Maia
small(data-i18n="about.carlos_title") small(data-i18n="about.carlos_title")
small(data-i18n="about.carlos_blurb") small(data-i18n="about.carlos_blurb")
#community.anchor #community.anchor
#community-row-1.row.text-center #community-row-1.row.text-center
.col-sm-12 .col-sm-12
.text-center .text-center
h3(data-i18n="about.community_title") h3(data-i18n="about.community_title")
| ...and our open-source community
h4(data-i18n="about.community_subtitle") h4(data-i18n="about.community_subtitle")
| Over 450 contributors have helped build CodeCombat, with more joining every week!
img(src="/images/pages/about/github_avatars.png")#community-avatars img(src="/images/pages/about/github_avatars.png")#community-avatars
#community-row-2.row #community-row-2.row
.col-sm-5 .col-sm-5
p.responsive-side-margins p.responsive-side-margins
span(data-i18n="about.community_description_1") span.spr(data-i18n="about.community_description_1")
| CodeCombat is a community project, with hundreds of players volunteering to create levels, contribute to our code to add features, fix bugs, playtest, and even translate the game into 50 languages so far. Employees, contributors and the site gain by sharing ideas and pooling effort, as does the open source community in general. The site is built on numerous open source projects, and we are open sourced to give back to the community and provide code-curious players a familiar project to explore and experiment with. Anyone can join the CodeCombat community! Check out our a(href="/contribute")
a(href="/contribute")
span(data-i18n="about.community_description_link") span(data-i18n="about.community_description_link")
| contribute page span.spl(data-i18n="about.community_description_2")
span(data-i18n="about.community_description_2")
| for more info.
.col-sm-6.col-sm-offset-1#community-graphic.responsive-side-margins .col-sm-6.col-sm-offset-1#community-graphic.responsive-side-margins
h2 Over 450 contributors have lent their support and time to this project. h2(data-i18n="about.number_contributors")
img(src="/images/pages/about/github.png") img(src="/images/pages/about/github.png")
#community-graphic-filler #community-graphic-filler
#story.anchor #story.anchor
.text-center .text-center
h3(data-i18n="about.story_title") h3(data-i18n="about.story_title")
| Our story so far
h4.responsive-side-margins(data-i18n="about.story_subtitle") h4.responsive-side-margins(data-i18n="about.story_subtitle")
| Since 2013, CodeCombat has grown from a mere set of sketches to a living, thriving game.
.row .row
#story-graphic-1.col-lg-6 #story-graphic-1.col-lg-6
.media .media
.pull-left .pull-left
img.media-object#story-image-1(src="/images/pages/about/Character_Silouhette.png") img.media-object#story-image-1(src="/images/pages/about/character_silouhette.png")
.media-body .media-body
.media-heading.text-h1 .media-heading.text-h1
span(data-i18n="about.story_statistic_1a") span(data-i18n="about.story_statistic_1a")
| 5,000,000+
br br
span(data-i18n="about.story_statistic_1b") span(data-i18n="about.story_statistic_1b")
| total players p.text-h5(data-i18n="about.story_statistic_1c")
p.text-h5 have started their programming journey through CodeCombat
.col-lg-5.col-lg-offset-1 .col-lg-5.col-lg-offset-1
#story-graphic-2 #story-graphic-2
.media .media
p.text-h5(data-i18n="about.story_statistic_2a") p.text-h5(data-i18n="about.story_statistic_2a")
| Weve been translated into over 50 languages — our players hail from
.pull-right .pull-right
img(src="/images/pages/about/globe_green.png") img(src="/images/pages/about/globe_green.png")
.media-body .media-body
.media-heading.text-h1(data-i18n="about.story_statistic_2b") .media-heading.text-h1(data-i18n="about.story_statistic_2b")
| 200+ countries
#story-graphic-3.text-center #story-graphic-3.text-center
p p
div.text-h5(data-i18n="about.story_statistic_3a") div.text-h5(data-i18n="about.story_statistic_3a")
| Together, they have written
#story-bracketed-text #story-bracketed-text
div#left-bracket div#left-bracket
img(src="/images/pages/about/bracket_left.png") img(src="/images/pages/about/bracket_left.png")
div.text-h1(data-i18n="about.story_statistic_3b") div.text-h1(data-i18n="about.story_statistic_3b")
| 1 billion lines of code and counting
div#right-bracket div#right-bracket
img(src="/images/pages/about/bracket_right.png") img(src="/images/pages/about/bracket_right.png")
#story-languages #story-languages
.text-center .text-center
.text-h5(data-i18n="about.story_statistic_3c") .text-h5(data-i18n="about.story_statistic_3c")
| across six different programming languages
#language-icons.text-center #language-icons.text-center
img.hidden-xs(src="/images/pages/about/Languages.png") img.hidden-xs(src="/images/pages/about/languages.png")
img.hidden-sm.hidden-md.hidden-lg(src="/images/pages/about/Languages_group1.png") img.hidden-sm.hidden-md.hidden-lg(src="/images/pages/about/languages_group1.png")
img.hidden-sm.hidden-md.hidden-lg(src="/images/pages/about/Languages_group2.png") img.hidden-sm.hidden-md.hidden-lg(src="/images/pages/about/languages_group2.png")
#story-graphic-4.text-center #story-graphic-4.text-center
p p
div.text-h5(data-i18n="about.story_long_way_1") div.text-h5(data-i18n="about.story_long_way_1")
| Though we've come a long way...
figure figure
img(src="/images/pages/about/sketch.png") img(src="/images/pages/about/sketch.png")
figcaption figcaption
small(data-i18n="about.story_sketch_caption") small(data-i18n="about.story_sketch_caption")
| Nick's very first sketch depicting a programming game in action.
p p
.text-h5(data-i18n="about.story_long_way_2") .text-h5(data-i18n="about.story_long_way_2")
| we still have much to do before we complete our quest, so...
#jobs.anchor #jobs.anchor
.text-center .text-center
h3(data-i18n="about.jobs_title") h3(data-i18n="about.jobs_title")
| Come work with us and help write CodeCombat history!
h4(data-i18n="about.jobs_subtitle") h4(data-i18n="about.jobs_subtitle")
| Don't see a good fit but interested in keeping in touch? See our "Create Your Own" listing.
#jobs-row.row #jobs-row.row
.col-sm-6.col-md-5.col-md-offset-1.col-lg-4.col-lg-offset-0 .col-sm-6.col-md-5.col-md-offset-1.col-lg-4.col-lg-offset-0
#benefits #benefits
h5(data-i18n="about.jobs_benefits") h5(data-i18n="about.jobs_benefits")
| Employee Benefits
ul ul
li.small(data-i18n="about.jobs_benefit_1") li.small(data-i18n="about.jobs_benefit_1")
| Competitive salary and options
li.small(data-i18n="about.jobs_benefit_2") li.small(data-i18n="about.jobs_benefit_2")
| 15 day minimum vacation policy, excluding company holidays
li.small(data-i18n="about.jobs_benefit_3") li.small(data-i18n="about.jobs_benefit_3")
| Work from home flexibility
li.small(data-i18n="about.jobs_benefit_4") li.small(data-i18n="about.jobs_benefit_4")
| Unlimited sick/personal days
li.small(data-i18n="about.jobs_benefit_5") li.small(data-i18n="about.jobs_benefit_5")
| Professional development and continuing education support
li.small(data-i18n="about.jobs_benefit_6") li.small(data-i18n="about.jobs_benefit_6")
| Medical/dental/vision insurance
.col-sm-6.col-md-5.col-lg-4 .col-sm-6.col-md-5.col-lg-4
.job-listing .job-listing
h5 Software Engineer, iOS h5 Software Engineer, iOS
@ -300,56 +258,48 @@ block content
| San Francisco • Fulltime | San Francisco • Fulltime
p.small Want to write the first iPad app for CodeCombat? Were looking for a product-focused engineer to translate our core gameplay and educational tools into an experience that feels like it was born on the iPad. p.small Want to write the first iPad app for CodeCombat? Were looking for a product-focused engineer to translate our core gameplay and educational tools into an experience that feels like it was born on the iPad.
a.job-link.btn.btn-lg.btn-navy(href="https://jobs.lever.co/codecombat/eb190007-7195-49ee-a322-893b0d1cdcb4" rel="external") a.job-link.btn.btn-lg.btn-navy(href="https://jobs.lever.co/codecombat/eb190007-7195-49ee-a322-893b0d1cdcb4" rel="external")
| Learn More span(data-i18n="about.learn_more")
.col-sm-6.col-md-5.col-md-offset-1.col-lg-4.col-lg-offset-0 .col-sm-6.col-md-5.col-md-offset-1.col-lg-4.col-lg-offset-0
.job-listing .job-listing
h5 Head of Sales h5 Head of Sales
.text-center .text-center
small.label small.label
| San Francisco • Fulltime | San Francisco • Fulltime
p.small School districts are scrambling to offer computer science classes to all their students as a core subject. They have had no solution, because they can't afford to hire enough programming teachers until now. p.small School districts are scrambling to offer computer science classes to all their students as a core subject. They have had no solution, because they can't afford to hire enough programming teachers until now.
a.job-link.btn.btn-lg.btn-navy(href="https://jobs.lever.co/codecombat/2d0194ed-7c69-4aab-b1f9-363ca4b9f04b" rel="external") a.job-link.btn.btn-lg.btn-navy(href="https://jobs.lever.co/codecombat/2d0194ed-7c69-4aab-b1f9-363ca4b9f04b" rel="external")
| Learn More span(data-i18n="about.learn_more")
.col-sm-6.col-md-5.col-lg-4 .col-sm-6.col-md-5.col-lg-4
.job-listing .job-listing
h5 Sales Representative h5 Sales Representative
.text-center .text-center
small.label small.label
| San Francisco • Fulltime | San Francisco • Fulltime
p.small School districts are scrambling to offer computer science classes to all their students as a core subject. They have had no solution, because they can't afford to hire enough programming teachers until now. p.small School districts are scrambling to offer computer science classes to all their students as a core subject. They have had no solution, because they can't afford to hire enough programming teachers until now.
a.job-link.btn.btn-lg.btn-navy(href="https://jobs.lever.co/codecombat/3f6ff123-16ce-4ecb-aba3-dcf4e8927c47" rel="external") a.job-link.btn.btn-lg.btn-navy(href="https://jobs.lever.co/codecombat/3f6ff123-16ce-4ecb-aba3-dcf4e8927c47" rel="external")
| Learn More span(data-i18n="about.learn_more")
.col-sm-6.col-md-5.col-md-offset-1.col-lg-4.col-lg-offset-0 .col-sm-6.col-md-5.col-md-offset-1.col-lg-4.col-lg-offset-0
.job-listing .job-listing
h5(data-i18n="about.jobs_custom_title") h5(data-i18n="about.jobs_custom_title")
| Create Your Own
p.small(data-i18n="about.jobs_custom_description") p.small(data-i18n="about.jobs_custom_description")
| Are you passionate about CodeCombat but don't see a job listed that matches your qualifications? Write us and show how you think you can contribute to our team. We'd love to hear from you!
p.small p.small
span(data-i18n="about.jobs_custom_contact_1") span.spr(data-i18n="about.jobs_custom_contact_1")
| Send us a note at
a(href="mailto:team@codecombat.com") a(href="mailto:team@codecombat.com")
| team@codecombat.com | team@codecombat.com
span(data-i18n="about.jobs_custom_contact_2") span.spl(data-i18n="about.jobs_custom_contact_2")
| introducing yourself and we might get in touch in the future!
#contact.anchor #contact.anchor
.text-center .text-center
h3(data-i18n="about.contact_title") h3(data-i18n="about.contact_title")
| Press & Contact
h4(data-i18n="about.contact_subtitle") h4(data-i18n="about.contact_subtitle")
| Need more information? Get in touch with us at a(href="mailto:team@codecombat.com") team@codecombat.com
a(href="mailto:team@codecombat.com") team@codecombat.com
#files #files
.row .row
.col-md-6.col-lg-8 .col-md-6.col-lg-8
#screenshots #screenshots
span.label(data-i18n="about.screenshots_title") span.label(data-i18n="about.screenshots_title")
| Game Screenshots
.hidden-sm.hidden-md.hidden-lg .hidden-sm.hidden-md.hidden-lg
small(data-i18n="about.screenshots_hint") small(data-i18n="about.screenshots_hint")
| (click to view full size)
#screenshot-grid #screenshot-grid
a.screen-thumbnail(data-toggle="modal", data-target="#screenshot-lightbox", data-index='0') a.screen-thumbnail(data-toggle="modal", data-target="#screenshot-lightbox", data-index='0')
img(src="/images/pages/about/screenshot_desert.png") img(src="/images/pages/about/screenshot_desert.png")
@ -361,44 +311,36 @@ block content
img(src="/images/pages/about/screenshot_glacier.png") img(src="/images/pages/about/screenshot_glacier.png")
.clearfix.hidden-xs .clearfix.hidden-xs
small(data-i18n="about.screenshots_hint") small(data-i18n="about.screenshots_hint")
| (click to view full size)
.col-md-6.col-lg-4 .col-md-6.col-lg-4
#downloads-container #downloads-container
#downloads #downloads
.label(data-i18n="about.downloads_title") .label(data-i18n="about.downloads_title")
| Download Assets & Information
ul ul
li li
a.small(href="http://files.codecombat.com/presspack/AboutCodeCombat.pdf") a.small(href="http://files.codecombat.com/presspack/AboutCodeCombat.pdf")
span(data-i18n="about.about_codecombat") span(data-i18n="about.about_codecombat")
| About CodeCombat
| (.pdf) | (.pdf)
li li
a.small(href="http://files.codecombat.com/presspack/CodeCombat-Logo.ai") a.small(href="http://files.codecombat.com/presspack/CodeCombat-Logo.ai")
span(data-i18n="about.logo") span(data-i18n="about.logo")
| Logo
| (.ai) | (.ai)
li li
a.small(href="http://files.codecombat.com/presspack/CodeCombat-Logo.png") a.small(href="http://files.codecombat.com/presspack/CodeCombat-Logo.png")
span(data-i18n="about.logo") span(data-i18n="about.logo")
| Logo
| (.png) | (.png)
li li
a.small(href="http://files.codecombat.com/presspack/GameImages.zip") a.small(href="http://files.codecombat.com/presspack/GameImages.zip")
span(data-i18n="about.screenshots") span(data-i18n="about.screenshots")
| Screenshots
| (.zip) | (.zip)
li li
a.small(href="http://files.codecombat.com/presspack/gameimages/CodeCombat_Splash.png") a.small(href="http://files.codecombat.com/presspack/gameimages/CodeCombat_Splash.png")
span(data-i18n="about.character_art") span(data-i18n="about.character_art")
| Character Art
| (.png) | (.png)
.text-center .text-center
a.btn.btn-lg.btn-primary-alt#download-button(href="http://files.codecombat.com/presspack/CodeCombat_PressPack.zip") a.btn.btn-lg.btn-primary-alt#download-button(href="http://files.codecombat.com/presspack/CodeCombat_PressPack.zip")
span.glyphicon.glyphicon-download-alt span.glyphicon.glyphicon-download-alt
span(data-i18n="about.download_all") span(data-i18n="about.download_all")
| Download All
#screenshot-lightbox.modal.fade(data-show="false") #screenshot-lightbox.modal.fade(data-show="false")
.modal-dialog .modal-dialog
.modal-content .modal-content
@ -408,23 +350,23 @@ block content
li(data-target=".screenshot-display", data-slide-to="1") li(data-target=".screenshot-display", data-slide-to="1")
li(data-target=".screenshot-display", data-slide-to="2") li(data-target=".screenshot-display", data-slide-to="2")
li(data-target=".screenshot-display", data-slide-to="3") li(data-target=".screenshot-display", data-slide-to="3")
.carousel-inner .carousel-inner
.item.active .item.active
img#screenshot-desert(src="/images/pages/about/Desert.png") img#screenshot-desert(src="/images/pages/about/desert.png")
.item .item
img#screenshot-forest(src="/images/pages/about/Forest.png") img#screenshot-forest(src="/images/pages/about/forest.png")
.item .item
img#screenshot-dungeon(src="/images/pages/about/Dungeon.png") img#screenshot-dungeon(src="/images/pages/about/dungeon.png")
.item .item
img#screenshot-glacier(src="/images/pages/about/Glacier.png") img#screenshot-glacier(src="/images/pages/about/glacier.png")
a#carousel-left.left.carousel-control(href="#screenshot-carousel", role="button") a#carousel-left.left.carousel-control(href="#screenshot-carousel", role="button")
span.glyphicon.glyphicons-chevron-left.glyphicon-chevron-left(aria-hidden="true") span.glyphicon.glyphicons-chevron-left.glyphicon-chevron-left(aria-hidden="true")
span.sr-only Previous span.sr-only(data-i18n="about.previous")
a#carousel-right.right.carousel-control(href="#screenshot-carousel", role="button") a#carousel-right.right.carousel-control(href="#screenshot-carousel", role="button")
span.glyphicon.glyphicons-chevron-right.glyphicon-chevron-right(aria-hidden="true") span.glyphicon.glyphicons-chevron-right.glyphicon-chevron-right(aria-hidden="true")
span.sr-only Next span.sr-only(data-i18n="about.next")
#location #location
.row .row
.col-sm-4.col-sm-offset-2 .col-sm-4.col-sm-offset-2
@ -437,5 +379,4 @@ block content
.col-sm-4 .col-sm-4
p p
b(data-i18n="about.location_title") b(data-i18n="about.location_title")
| We're located in downtown SF:
iframe(width="370", height="280", frameBorder="2", src="https://www.google.com/maps/embed/v1/place?key=AIzaSyAIGQz3OMbv5YWivScUM86-zESjEgJR2Xo&q=360+3rd+St+Suite+700,+San+Francisco,+CA+94107") iframe(width="370", height="280", frameBorder="2", src="https://www.google.com/maps/embed/v1/place?key=AIzaSyAIGQz3OMbv5YWivScUM86-zESjEgJR2Xo&q=360+3rd+St+Suite+700,+San+Francisco,+CA+94107")

View file

@ -6,7 +6,7 @@ module.exports = class AboutView extends RootView
template: template template: template
logoutRedirectURL: false logoutRedirectURL: false
events: events:
'click #mission-link': 'onClickMissionLink' 'click #mission-link': 'onClickMissionLink'
'click #team-link': 'onClickTeamLink' 'click #team-link': 'onClickTeamLink'
@ -17,12 +17,12 @@ module.exports = class AboutView extends RootView
'click .screen-thumbnail': 'onClickScreenThumbnail' 'click .screen-thumbnail': 'onClickScreenThumbnail'
'click #carousel-left': 'onLeftPressed' 'click #carousel-left': 'onLeftPressed'
'click #carousel-right': 'onRightPressed' 'click #carousel-right': 'onRightPressed'
shortcuts: shortcuts:
'right': 'onRightPressed' 'right': 'onRightPressed'
'left': 'onLeftPressed' 'left': 'onLeftPressed'
'esc': 'onEscapePressed' 'esc': 'onEscapePressed'
afterRender: -> afterRender: ->
super(arguments...) super(arguments...)
@$('#fixed-nav').affix({ @$('#fixed-nav').affix({
@ -36,36 +36,36 @@ module.exports = class AboutView extends RootView
offset: 150 offset: 150
) )
@$('#screenshot-lightbox').modal() @$('#screenshot-lightbox').modal()
@$('#screenshot-carousel').carousel({ @$('#screenshot-carousel').carousel({
interval: 0 interval: 0
keyboard: false keyboard: false
}) })
onClickMissionLink: (event) -> onClickMissionLink: (event) ->
event.preventDefault() event.preventDefault()
@scrollToLink('#mission') @scrollToLink('#mission')
onClickTeamLink: (event) -> onClickTeamLink: (event) ->
event.preventDefault() event.preventDefault()
@scrollToLink('#team') @scrollToLink('#team')
onClickCommunityLink: (event) -> onClickCommunityLink: (event) ->
event.preventDefault() event.preventDefault()
@scrollToLink('#community') @scrollToLink('#community')
onClickStoryLink: (event) -> onClickStoryLink: (event) ->
event.preventDefault() event.preventDefault()
@scrollToLink('#story') @scrollToLink('#story')
onClickJobsLink: (event) -> onClickJobsLink: (event) ->
event.preventDefault() event.preventDefault()
@scrollToLink('#jobs') @scrollToLink('#jobs')
onClickContactLink: (event) -> onClickContactLink: (event) ->
event.preventDefault() event.preventDefault()
@scrollToLink('#contact') @scrollToLink('#contact')
onRightPressed: (event) -> onRightPressed: (event) ->
# Special handling, otherwise after you click the control, keyboard presses move the slide twice # Special handling, otherwise after you click the control, keyboard presses move the slide twice
return if event.type is 'keydown' and $(document.activeElement).is('.carousel-control') return if event.type is 'keydown' and $(document.activeElement).is('.carousel-control')
@ -78,7 +78,7 @@ module.exports = class AboutView extends RootView
if $('#screenshot-lightbox').data('bs.modal')?.isShown if $('#screenshot-lightbox').data('bs.modal')?.isShown
event.preventDefault() event.preventDefault()
$('#screenshot-carousel').carousel('prev') $('#screenshot-carousel').carousel('prev')
onEscapePressed: (event) -> onEscapePressed: (event) ->
if $('#screenshot-lightbox').data('bs.modal')?.isShown if $('#screenshot-lightbox').data('bs.modal')?.isShown
event.preventDefault() event.preventDefault()
@ -89,5 +89,3 @@ module.exports = class AboutView extends RootView
event.preventDefault() event.preventDefault()
# Modal opening happens automatically from bootstrap # Modal opening happens automatically from bootstrap
$('#screenshot-carousel').carousel($(event.currentTarget).data("index")) $('#screenshot-carousel').carousel($(event.currentTarget).data("index"))

View file

@ -18,9 +18,7 @@ module.exports = class AnalyticsSubscriptionsView extends RootView
super options super options
@showMoreCancellations = false @showMoreCancellations = false
@resetSubscriptionsData() @resetSubscriptionsData()
if me.isAdmin() @refreshData() if me.isAdmin()
@refreshData()
_.delay (=> @refreshData()), 30 * 60 * 1000
getRenderData: -> getRenderData: ->
context = super() context = super()