diff --git a/app/styles/courses/student-log-in-modal.sass b/app/styles/courses/student-log-in-modal.sass new file mode 100644 index 000000000..0fd2e0cf0 --- /dev/null +++ b/app/styles/courses/student-log-in-modal.sass @@ -0,0 +1,7 @@ +#student-log-in-modal + #log-in-btn + min-width: 30% + margin-bottom: 10px + + .form + margin: 0 25% \ No newline at end of file diff --git a/app/templates/courses/hour-of-code-view.jade b/app/templates/courses/hour-of-code-view.jade index e93af3a27..a507a8cba 100644 --- a/app/templates/courses/hour-of-code-view.jade +++ b/app/templates/courses/hour-of-code-view.jade @@ -15,7 +15,7 @@ block content p - OR - p - button.btn.btn-default Sign In + button#log-in-btn.btn.btn-default(data-i18n="login.log_in") else .well.text-center @@ -35,7 +35,7 @@ block content p - OR - p - button.btn.btn-default Sign In + button#log-in-btn.btn.btn-default(data-i18n="login.log_in") #begin-hoc-area.hide h2.text-center(data-i18n="common.loading") diff --git a/app/templates/courses/student-log-in-modal.jade b/app/templates/courses/student-log-in-modal.jade new file mode 100644 index 000000000..601c67dff --- /dev/null +++ b/app/templates/courses/student-log-in-modal.jade @@ -0,0 +1,30 @@ +extends /templates/core/modal-base + +block modal-header-content + .clearfix + + +block modal-body-content + .text-center + h2.modal-title(data-i18n="login.log_in") + + form.form + .form-group + label.control-label(for="email") + span(data-i18n="general.email") + | : + .input-border + input#email.input-large.form-control(name="email", type="email", value=view.formValues.email) + .form-group + label.control-label(for="password") + span(data-i18n="general.password") Password + | : + .input-border + input#password.input-large.form-control(name="password", type="password", value=view.formValues.password) + + .text-center + button#log-in-btn.btn.btn-default(data-i18n="login.log_in") + p + a#create-new-account-link(data-i18n="login.signup_switch") + +block modal-footer-content \ No newline at end of file diff --git a/app/views/courses/HourOfCodeView.coffee b/app/views/courses/HourOfCodeView.coffee index 16dfc0ce4..9c0f4d1c3 100644 --- a/app/views/courses/HourOfCodeView.coffee +++ b/app/views/courses/HourOfCodeView.coffee @@ -9,6 +9,7 @@ utils = require 'core/utils' LevelSession = require 'models/LevelSession' Level = require 'models/Level' ChooseLanguageModal = require 'views/courses/ChooseLanguageModal' +StudentLogInModal = require 'views/courses/StudentLogInModal' module.exports = class HourOfCodeView extends RootView @@ -18,6 +19,7 @@ module.exports = class HourOfCodeView extends RootView events: 'click #student-btn': 'onClickStudentButton' 'click #start-new-game-btn': 'onClickStartNewGameButton' + 'click #log-in-btn': 'onClickLogInButton' initialize: -> @setUpHourOfCode() @@ -83,6 +85,10 @@ module.exports = class HourOfCodeView extends RootView app.router.navigate(url, { trigger: true }) }) + onClickLogInButton: -> + modal = new StudentLogInModal() + @openModalView(modal) + # onClickStudentButton: -> # @state = 'enrolling' # @stateMessage = undefined diff --git a/app/views/courses/StudentLogInModal.coffee b/app/views/courses/StudentLogInModal.coffee new file mode 100644 index 000000000..6d2802e8d --- /dev/null +++ b/app/views/courses/StudentLogInModal.coffee @@ -0,0 +1,23 @@ +ModalView = require 'views/core/ModalView' +template = require 'templates/courses/student-log-in-modal' +auth = require 'core/auth' +forms = require 'core/forms' +User = require 'models/User' + +module.exports = class StudentSignInModal extends ModalView + id: 'student-log-in-modal' + template: template + + initialize: -> + @formValues = {} + + events: + 'click #log-in-btn': 'onClickLogInButton' + + onClickLogInButton: -> + forms.clearFormAlerts(@$el) + userObject = forms.formToObject @$el + res = tv4.validateMultiple userObject, User.schema + return forms.applyErrorsToForm(@$el, res.errors) unless res.valid + @enableModalInProgress(@$el) # TODO: part of forms + loginUser userObject, null, window.nextURL