mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-27 17:45:40 -05:00
Remove justPlayCourses heuristic, replace with isStudent, remove old HomeView
This commit is contained in:
parent
e43d90ae23
commit
77e45072a5
7 changed files with 4 additions and 118 deletions
|
@ -54,8 +54,6 @@ module.exports = class CocoRouter extends Backbone.Router
|
||||||
'artisans/level-concepts': go('artisans/LevelConceptMap')
|
'artisans/level-concepts': go('artisans/LevelConceptMap')
|
||||||
'artisans/level-guides': go('artisans/LevelGuidesView')
|
'artisans/level-guides': go('artisans/LevelGuidesView')
|
||||||
|
|
||||||
'beta': go('HomeView')
|
|
||||||
|
|
||||||
'careers': => window.location.href = 'https://jobs.lever.co/codecombat'
|
'careers': => window.location.href = 'https://jobs.lever.co/codecombat'
|
||||||
'Careers': => window.location.href = 'https://jobs.lever.co/codecombat'
|
'Careers': => window.location.href = 'https://jobs.lever.co/codecombat'
|
||||||
|
|
||||||
|
|
|
@ -81,11 +81,6 @@ module.exports = class User extends CocoModel
|
||||||
isTeacher: ->
|
isTeacher: ->
|
||||||
return @get('role') in ['teacher', 'technology coordinator', 'advisor', 'principal', 'superintendent', 'parent']
|
return @get('role') in ['teacher', 'technology coordinator', 'advisor', 'principal', 'superintendent', 'parent']
|
||||||
|
|
||||||
justPlaysCourses: ->
|
|
||||||
# This heuristic could be better, but currently we don't add to me.get('courseInstances') for single-player anonymous intro courses, so they have to beat a level without choosing a hero.
|
|
||||||
return true if me.get('role') is 'student'
|
|
||||||
return me.get('stats')?.gamesCompleted and not me.get('heroConfig')
|
|
||||||
|
|
||||||
isSessionless: ->
|
isSessionless: ->
|
||||||
# TODO: Fix old users who got mis-tagged as teachers
|
# TODO: Fix old users who got mis-tagged as teachers
|
||||||
# TODO: Should this just be isTeacher, eventually?
|
# TODO: Should this just be isTeacher, eventually?
|
||||||
|
|
|
@ -1,52 +0,0 @@
|
||||||
extends /templates/base
|
|
||||||
|
|
||||||
block append site_nav
|
|
||||||
#kids-coding-container
|
|
||||||
img#boy-coding.kid-coding(src="/images/pages/home/boy_coding.png", alt="", draggable="false")
|
|
||||||
img#girl-coding.kid-coding(src="/images/pages/home/girl_coding.png", alt="", draggable="false")
|
|
||||||
|
|
||||||
block outer_content
|
|
||||||
#spacer
|
|
||||||
|
|
||||||
a#play-button(href=view.playURL, data-i18n="[html]home.play")
|
|
||||||
|
|
||||||
if view.alternatePlayURL
|
|
||||||
#alternate-play-button
|
|
||||||
a.btn.btn-illustrated.btn-primary(href=view.alternatePlayURL, data-i18n=view.alternatePlayText)
|
|
||||||
|
|
||||||
//a(href="https://itunes.apple.com/us/app/codecombat/id936523909?mt=8")
|
|
||||||
// #or-ipad(data-i18n="home.or_ipad")
|
|
||||||
//
|
|
||||||
//a(href="https://itunes.apple.com/us/app/codecombat/id936523909?mt=8")
|
|
||||||
// img(src="/images/pages/home/app_store_badge.svg")#apple-store-button
|
|
||||||
|
|
||||||
//- Example of how to throw down a temporary news link
|
|
||||||
//- #news
|
|
||||||
//- a(href="/play/ladder/ace-of-coders", data-i18n="temp.ace_of_coders_tournament") New: play in the Ace of Coders tournament now!
|
|
||||||
|
|
||||||
#slogan(data-i18n="home.slogan")
|
|
||||||
|
|
||||||
//- TODO: This does not work on IE8
|
|
||||||
.alert.alert-danger.lt-ie9
|
|
||||||
strong(data-i18n="home.no_ie") CodeCombat does not run in Internet Explorer 8 or older. Sorry!
|
|
||||||
|
|
||||||
if view.isIPadBrowser() || view.isMobile()
|
|
||||||
.alert.alert-danger.mobile
|
|
||||||
strong(data-i18n="home.no_mobile") CodeCombat wasn't designed for mobile devices and may not work!
|
|
||||||
else if view.isOldBrowser()
|
|
||||||
.alert.alert-danger.old-browser
|
|
||||||
strong(data-i18n="home.old_browser") Uh oh, your browser is too old to run CodeCombat. Sorry!
|
|
||||||
br
|
|
||||||
span(data-i18n="home.old_browser_suffix") You can try anyway, but it probably won't work.
|
|
||||||
|
|
||||||
if view.withTeacherNote
|
|
||||||
.style-flat
|
|
||||||
.bg-navy
|
|
||||||
a#close-teacher-note-link.glyphicon.glyphicon-remove.pull-right
|
|
||||||
h3 Teachers!
|
|
||||||
h4 Want the most engaging way to teach programming at your school?
|
|
||||||
.text-center
|
|
||||||
a.btn.btn-primary-alt.btn-lg(href="/teachers/quote") Request a Quote
|
|
||||||
h6
|
|
||||||
a.small(href="/schools") Learn More
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ mixin box
|
||||||
h6(data-i18n="new_home.want_coco")
|
h6(data-i18n="new_home.want_coco")
|
||||||
button.btn.btn-primary.btn-lg.request-demo(data-event-action="Homepage Request Demo CTA", data-i18n="new_home.request_demo")
|
button.btn.btn-primary.btn-lg.request-demo(data-event-action="Homepage Request Demo CTA", data-i18n="new_home.request_demo")
|
||||||
|
|
||||||
else if me.justPlaysCourses()
|
else if me.isStudent()
|
||||||
div
|
div
|
||||||
a.btn.btn-forest.btn-lg.btn-block.play-btn(href=view.playURL, data-event-action="Homepage Classroom Continue Playing CTA", data-i18n="courses.continue_playing")
|
a.btn.btn-forest.btn-lg.btn-block.play-btn(href=view.playURL, data-event-action="Homepage Classroom Continue Playing CTA", data-i18n="courses.continue_playing")
|
||||||
div
|
div
|
||||||
|
|
|
@ -15,7 +15,7 @@ block content
|
||||||
else if view.user.isTeacher()
|
else if view.user.isTeacher()
|
||||||
a.btn.btn-lg.btn-forest(href="/teachers/classes")
|
a.btn.btn-lg.btn-forest(href="/teachers/classes")
|
||||||
span(data-i18n="new_home.goto_classes")
|
span(data-i18n="new_home.goto_classes")
|
||||||
else if me.justPlaysCourses()
|
else if me.isStudent()
|
||||||
div.m-b-1
|
div.m-b-1
|
||||||
a.btn.btn-forest.btn-lg(href="/courses", data-i18n="courses.continue_playing")
|
a.btn.btn-forest.btn-lg(href="/courses", data-i18n="courses.continue_playing")
|
||||||
div
|
div
|
||||||
|
|
|
@ -1,55 +0,0 @@
|
||||||
RootView = require 'views/core/RootView'
|
|
||||||
template = require 'templates/home-view'
|
|
||||||
CreateAccountModal = require 'views/core/CreateAccountModal'
|
|
||||||
|
|
||||||
module.exports = class HomeView extends RootView
|
|
||||||
id: 'home-view'
|
|
||||||
template: template
|
|
||||||
|
|
||||||
events:
|
|
||||||
'click #play-button': 'onClickPlayButton'
|
|
||||||
'click #close-teacher-note-link': 'onClickCloseTeacherNoteLink'
|
|
||||||
|
|
||||||
constructor: (options={}) ->
|
|
||||||
super()
|
|
||||||
@withTeacherNote = options.withTeacherNote
|
|
||||||
window.tracker?.trackEvent 'Homepage Loaded', category: 'Homepage'
|
|
||||||
if @getQueryVariable 'hour_of_code'
|
|
||||||
application.router.navigate "/hoc", trigger: true
|
|
||||||
|
|
||||||
isHourOfCodeWeek = false # Temporary: default to /hoc flow during the main event week
|
|
||||||
if isHourOfCodeWeek and (@isNewPlayer() or (@justPlaysCourses() and me.isAnonymous()))
|
|
||||||
# Go/return straight to playing single-player HoC course on Play click
|
|
||||||
@playURL = '/hoc?go=true'
|
|
||||||
@alternatePlayURL = '/play'
|
|
||||||
@alternatePlayText = 'home.play_campaign_version'
|
|
||||||
else if @justPlaysCourses()
|
|
||||||
# Save players who might be in a classroom from getting into the campaign
|
|
||||||
@playURL = '/courses'
|
|
||||||
@alternatePlayURL = '/play'
|
|
||||||
@alternatePlayText = 'home.play_campaign_version'
|
|
||||||
else
|
|
||||||
@playURL = '/play'
|
|
||||||
|
|
||||||
onClickPlayButton: (e) ->
|
|
||||||
@playSound 'menu-button-click'
|
|
||||||
return if @playURL isnt '/play'
|
|
||||||
e.preventDefault()
|
|
||||||
e.stopImmediatePropagation()
|
|
||||||
window.tracker?.trackEvent 'Click Play', category: 'Homepage'
|
|
||||||
window.open '/play', '_blank'
|
|
||||||
|
|
||||||
afterInsert: ->
|
|
||||||
super(arguments...)
|
|
||||||
modal = new CreateAccountModal()
|
|
||||||
@openModalView(modal)
|
|
||||||
|
|
||||||
justPlaysCourses: ->
|
|
||||||
# This heuristic could be better, but currently we don't add to me.get('courseInstances') for single-player anonymous intro courses, so they have to beat a level without choosing a hero.
|
|
||||||
return me.get('stats')?.gamesCompleted and not me.get('heroConfig')
|
|
||||||
|
|
||||||
isNewPlayer: ->
|
|
||||||
not me.get('stats')?.gamesCompleted and not me.get('heroConfig')
|
|
||||||
|
|
||||||
onClickCloseTeacherNoteLink: ->
|
|
||||||
@$('.style-flat').addClass('hide')
|
|
|
@ -45,12 +45,12 @@ module.exports = class NewHomeView extends RootView
|
||||||
@supermodel.loadCollection(@trialRequests)
|
@supermodel.loadCollection(@trialRequests)
|
||||||
|
|
||||||
isHourOfCodeWeek = false # Temporary: default to /hoc flow during the main event week
|
isHourOfCodeWeek = false # Temporary: default to /hoc flow during the main event week
|
||||||
if isHourOfCodeWeek and (@isNewPlayer() or (me.justPlaysCourses() and me.isAnonymous()))
|
if isHourOfCodeWeek and (@isNewPlayer() or (me.isStudent() and me.isAnonymous()))
|
||||||
# Go/return straight to playing single-player HoC course on Play click
|
# Go/return straight to playing single-player HoC course on Play click
|
||||||
@playURL = '/hoc?go=true'
|
@playURL = '/hoc?go=true'
|
||||||
@alternatePlayURL = '/play'
|
@alternatePlayURL = '/play'
|
||||||
@alternatePlayText = 'home.play_campaign_version'
|
@alternatePlayText = 'home.play_campaign_version'
|
||||||
else if me.justPlaysCourses()
|
else if me.isStudent()
|
||||||
# Save players who might be in a classroom from getting into the campaign
|
# Save players who might be in a classroom from getting into the campaign
|
||||||
@playURL = '/courses'
|
@playURL = '/courses'
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in a new issue