diff --git a/app/templates/modal/signup.jade b/app/templates/modal/signup.jade index 2b27577d2..801b470aa 100644 --- a/app/templates/modal/signup.jade +++ b/app/templates/modal/signup.jade @@ -6,7 +6,11 @@ block modal-header-content block modal-body-content .modal-content .modal-body - p(data-i18n="signup.description") It's free. Just need a couple things and you'll be good to go: + 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 label.control-label(for="signup-email", data-i18n="general.email") Email diff --git a/app/templates/play/ladder.jade b/app/templates/play/ladder.jade index 234804ed6..aae168b0d 100644 --- a/app/templates/play/ladder.jade +++ b/app/templates/play/ladder.jade @@ -7,47 +7,39 @@ 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 - div.column.col-md-4 - a(style="background-color: #{team.primaryColor}", data-team=team.id).play-button.btn.btn-danger.btn-block.btn-lg - span(data-i18n="play.play_as") Play As - span= team.name - div.column.col-md-2 + div#columns.row + div.column.col-md-2 + for team in teams + div.column.col-md-4 + a(style="background-color: #{team.primaryColor}", data-team=team.id).play-button.btn.btn-danger.btn-block.btn-lg + span(data-i18n="play.play_as") Play As + span= team.name + div.column.col-md-2 + + hr - hr - - ul.nav.nav-pills - li.active - a(href="#ladder", data-toggle="tab", data-i18n="general.ladder") Ladder + 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 a(href="#simulate", data-toggle="tab", data-i18n="ladder.simulate") Simulate - div.tab-content - .tab-pane.active.well#ladder - #ladder-tab-view - .tab-pane.well#my-matches - #my-matches-tab-view - .tab-pane.well#simulate - p(id="simulation-status-text") - if simulationStatus - | #{simulationStatus} - else - span(data-i18n="ladder.simulation_explanation") By simulating games you can get your game ranked faster! + div.tab-content + .tab-pane.active.well#ladder + #ladder-tab-view + .tab-pane.well#my-matches + #my-matches-tab-view + .tab-pane.well#simulate + p(id="simulation-status-text") + if simulationStatus + | #{simulationStatus} + else + span(data-i18n="ladder.simulation_explanation") By simulating games you can get your game ranked faster! + p + button(data-i18n="ladder.simulate_games").btn.btn-warning.btn-lg.highlight#simulate-button Simulate Games! + if me.isAdmin() p - button(data-i18n="ladder.simulate_games").btn.btn-warning.btn-lg.highlight#simulate-button Simulate Games! - if me.isAdmin() - p - button(data-i18n="ladder.simulate_all").btn.btn-danger.btn-lg.highlight#simulate-all-button RESET AND SIMULATE GAMES \ No newline at end of file + button(data-i18n="ladder.simulate_all").btn.btn-danger.btn-lg.highlight#simulate-all-button RESET AND SIMULATE GAMES \ No newline at end of file diff --git a/app/views/modal/signup_modal.coffee b/app/views/modal/signup_modal.coffee index d1c76e3a1..8a39d0dca 100644 --- a/app/views/modal/signup_modal.coffee +++ b/app/views/modal/signup_modal.coffee @@ -37,6 +37,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) diff --git a/app/views/play/ladder_view.coffee b/app/views/play/ladder_view.coffee index e275d0613..e0d25ea7f 100644 --- a/app/views/play/ladder_view.coffee +++ b/app/views/play/ladder_view.coffee @@ -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()