Commit 403520b52da3ef3cfba13229ebd93ba8aac58f28

Authored by Tetranoir
1 parent 3489a985d7

added verify email

Showing 4 changed files with 46 additions and 1 deletions Inline Diff

angular.module('flashy', [ 1 1 angular.module('flashy', [
'flashy.LogoutController', 2 2 'flashy.LogoutController',
'flashy.LoginController', 3 3 'flashy.LoginController',
'flashy.RootController', 4 4 'flashy.RootController',
'flashy.FeedController', 5 5 'flashy.FeedController',
'flashy.DeckController', 6 6 'flashy.DeckController',
'flashy.ClassAddController', 7 7 'flashy.ClassAddController',
'flashy.RequestResetController', 8 8 'flashy.RequestResetController',
'flashy.ReviewController', 9 9 'flashy.ReviewController',
'flashy.UserService', 10 10 'flashy.UserService',
'flashy.FlashcardDirective', 11 11 'flashy.FlashcardDirective',
'flashy.ResetPasswordController', 12 12 'flashy.ResetPasswordController',
13 'flashy.VerifyEmailController',
'ngCookies']). 13 14 'ngCookies']).
config(['$stateProvider', '$urlRouterProvider', '$httpProvider', 14 15 config(['$stateProvider', '$urlRouterProvider', '$httpProvider',
'$locationProvider', 15 16 '$locationProvider',
function($stateProvider, $urlRouterProvider, $httpProvider, $locationProvider) { 16 17 function($stateProvider, $urlRouterProvider, $httpProvider, $locationProvider) {
'use strict'; 17 18 'use strict';
$httpProvider.defaults.withCredentials = true; 18 19 $httpProvider.defaults.withCredentials = true;
$httpProvider.defaults.xsrfCookieName = 'csrftoken'; 19 20 $httpProvider.defaults.xsrfCookieName = 'csrftoken';
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken'; 20 21 $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
$locationProvider.html5Mode(true); 21 22 $locationProvider.html5Mode(true);
$urlRouterProvider.otherwise('/home'); 22 23 $urlRouterProvider.otherwise('/home');
$stateProvider. 23 24 $stateProvider.
state('login', { 24 25 state('login', {
url: '/login', 25 26 url: '/login',
templateUrl: 'templates/login.html', 26 27 templateUrl: 'templates/login.html',
controller: 'LoginController' 27 28 controller: 'LoginController'
}). 28 29 }).
state('logout', { 29 30 state('logout', {
url: '/logout', 30 31 url: '/logout',
templateUrl: 'templates/logout.html', 31 32 templateUrl: 'templates/logout.html',
controller: 'LogoutController' 32 33 controller: 'LogoutController'
}). 33 34 }).
state('root', { 34 35 state('root', {
url: '/', 35 36 url: '/',
templateUrl: 'templates/root.html', 36 37 templateUrl: 'templates/root.html',
controller: 'RootController' 37 38 controller: 'RootController'
}). 38 39 }).
state('feed', { 39 40 state('feed', {
url: '/feed', 40 41 url: '/feed',
templateUrl: 'templates/feed.html', 41 42 templateUrl: 'templates/feed.html',
controller: 'FeedController' 42 43 controller: 'FeedController'
}). 43 44 }).
state('addclass', { 44 45 state('addclass', {
url: '/addclass', 45 46 url: '/addclass',
templateUrl: 'templates/addclass.html', 46 47 templateUrl: 'templates/addclass.html',
controller: 'ClassAddController' 47 48 controller: 'ClassAddController'
}). 48 49 }).
state('deck', { 49 50 state('deck', {
url: '/deck', 50 51 url: '/deck',
templateUrl: 'templates/deck.html', 51 52 templateUrl: 'templates/deck.html',
controller: 'DeckController' 52 53 controller: 'DeckController'
}). 53 54 }).
state('review', { 54 55 state('review', {
url: '/review', 55 56 url: '/review',
templateUrl: 'templates/review.html', 56 57 templateUrl: 'templates/review.html',
controller: 'ReviewController' 57 58 controller: 'ReviewController'
}). 58 59 }).
state('flashcard', { 59 60 state('flashcard', {
url: '/flashcard', 60 61 url: '/flashcard',
templateUrl: 'templates/flashcard.html', 61 62 templateUrl: 'templates/flashcard.html',
controller: 'FlashcardController' 62 63 controller: 'FlashcardController'
}). 63 64 }).
state('requestpasswordreset', { 64 65 state('requestpasswordreset', {
url: '/requestpasswordreset', 65 66 url: '/requestpasswordreset',
templateUrl: 'templates/requestpasswordreset.html', 66 67 templateUrl: 'templates/requestpasswordreset.html',
controller: 'RequestResetController' 67 68 controller: 'RequestResetController'
}). 68 69 }).
state('resetpassword', { 69 70 state('resetpassword', {
url: '/resetpassword/{uid}/{token}', 70 71 url: '/resetpassword/{uid}/{token}',
templateUrl: 'templates/resetpassword.html', 71 72 templateUrl: 'templates/resetpassword.html',
controller: 'ResetPasswordController' 72 73 controller: 'ResetPasswordController'
74 }).
75 state('verifyemail', {
76 url: '/verifyemail/{key}',
77 templateUrl: 'templates/verifyemail.html',
78 controller: 'VerifyEmailController'
}); 73 79 });
74
<!DOCTYPE html> 1 1 <!DOCTYPE html>
<html ng-app="flashy"> 2 2 <html ng-app="flashy">
<base href="/app/"> 3 3 <base href="/app/">
<head> 4 4 <head>
<link type="text/css" rel="stylesheet" href="styles/materialize.min.css" media="screen,projection"/> 5 5 <link type="text/css" rel="stylesheet" href="styles/materialize.min.css" media="screen,projection"/>
<!--<link rel="stylesheet" href="styles/bootstrap-3.3.4-dist/css/bootstrap.css"/>--> 6 6 <!--<link rel="stylesheet" href="styles/bootstrap-3.3.4-dist/css/bootstrap.css"/>-->
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/0.9.0/angular-material.min.css"> 7 7 <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/angular_material/0.9.0/angular-material.min.css">
8 8
<link rel="stylesheet" href="flashy.css"/> 9 9 <link rel="stylesheet" href="flashy.css"/>
</head> 10 10 </head>
11 11
<body ng-controller="RootController"> 12 12 <body ng-controller="RootController">
13 13
<ul id="nav" class="side-nav fixed"> 14 14 <ul id="nav" class="side-nav fixed">
<li class="bold"><a ui-sref="login">Login</a></li> 15 15 <li class="bold"><a ui-sref="login">Login</a></li>
<li class="bold"><a ui-sref="addclass">Add Class</a></li> 16 16 <li class="bold"><a ui-sref="addclass">Add Class</a></li>
</ul> 17 17 </ul>
<div class="container" ui-view></div> 18 18 <div class="container" ui-view></div>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.js"></script> 19 19 <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.14/angular-ui-router.js"></script> 20 20 <script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.14/angular-ui-router.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-cookies.js"></script> 21 21 <script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-cookies.js"></script>
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script> 22 22 <script src="//code.jquery.com/jquery-2.1.4.min.js"></script>
<script type="text/javascript" src="scripts/materialize.min.js"></script> 23 23 <script type="text/javascript" src="scripts/materialize.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angular_material/0.9.0/angular-material.min.js"></script> 24 24 <script src="https://ajax.googleapis.com/ajax/libs/angular_material/0.9.0/angular-material.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-animate.min.js"></script> 25 25 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-animate.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-aria.min.js"></script> 26 26 <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular-aria.min.js"></script>
27 27
<script src="config.js"></script> 28 28 <script src="config.js"></script>
29 29
<!-- Controllers --> 30 30 <!-- Controllers -->
<script src="scripts/FeedController.js"></script> 31 31 <script src="scripts/FeedController.js"></script>
<script src="scripts/RootController.js"></script> 32 32 <script src="scripts/RootController.js"></script>
<script src="scripts/LoginController.js"></script> 33 33 <script src="scripts/LoginController.js"></script>
<script src="scripts/LogoutController.js"></script> 34 34 <script src="scripts/LogoutController.js"></script>
<script src="scripts/DeckController.js"></script> 35 35 <script src="scripts/DeckController.js"></script>
<script src="scripts/RequestResetController.js"></script> 36 36 <script src="scripts/RequestResetController.js"></script>
<script src="scripts/ClassAddController.js"></script> 37 37 <script src="scripts/ClassAddController.js"></script>
<script src="scripts/ReviewController.js"></script> 38 38 <script src="scripts/ReviewController.js"></script>
39 <script src="scripts/VerifyEmailController.js"></script>
39 40
<!-- Services --> 40 41 <!-- Services -->
<script src="scripts/UserService.js"></script> 41 42 <script src="scripts/UserService.js"></script>
42 43
<!-- Directives --> 43 44 <!-- Directives -->
<script src="scripts/FlashcardDirective.js"></script> 44 45 <script src="scripts/FlashcardDirective.js"></script>
45 46
scripts/VerifyEmailController.js View file @ 403520b
File was created 1 angular.module('flashy.VerifyEmailController', ['ui.router'])
2
3 .controller('VerifyEmailController', ['$scope', '$state', '$http', '$timeout',
4 function($scope, $state, $http, $timeout) {
5 'use strict';
6 var url = document.location.href.split('/');
7 var key = url[url.length-1];
8 $scope.success = false;
9 $scope.error = false;
10
11 $http.patch('/api/me', JSON.stringify({
12 'confirmation_key': key
13 }))
14 .success(function(data) {
15 $scope.success = true;
16 console.log("SUCCESS");
17 console.log(data);
18 $timeout(function($state) {
19 $state.go('feed');
20 }, 2000);
21 })
22 .error(function(data, status, header, config) {
23 $scope.error = true;
24 console.log("ERROR");
25 console.log(data);
26 });
templates/verifyemail.html View file @ 403520b
File was created 1 <div class="row" ng-show="success">
2 <h1>Email verified!</h1>
3 </div>
4
5 <div class="row" ng-show="error">
6 <h1>Problem with email verification!</h1>
7 </div>
8
9 <div class="row" ng-show="!success && !error">