Skip to content

Commit a255922

Browse files
committed
minor ES6 fixes + reset password page & component #129
1 parent d55e62f commit a255922

File tree

14 files changed

+115
-17
lines changed

14 files changed

+115
-17
lines changed

angular/app/components/forgot-password/forgot-password.component.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@
66
</md-input-container>
77
</div>
88

9-
<md-button type="submit" class="LoginForm-submit md-primary md-raised">Submit</md-button>
9+
<md-button type="submit" class="md-primary md-raised">Submit</md-button>
1010
</form>

angular/app/components/login-form/login-form.component.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ class LoginFormController {
1010
}
1111

1212
login() {
13-
var user = {
13+
let user = {
1414
email: this.email,
1515
password: this.password
1616
};
@@ -26,7 +26,7 @@ class LoginFormController {
2626

2727
failedLogin(response) {
2828
if (response.status === 422) {
29-
for (var error in response.data.errors) {
29+
for (let error in response.data.errors) {
3030
return this.ToastService.error(response.data.errors[error][0]);
3131
}
3232
}

angular/app/components/register-form/register-form.component.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ class RegisterFormController {
1111
}
1212

1313
register() {
14-
var user = {
14+
let user = {
1515
name: this.name,
1616
email: this.email,
1717
password: this.password
@@ -31,7 +31,7 @@ class RegisterFormController {
3131

3232
failedRegistration(response) {
3333
if (response.status === 422) {
34-
for (var error in response.data.errors) {
34+
for (let error in response.data.errors) {
3535
return this.ToastService.error(response.data.errors[error][0]);
3636
}
3737
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
<div class="ResetPassword-loader" layout="row" layout-align="center center">
2+
<md-progress-circular md-mode="indeterminate" ng-if="!vm.isValidCode"></md-progress-circular>
3+
</div>
4+
5+
<form ng-submit="vm.submit()" ng-show="vm.isValidCode">
6+
<div>
7+
<md-input-container>
8+
<label>Password</label>
9+
<input type="password" ng-model="vm.password">
10+
</md-input-container>
11+
</div>
12+
13+
<div>
14+
<md-input-container>
15+
<label>Confirm Password</label>
16+
<input type="password" ng-model="vm.password_confirmation">
17+
</md-input-container>
18+
</div>
19+
20+
<md-button type="submit" class="md-primary md-raised">Submit</md-button>
21+
</form>
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
class ResetPasswordController {
2+
constructor(API, ToastService, $state) {
3+
'ngInject';
4+
5+
this.API = API;
6+
this.$state = $state;
7+
this.ToastService = ToastService;
8+
9+
this.password = '';
10+
this.password_confirmation = '';
11+
this.isValidCode = false;
12+
13+
this.validateCode();
14+
}
15+
16+
validateCode() {
17+
let email = this.$state.params.email;
18+
let code = this.$state.params.code;
19+
20+
this.API.all('auth/reset').get('check', {
21+
email, code
22+
}).then(() => {
23+
this.isValidCode = true;
24+
});
25+
}
26+
27+
reset() {
28+
let data = {
29+
email: this.$state.params.email,
30+
code: this.$state.params.code,
31+
password: this.password,
32+
password_confirmation: this.password_confirmation
33+
};
34+
35+
this.API.all('auth/reset').post(data).then(() => {
36+
this.ToastService.show('Password successfully changed');
37+
this.$state.go('app.login');
38+
});
39+
}
40+
}
41+
42+
export const ResetPasswordComponent = {
43+
templateUrl: './views/app/components/reset-password/reset-password.component.html',
44+
controller: ResetPasswordController,
45+
controllerAs: 'vm',
46+
bindings: {}
47+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.ResetPassword-loader{
2+
min-height: 300px;
3+
}

angular/app/pages/reset-password/reset-password.less

Whitespace-only changes.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<md-content class="Page-container">
2+
<div layout="column" layout-align="center center">
3+
4+
<h1 class="md-headline">Reset Password</h1>
5+
6+
<reset-password></reset-password>
7+
8+
</div>
9+
</md-content>

angular/config/routes.config.js

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export function RoutesConfig($stateProvider, $urlRouterProvider) {
22
'ngInject';
33

4-
var getView = (viewName) => {
4+
let getView = (viewName) => {
55
return `./views/app/pages/${viewName}/${viewName}.page.html`;
66
};
77

@@ -10,6 +10,7 @@ export function RoutesConfig($stateProvider, $urlRouterProvider) {
1010
$stateProvider
1111
.state('app', {
1212
abstract: true,
13+
data: {},//{auth: true} would require JWT auth
1314
views: {
1415
header: {
1516
templateUrl: getView('header')
@@ -22,7 +23,6 @@ export function RoutesConfig($stateProvider, $urlRouterProvider) {
2223
})
2324
.state('app.landing', {
2425
url: '/',
25-
data: {},
2626
views: {
2727
'main@': {
2828
templateUrl: getView('landing')
@@ -31,7 +31,6 @@ export function RoutesConfig($stateProvider, $urlRouterProvider) {
3131
})
3232
.state('app.login', {
3333
url: '/login',
34-
data: {},
3534
views: {
3635
'main@': {
3736
templateUrl: getView('login')
@@ -40,7 +39,6 @@ export function RoutesConfig($stateProvider, $urlRouterProvider) {
4039
})
4140
.state('app.register', {
4241
url: '/register',
43-
data: {},
4442
views: {
4543
'main@': {
4644
templateUrl: getView('register')
@@ -49,11 +47,18 @@ export function RoutesConfig($stateProvider, $urlRouterProvider) {
4947
})
5048
.state('app.forgot_password', {
5149
url: '/forgot-password',
52-
data: {},
5350
views: {
5451
'main@': {
5552
templateUrl: getView('forgot-password')
5653
}
5754
}
55+
})
56+
.state('app.reset_password', {
57+
url: '/reset-password/:email/:code',
58+
views: {
59+
'main@': {
60+
templateUrl: getView('reset-password')
61+
}
62+
}
5863
});
5964
}

angular/index.components.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
import {ResetPasswordComponent} from './app/components/reset-password/reset-password.component';
12
import {ForgotPasswordComponent} from './app/components/forgot-password/forgot-password.component';
23
import {LoginFormComponent} from './app/components/login-form/login-form.component';
34
import {RegisterFormComponent} from './app/components/register-form/register-form.component';
45

56
angular.module('app.components')
7+
.component('resetPassword', ResetPasswordComponent)
68
.component('forgotPassword', ForgotPasswordComponent)
79
.component('loginForm', LoginFormComponent)
810
.component('registerForm', RegisterFormComponent);

angular/run/routes.run.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ export function RoutesRun($rootScope, $state, $auth) {
22
'ngInject';
33

44

5-
var deregisterationCallback = $rootScope.$on("$stateChangeStart", function(event, toState) {
5+
let deregisterationCallback = $rootScope.$on("$stateChangeStart", function(event, toState) {
66

77
if (toState.data && toState.data.auth) {
88
/*Cancel going to the authenticated state and go back to the login page*/

angular/services/API.service.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ export class APIService {
22
constructor(Restangular, ToastService, $window) {
33
'ngInject';
44
//content negotiation
5-
var headers = {
5+
let headers = {
66
'Content-Type': 'application/json',
77
'Accept': 'application/x.laravel.v1+json'
88
};
@@ -13,13 +13,13 @@ export class APIService {
1313
.setDefaultHeaders(headers)
1414
.setErrorInterceptor(function(response) {
1515
if (response.status === 422) {
16-
for (var error in response.data.errors) {
16+
for (let error in response.data.errors) {
1717
return ToastService.error(response.data.errors[error][0]);
1818
}
1919
}
2020
})
2121
.addFullRequestInterceptor(function(element, operation, what, url, headers) {
22-
var token = $window.localStorage.satellizer_token;
22+
let token = $window.localStorage.satellizer_token;
2323
if (token) {
2424
headers.Authorization = 'Bearer ' + token;
2525
}

angular/services/dialog.service.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export class DialogService {
2424
}
2525

2626
alert(title, content) {
27-
var alert = this.$mdDialog.alert()
27+
let alert = this.$mdDialog.alert()
2828
.title(title)
2929
.content(content)
3030
.ariaLabel(content)
@@ -34,7 +34,7 @@ export class DialogService {
3434
}
3535

3636
confirm(title, content) {
37-
var confirm = this.$mdDialog.confirm()
37+
let confirm = this.$mdDialog.confirm()
3838
.title(title)
3939
.content(content)
4040
.ariaLabel(content)
@@ -45,7 +45,7 @@ export class DialogService {
4545
}
4646

4747
prompt(title, content, placeholder) {
48-
var prompt = this.$mdDialog.prompt()
48+
let prompt = this.$mdDialog.prompt()
4949
.title(title)
5050
.textContent(content)
5151
.placeholder(placeholder)
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
ngDescribe({
2+
name: 'Test reset-password component',
3+
modules: 'app',
4+
element: '<reset-password></reset-password>',
5+
tests: function (deps) {
6+
7+
it('basic test', () => {
8+
//
9+
});
10+
}
11+
});

0 commit comments

Comments
 (0)