summaryrefslogtreecommitdiff
path: root/js/codeq/signup.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/codeq/signup.js')
-rw-r--r--js/codeq/signup.js72
1 files changed, 72 insertions, 0 deletions
diff --git a/js/codeq/signup.js b/js/codeq/signup.js
new file mode 100644
index 0000000..aab831f
--- /dev/null
+++ b/js/codeq/signup.js
@@ -0,0 +1,72 @@
+/**
+ * Created by robert on 10/14/15.
+ */
+(function(){
+
+ var jqUsername = $("#modalSignUpUsername"),
+ jqName = $("#modalSignUpName"),
+ jqEmail = $("#modalSignUpEmail"),
+ jqPassword = $("#modalSignUpPassword"),
+ jqVerify = $("#modalSignUpVerify");
+
+ codeq.globalStateMachine.register('signup',{
+ 'enter': function(){
+ $('#navigation-home').off('click');//remove the click listener of this element here
+ $('.nav.navbar-nav.navbar-right').css('display','none');//hide settings etc.
+ $('#signed-in-title').html('');
+ $("#screen_signup").css('display', '');
+ $('#disabled').css('display', 'none');
+ $('#exit_signup_btn').on('click',function(){
+ codeq.globalStateMachine.transition('login');
+ });
+
+ //prepare listener for successfull signup
+ $('#formSignUp').on('submit',function(event) {
+ console.log($(this).serialize());
+ if (jqPassword.val() != jqVerify.val()) {
+ alert('Passwords do not match.');
+ }
+ else {
+ codeq.comms.signup(jqUsername.val(), jqName.val(), jqEmail.val(), jqPassword.val())
+ .then(function (data) {
+ if (data.code !== 0) throw new Error('Signup failed, code: ' + data.code + ', message: ' + data.message);
+
+ var newUsername = jqUsername.val();//saving before transition (which will reset the value of the field)
+ //back to login
+ codeq.globalStateMachine.transition('login');
+ alert('Welcome '+ newUsername +'. Thanks for signing up.');
+ //assume user wants to sign-in with signed username
+ $("#username").val(newUsername);
+
+ })
+ .fail(function (reason) {
+ codeq.log.error('Signup failed: ' + reason, reason);
+ alert('Signup failed: ' + reason);
+ })
+ .done();
+ }
+ event.preventDefault(); // Prevent the form from submitting via the browser.
+ });
+ },
+ 'exit' : function(){
+ $("#screen_signup").css('display', 'none');
+ //re-enable the click listener
+ $('#navigation-home').on('click', function(e){
+ codeq.globalStateMachine.transition('language');
+ e.preventDefault();
+ });
+ //disable listeners on stuff from this page only
+ $('#exit_signup_btn').off('click');
+ $('#formSignUp').off('submit');
+ //show the menu buttons
+ $('.nav.navbar-nav.navbar-right').css('display','');
+
+ jqUsername.val('');
+ jqName.val('');
+ jqEmail.val('');
+ jqPassword.val('');
+ jqVerify.val('');
+ }
+ });
+
+})();