Skip to content

Instantly share code, notes, and snippets.

@marawannwh
Created February 3, 2014 22:10
Show Gist options
  • Save marawannwh/8793461 to your computer and use it in GitHub Desktop.
Save marawannwh/8793461 to your computer and use it in GitHub Desktop.
<script type="text/javascript" src="/public/js/jquery-1.10.2.min.js"></script>
<script type="text/javascript" src="/public/lib/angular/angular.js"></script>
<script type="text/javascript" src="/public/lib/angular/angular-route.js"></script>
<script type="text/javascript" src="/public/lib/angular/angular-resource.min.js"></script>
<script type="text/javascript" src="/public/lib/angular/angular-cookies.min.js"></script>
<script type="text/javascript" src="/public/js/app.js"></script>
<script type="text/javascript" src="/public/js/services.js"></script>
<script type="text/javascript" src="/public/js/controllers.js"></script>
<script type="text/javascript" src="/public/js/controllers/signup.js"></script>
<script type="text/javascript" src="/public/js/controllers/login.js"></script>
<script type="text/javascript" src="/public/js/filters.js"></script>
<script type="text/javascript" src="/public/js/directives.js"></script>
<script type="text/javascript" src="/public/js/bootstrap.min.js"></script>
'use strict';
controllersModule.controller('SignupCtrl', ['$scope','$cookies','$http',
function($scope, $http,$cookies) {
$scope.disableSignupBtn = false;
$scope.name = "";
$scope.username = "";
$scope.email = "";
$scope.password = "";
$scope.passConf = "";
$scope.signup = function() {
$scope.disableSignupBtn = true;
$scope.result = "";
$scope.nameErrors = [];
$scope.usernameErrors = [];
$scope.emailErrors = [];
$scope.passwordErrors = [];
$scope.passConfErrors = [];
// VALIDATION
if (!signupForm.name.value) {
$scope.disableSignupBtn = false;
$scope.nameErrors.push("Enter your name");
};
if (!signupForm.username.value) {
$scope.disableSignupBtn = false;
$scope.usernameErrors.push("Enter your username");
};
if (!signupForm.email.value) {
$scope.disableSignupBtn = false;
$scope.emailErrors.push("Enter your email");
};
if (!signupForm.password.value) {
$scope.disableSignupBtn = false;
$scope.passwordErrors.push("Enter your password");
};
if (!signupForm.passConf.value) {
$scope.disableSignupBtn = false;
$scope.passConfErrors.push("Enter your password again");
};
if(signupForm.password.value.length < 6){
$scope.disableSignupBtn = false;
$scope.passwordErrors.push("Password can't be less than 6 charachters");
};
if (signupForm.password.value != signupForm.passConf.value) {
$scope.disableSignupBtn = false;
$scope.passConfErrors.push("Passwords doesn't match");
};
// send signup request
if ($scope.disableSignupBtn) { // which means all validations are passed
var signupData = {
Name: signupForm.name.value,
Username: signupForm.username.value,
Email: signupForm.email.value,
Pass: signupForm.password.value
};
$http.post("/api/v0/signup", signupData).success(function(data, status, headers, config) {
$cookies.auth_token = data.Auth_token;
$scope.result = data;
}).error(function(data, status, headers, config) {
$scope.disableSignupBtn = false;
if (status === 400) {
// bad request
$scope.result = data;
};
if (status === 420) {
$scope.disableSignupBtn = false;
// show error to the user
$scope.nameErrors = data.Name;
$scope.usernameErrors = data.Username;
$scope.emailErrors = data.Email;
$scope.passwordErrors = data.Pass;
}
});
};
}
}]);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment