1yocktailApp.controller('SignupCtrl', function ($scope, $firebaseAuth, $firebase, $location, Cocktail, $window) { 2 $scope.loading = false; 3 4 $scope.$on('$viewContentLoaded', function(){ 5 if(Cocktail.getUser() != ''){ 6 $location.path('/profile'); 7 }else{ 8 // do nothing 9 } 10 }); 11 12 // create authentication object 13 var firebaseObj = new Firebase("https://yocktail.firebaseio.com/"); 14 var authObj = $firebaseAuth(firebaseObj); 15 16 // creating a Firebase database Reference for users 17 var usersRef = new Firebase("https://yocktail.firebaseio.com/web/data/users"); 18 19 $scope.SignUp = function(){ 20 $scope.loading = true; 21 22 if (!$scope.regForm.$invalid) { 23 var name = $scope.user.name; 24 var email = $scope.user.email; 25 var birthday = $scope.user.birthday; 26 var password = $scope.user.password; 27 var confirmedPassword = $scope.user.confirmedPassword; 28 29 if (name && email && birthday && password && confirmedPassword) { 30 if (password == confirmedPassword) { 31 // PENDING TO DO: ALSO NEED TO CHECK IF USER'S BIRTHDAY IS VALID 32 33 // create user in firebase 34 authObj.$createUser({ email: email, password: password }) 35 .then(function(userData) { 36 // do things if success 37 38 // create user with full information for firebase 39 var uid = userData.uid; 40 var newUser = { name: name, email: email, birthday: birthday}; 41 //console.log("newUser"); 42 //console.log(newUser); 43 usersRef.child(uid).set(newUser); 44 45 // signup is not enough, need to signed in on firebase 46 // Sign in: 47 authObj.$authWithPassword({ 48 email: email, 49 password: password 50 }) 51 .then(function(userData) { 52 //Success callback 53 console.log("SignupCtrl user"); 54 console.log(userData); 55 console.log('SignupCtrl Authentication successful with uid: ' + userData.uid); 56 57 // save the user's full information for local use 58 var uid = userData.uid; 59 var newUser2 = { uid: uid, name: name, email: email, birthday: birthday }; 60 //console.log("newUser2"); 61 //console.log(newUser2); 62 Cocktail.setUser("user", newUser2); 63 64 //$location.path('/profile/'+uid); 65 $scope.loading = false; 66 67 $window.location.reload(); 68 69 }, function(error) { 70 $scope.loading = false; 71 72 //Failure callback 73 $scope.regError = true; 74 $scope.regErrorMessage = "Sorry, failed to sign in. Please try again."; 75 console.log('SignupCtrl Authentication failure'); 76 }); 77 }, function(error) { 78 // do things if failure 79 80 $scope.loading = false; 81 82 console.log(error); 83 $scope.regError = true; 84 $scope.regErrorMessage = error.message; 85 console.log('SignupCtrl signup failure with error: ' + error.message); 86 } 87 ); 88 }else{ 89 $scope.loading = false;
90 91 $scope.regError = true; 92 $scope.regErrorMessage = "The two passwords does not match."; 93 } 94 }else{ 95 $scope.loading = false; 96 97 $scope.regError = true; 98 $scope.regErrorMessage = "Please fill out all the required information."; 99 } 100 } 101 }; 102 103});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.