mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-11-27 09:35:39 -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-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'
|
||||
|
||||
|
|
|
@ -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?
|
||||
|
|
|
@ -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")
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
||||
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
|
||||
|
|
Loading…
Reference in a new issue