Commit 403520b52da3ef3cfba13229ebd93ba8aac58f28
1 parent
3489a985d7
Exists in
master
and in
1 other branch
added verify email
Showing 4 changed files with 46 additions and 1 deletions Inline Diff
config.js
View file @
403520b
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 |
home.html
View file @
403520b
<!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"> |