Ladder page now shows the ladder for anonymous users, and prods them to sign up if they click a link or button that would have them play.

This commit is contained in:
Scott Erickson 2014-03-16 20:28:02 -07:00
parent a3df986567
commit 296a7584a6
4 changed files with 53 additions and 38 deletions

View file

@ -6,6 +6,10 @@ block modal-header-content
block modal-body-content
.modal-content
.modal-body
if showRequiredError
.alert.alert-success
span(data-i18n="signup.required") You need to sign up first before you can go over there. Luckily, it's really easy.
else
p(data-i18n="signup.description") It's free. Just need a couple things and you'll be good to go:
.form
.form-group

View file

@ -7,15 +7,6 @@ block content
else
h1= level.get('name')
if me.get('anonymous')
div#must-log-in
p
strong(data-i18n="ladder.please_login") Please log in first before playing a ladder game.
button.btn.btn-primary(data-toggle="coco-modal", data-target="modal/login", data-i18n="login.log_in") Log In
button.btn.btn-primary(data-toggle="coco-modal", data-target="modal/signup", data-i18n="login.sign_up") Create Account
else
div#columns.row
div.column.col-md-2
for team in teams
@ -30,6 +21,7 @@ block content
ul.nav.nav-pills
li.active
a(href="#ladder", data-toggle="tab", data-i18n="general.ladder") Ladder
if !me.get('anonymous')
li
a(href="#my-matches", data-toggle="tab", data-i18n="ladder.my_matches") My Matches
li

View file

@ -38,6 +38,11 @@ module.exports = class SignupModalView extends View
checkAge: (e) ->
$("#signup-button", @$el).prop 'disabled', not $(e.target).prop('checked')
getRenderData: ->
c = super()
c.showRequiredError = @options.showRequiredError
c
createAccount: (e) =>
forms.clearFormAlerts(@$el)
userObject = forms.formToObject @$el

View file

@ -4,6 +4,7 @@ Simulator = require 'lib/simulator/Simulator'
LevelSession = require 'models/LevelSession'
CocoCollection = require 'models/CocoCollection'
{teamDataFromLevel} = require './ladder/utils'
{me} = require 'lib/auth'
application = require 'application'
LadderTabView = require './ladder/ladder_tab'
@ -32,6 +33,7 @@ module.exports = class LadderView extends RootView
'click #simulate-button': 'onSimulateButtonClick'
'click #simulate-all-button': 'onSimulateAllButtonClick'
'click .play-button': 'onClickPlayButton'
'click a': 'onClickedLink'
constructor: (options, @levelID) ->
super(options)
@ -121,10 +123,22 @@ module.exports = class LadderView extends RootView
@showPlayModal($(e.target).closest('.play-button').data('team'))
showPlayModal: (teamID) ->
return @showApologeticSignupModal() if me.get('anonymous')
session = (s for s in @sessions.models when s.get('team') is teamID)[0]
modal = new LadderPlayModal({}, @level, session, teamID)
@openModalView modal
showApologeticSignupModal: ->
SignupModal = require 'views/modal/signup_modal'
@openModalView(new SignupModal({showRequiredError:true}))
onClickedLink: (e) ->
link = $(e.target).closest('a').attr('href')
if link?.startsWith '/play/level'
e.stopPropagation()
e.preventDefault()
@showApologeticSignupModal()
destroy: ->
clearInterval @refreshInterval
@simulator.destroy()