Remove justPlayCourses heuristic, replace with isStudent, remove old HomeView

This commit is contained in:
Scott Erickson 2016-09-01 10:33:43 -07:00
parent e43d90ae23
commit 77e45072a5
7 changed files with 4 additions and 118 deletions

View file

@ -54,8 +54,6 @@ module.exports = class CocoRouter extends Backbone.Router
'artisans/level-concepts': go('artisans/LevelConceptMap')
'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'

View file

@ -81,11 +81,6 @@ module.exports = class User extends CocoModel
isTeacher: ->
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: ->
# TODO: Fix old users who got mis-tagged as teachers
# TODO: Should this just be isTeacher, eventually?

View file

@ -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

View file

@ -22,7 +22,7 @@ mixin box
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")
else if me.justPlaysCourses()
else if me.isStudent()
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")
div

View file

@ -15,7 +15,7 @@ block content
else if view.user.isTeacher()
a.btn.btn-lg.btn-forest(href="/teachers/classes")
span(data-i18n="new_home.goto_classes")
else if me.justPlaysCourses()
else if me.isStudent()
div.m-b-1
a.btn.btn-forest.btn-lg(href="/courses", data-i18n="courses.continue_playing")
div

View file

@ -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')

View file

@ -45,12 +45,12 @@ module.exports = class NewHomeView extends RootView
@supermodel.loadCollection(@trialRequests)
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
@playURL = '/hoc?go=true'
@alternatePlayURL = '/play'
@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
@playURL = '/courses'
else