Commit 148735bcc77063b3daef55beb3ec787f8d9413e9
1 parent
6f2c93016e
Exists in
master
and in
1 other branch
added resetpassword
Showing 5 changed files with 69 additions and 3 deletions Inline Diff
config.js
View file @
148735b
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.UserService', | 9 | 9 | 'flashy.UserService', | |
10 | 'flashy.ResetPasswordController', | |||
'ngCookies']). | 10 | 11 | 'ngCookies']). | |
config(['$stateProvider', '$urlRouterProvider', '$httpProvider', | 11 | 12 | config(['$stateProvider', '$urlRouterProvider', '$httpProvider', | |
'$locationProvider', | 12 | 13 | '$locationProvider', | |
function($stateProvider, $urlRouterProvider, $httpProvider, $locationProvider) { | 13 | 14 | function($stateProvider, $urlRouterProvider, $httpProvider, $locationProvider) { | |
'use strict'; | 14 | 15 | 'use strict'; | |
$httpProvider.defaults.withCredentials = true; | 15 | 16 | $httpProvider.defaults.withCredentials = true; | |
$httpProvider.defaults.xsrfCookieName = 'csrftoken'; | 16 | 17 | $httpProvider.defaults.xsrfCookieName = 'csrftoken'; | |
$httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken'; | 17 | 18 | $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken'; | |
$locationProvider.html5Mode(true); | 18 | 19 | $locationProvider.html5Mode(true); | |
$urlRouterProvider.otherwise('/home'); | 19 | 20 | $urlRouterProvider.otherwise('/home'); | |
$stateProvider. | 20 | 21 | $stateProvider. | |
state('login', { | 21 | 22 | state('login', { | |
url: '/login', | 22 | 23 | url: '/login', | |
templateUrl: 'templates/login.html', | 23 | 24 | templateUrl: 'templates/login.html', | |
controller: 'LoginController' | 24 | 25 | controller: 'LoginController' | |
}). | 25 | 26 | }). | |
state('logout', { | 26 | 27 | state('logout', { | |
url: '/logout', | 27 | 28 | url: '/logout', | |
templateUrl: 'templates/logout.html', | 28 | 29 | templateUrl: 'templates/logout.html', | |
controller: 'LogoutController' | 29 | 30 | controller: 'LogoutController' | |
}). | 30 | 31 | }). | |
state('root', { | 31 | 32 | state('root', { | |
url: '/', | 32 | 33 | url: '/', | |
templateUrl: 'templates/root.html', | 33 | 34 | templateUrl: 'templates/root.html', | |
controller: 'RootController' | 34 | 35 | controller: 'RootController' | |
}). | 35 | 36 | }). | |
state('feed', { | 36 | 37 | state('feed', { | |
url: '/feed', | 37 | 38 | url: '/feed', | |
templateUrl: 'templates/feed.html', | 38 | 39 | templateUrl: 'templates/feed.html', | |
controller: 'FeedController' | 39 | 40 | controller: 'FeedController' | |
}). | 40 | 41 | }). | |
state('addclass', { | 41 | 42 | state('addclass', { | |
url: '/addclass', | 42 | 43 | url: '/addclass', | |
templateUrl: 'templates/addclass.html', | 43 | 44 | templateUrl: 'templates/addclass.html', | |
controller: 'ClassAddController' | 44 | 45 | controller: 'ClassAddController' | |
}). | 45 | 46 | }). | |
state('deck', { | 46 | 47 | state('deck', { | |
url: '/deck', | 47 | 48 | url: '/deck', | |
templateUrl: 'templates/deck.html', | 48 | 49 | templateUrl: 'templates/deck.html', | |
controller: 'DeckController' | 49 | 50 | controller: 'DeckController' | |
}). | 50 | 51 | }). | |
state('requestpasswordreset', { | 51 | 52 | state('requestpasswordreset', { | |
url: '/requestpasswordreset', | 52 | 53 | url: '/requestpasswordreset', | |
templateUrl: 'templates/requestpasswordreset.html', | 53 | 54 | templateUrl: 'templates/requestpasswordreset.html', | |
controller: 'RequestResetController' | 54 | 55 | controller: 'RequestResetController' | |
}); | 55 | 56 | }). | |
57 | state('resetpassword', { | |||
58 | url: '/resetpassword', | |||
59 | templateUrl: 'templates/resetpassword.html', | |||
60 | controller: 'ResetPasswordController' | |||
61 | }); | |||
56 | 62 | |||
}]); | 57 | 63 | }]); |
home.html
View file @
148735b
<!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="flashy.css"/> | 7 | 7 | <link rel="stylesheet" href="flashy.css"/> | |
</head> | 8 | 8 | </head> | |
9 | 9 | |||
<body ng-controller="RootController"> | 10 | 10 | <body ng-controller="RootController"> | |
11 | 11 | |||
<ul id="nav" class="side-nav fixed"> | 12 | 12 | <ul id="nav" class="side-nav fixed"> | |
<li class="bold"><a ui-sref="login">Login</a></li> | 13 | 13 | <li class="bold"><a ui-sref="login">Login</a></li> | |
<li class="bold"><a ui-sref="addclass">Add Class</a></li> | 14 | 14 | <li class="bold"><a ui-sref="addclass">Add Class</a></li> | |
</ul> | 15 | 15 | </ul> | |
<div class="container" ui-view></div> | 16 | 16 | <div class="container" ui-view></div> | |
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.js"></script> | 17 | 17 | <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> | 18 | 18 | <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> | 19 | 19 | <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> | 20 | 20 | <script src="//code.jquery.com/jquery-2.1.4.min.js"></script> | |
<script type="text/javascript" src="scripts/materialize.min.js"></script> | 21 | 21 | <script type="text/javascript" src="scripts/materialize.min.js"></script> | |
22 | 22 | |||
<script src="config.js"></script> | 23 | 23 | <script src="config.js"></script> | |
24 | 24 | |||
<script src="scripts/FeedController.js"></script> | 25 | 25 | <script src="scripts/FeedController.js"></script> | |
<script src="scripts/RootController.js"></script> | 26 | 26 | <script src="scripts/RootController.js"></script> | |
<script src="scripts/LoginController.js"></script> | 27 | 27 | <script src="scripts/LoginController.js"></script> | |
<script src="scripts/LogoutController.js"></script> | 28 | 28 | <script src="scripts/LogoutController.js"></script> | |
<script src="scripts/DeckController.js"></script> | 29 | 29 | <script src="scripts/DeckController.js"></script> | |
<script src="scripts/RequestResetController.js"></script> | 30 | 30 | <script src="scripts/RequestResetController.js"></script> | |
<script src="scripts/ClassAddController.js"></script> | 31 | 31 | <script src="scripts/ClassAddController.js"></script> | |
<script src="scripts/UserService.js"></script> | 32 | 32 | <script src="scripts/UserService.js"></script> | |
33 | <script src="scripts/ResetPasswordController.js"></script> |
scripts/ResetPasswordController.js
View file @
148735b
1 | angular.module('flashy.ResetPasswordController', ['ui.router']). | |||
2 | ||||
3 | controller('ResetPasswordController', ['$scope', '$state', '$http', | |||
4 | function($scope, $state, $http) { | |||
5 | 'use strict'; | |||
6 | var url = document.location.href.split("/"); | |||
7 | var token = url[url.length-1]; | |||
8 | var uid = url[url.length-2]; | |||
9 | $scope.error = false; | |||
10 | $scope.confirmResetPass = function(newPassword) { | |||
11 | $http.post('/api/reset_password', JSON.stringify({ | |||
12 | 'uid': uid, | |||
13 | 'token': token | |||
14 | })) | |||
15 | .success(function(data) { | |||
16 | $scope.error = false; | |||
17 | $state.go('resetpasssuccess'); | |||
18 | console.log(data); | |||
19 | }) | |||
20 | .error(function(data, status, header, config) { | |||
21 | $scope.error = true; | |||
22 | console.log(data); | |||
23 | }); | |||
24 | }; | |||
25 | $scope.cancelReset = function() { | |||
26 | $state.go('login'); | |||
27 | }; | |||
28 | } | |||
29 | ]); |
templates/login.html
View file @
148735b
<div class="container"> | 1 | 1 | <div class="container"> | |
<div class="row"> | 2 | 2 | <div class="row"> | |
<div class="col s6"> | 3 | 3 | <div class="col s6"> | |
<ul class="tabs" tabs> | 4 | 4 | <ul class="tabs" tabs> | |
<li class="tab col s3"><a href="#register-tab">Sign Up</a></li> | 5 | 5 | <li class="tab col s3"><a href="#register-tab">Sign Up</a></li> | |
<li class="tab col s3"><a class="active" href="#login-tab">Login</a></li> | 6 | 6 | <li class="tab col s3"><a class="active" href="#login-tab">Login</a></li> | |
</ul> | 7 | 7 | </ul> | |
</div> | 8 | 8 | </div> | |
<!--LOGIN TAB--> | 9 | 9 | <!--LOGIN TAB--> | |
<div id="login-tab" class="col s12"> | 10 | 10 | <div id="login-tab" class="col s12"> | |
<div class="check-element animate-show" role="alert" ng-show="loginError"> | 11 | 11 | <div class="check-element animate-show" role="alert" ng-show="loginError"> | |
<span style="color:#8E2323">Invalid username or password!!</span> | 12 | 12 | <span style="color:#8E2323">Invalid username or password!!</span> | |
</div> | 13 | 13 | </div> | |
<div class="row"> | 14 | 14 | <div class="row"> | |
<div class="input-field col s6"> | 15 | 15 | <div class="input-field col s6"> | |
<input type="email" class="validate" ng-model="loginEmail" placeholder="Email" required/> | 16 | 16 | <input id="email" type="email" class="validate" ng-model="loginEmail" placeholder="Email" required/> | |
<label for="email">Email</label> | 17 | 17 | <label for="email">Email</label> | |
</div> | 18 | 18 | </div> | |
</div> | 19 | 19 | </div> | |
<div class="row"> | 20 | 20 | <div class="row"> | |
<div class="input-field col s6"> | 21 | 21 | <div class="input-field col s6"> | |
<input type="password" class="validate" ng-model="loginPassword" placeholder="Password" required/> | 22 | 22 | <input id="password" type="password" class="validate" ng-model="loginPassword" placeholder="Password" required/> | |
<label for="password">Password</label> | 23 | 23 | <label for="password">Password</label> | |
</div> | 24 | 24 | </div> | |
</div> | 25 | 25 | </div> | |
<div class="row"> | 26 | 26 | <div class="row"> | |
<button class="btn waves-effect waves-light right-align" type="submit" name="action" | 27 | 27 | <button class="btn waves-effect waves-light right-align" type="submit" name="action" | |
ng-click="login(loginEmail, loginPassword)">Login | 28 | 28 | ng-click="login(loginEmail, loginPassword)">Login | |
</button> | 29 | 29 | </button> | |
</div> | 30 | 30 | </div> | |
</div> | 31 | 31 | </div> | |
<!--REGISTER TAB--> | 32 | 32 | <!--REGISTER TAB--> | |
<div id="register-tab" class="col s12"> | 33 | 33 | <div id="register-tab" class="col s12"> | |
<div class="row"> | 34 | 34 | <div class="row"> | |
<div class="input-field col s6"> | 35 | 35 | <div class="input-field col s6"> | |
<input type="email" class="validate" ng-model="loginEmail" placeholder="Email" required/> | 36 | 36 | <input type="email" class="validate" ng-model="loginEmail" placeholder="Email" required/> | |
<label for="email">Email</label> | 37 | 37 | <label for="email">Email</label> | |
</div> | 38 | 38 | </div> | |
</div> | 39 | 39 | </div> | |
<div class="row"> | 40 | 40 | <div class="row"> | |
<div class="input-field col s6"> | 41 | 41 | <div class="input-field col s6"> | |
<input type="password" class="validate" ng-model="registerPassword" placeholder="Password" required/> | 42 | 42 | <input type="password" class="validate" ng-model="registerPassword" placeholder="Password" required/> | |
<label for="password">Password</label> | 43 | 43 | <label for="password">Password</label> | |
</div> | 44 | 44 | </div> | |
</div> | 45 | 45 | </div> | |
<div class="row"> | 46 | 46 | <div class="row"> | |
<button class="btn waves-effect waves-light left-align" type="" name="action" | 47 | 47 | <button class="btn waves-effect waves-light left-align" type="" name="action" | |
ng-click="signUp(loginEmail, registerPassword)">Register | 48 | 48 | ng-click="signUp(loginEmail, registerPassword)">Register | |
</button> | 49 | 49 | </button> | |
</div> | 50 | 50 | </div> | |
</div> | 51 | 51 | </div> | |
</div> | 52 | 52 | </div> | |
<a class="trigger-password-reset" ng-click="triggerPasswordReset()" href="#">Forgot Password?</a> | 53 | 53 | <a class="trigger-password-reset" ng-click="triggerPasswordReset()" href="#">Forgot Password?</a> | |
</div> | 54 | 54 | </div> | |
templates/resetpassword.html
View file @
148735b
1 | <div class="container"> | |||
2 | <div class="row"> | |||
3 | <h1>Reset Password</h1> | |||
4 | </div> | |||
5 | ||||
6 | <div class="row"> | |||
7 | <form class="col s12"> | |||
8 | <div class="row" ng-show="error" role="alert"> | |||
9 | <i style="color:#8E2323" class="mdi-alert-error"></i> | |||
10 | <span style="color:#8E2323">Please use link from email!</span> | |||
11 | </div> | |||
12 | <div class="row"> | |||
13 | <input id="newpassword" type="password" class="validate" ng-model="newPassword" placeholder="New password" required/> | |||
14 | <label for="newpassword">New password</label> | |||
15 | </div> | |||
16 | <div class="row"> | |||
17 | <input id="confirmpassword" type="password" class="validate" ng-model="confirmPassword" placeholder="Confirm password" required/> | |||
18 | <label for="confirmpassword">Confirm password</label> | |||
19 | </div> | |||
20 | </form> | |||
21 | <div class="row"> | |||
22 | <button class="btn waves-effect waves-light red" type="submit" name="action" | |||
23 | ng-click="cancelReset()">Cancel | |||
24 | </button> | |||
25 | <button class="btn waves-effect waves-light green" type="submit" name="action" | |||
26 | ng-click="confirmResetPass(newPassword)">Confirm | |||
27 | </button> | |||
28 | </div> | |||
29 | </div> | |||
30 | </div> |