Skip to content

Commit 4e1326c

Browse files
committed
added validators on email and password for login page
1 parent ec392a8 commit 4e1326c

3 files changed

Lines changed: 107 additions & 9 deletions

File tree

src/pages/login/login.html

Lines changed: 86 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
Ionic pages and navigation.
66
-->
77
<ion-header>
8-
<ion-navbar>
9-
<button ion-button menuToggle>
10-
<ion-icon name="menu"></ion-icon>
11-
</button>
12-
<ion-title>Register</ion-title>
13-
</ion-navbar>
8+
<ion-navbar>
9+
<button ion-button menuToggle>
10+
<ion-icon name="menu"></ion-icon>
11+
</button>
12+
<ion-title>Register</ion-title>
13+
</ion-navbar>
1414
</ion-header>
1515

1616
<ion-content>
@@ -19,7 +19,7 @@
1919
<h1 id="title">INTRANSITION</h1>
2020
</div>
2121

22-
<ion-grid fixed>
22+
<!-- <ion-grid fixed>
2323
2424
<br>
2525
@@ -85,6 +85,84 @@ <h3 text-center>If you don't have an account yet, you can register now.</h3>
8585
<ion-col col-2></ion-col>
8686
</ion-row>
8787
88-
</ion-grid>
88+
</ion-grid> -->
89+
90+
<form [formGroup]="loginCreds" (ngSubmit)="logForm()">
91+
<ion-grid>
92+
93+
<ion-row>
94+
<ion-col col-1></ion-col>
95+
<ion-col>
96+
<h2 text-center>Transitioning from the military to civilian environment is more than just a job change.</h2>
97+
<br>
98+
<h2 id="lifechange" text-center>It's a life change.</h2>
99+
</ion-col>
100+
<ion-col col-1></ion-col>
101+
</ion-row>
102+
103+
<ion-row>
104+
<ion-col col-1></ion-col>
105+
<ion-col>
106+
<ion-label class="labels" style="font-size: 25px" stacked>EMAIL ADDRESS</ion-label>
107+
<ion-input formControlName="email" class="inputs" id="email" type="email"></ion-input>
108+
</ion-col>
109+
<ion-col col-1></ion-col>
110+
</ion-row>
111+
112+
<ion-row>
113+
<ion-col col-1></ion-col>
114+
<ion-col>
115+
<ion-item no-lines *ngIf="!loginCreds.controls.email.valid && (loginCreds.controls.email.dirty || submitAttempt)">
116+
<p class="invalid-text">Please enter a valid email</p>
117+
</ion-item><br>
118+
</ion-col>
119+
<ion-col col-1></ion-col>
120+
</ion-row>
121+
122+
<ion-row>
123+
<ion-col col-1></ion-col>
124+
<ion-col>
125+
<ion-label class="labels" style="font-size: 25px" stacked>PASSWORD</ion-label>
126+
<ion-input formControlName="password" class="inputs" id="password" type="password"><button ion-button>Hi</button></ion-input>
127+
</ion-col>
128+
<ion-col col-1></ion-col>
129+
</ion-row>
130+
131+
<ion-row>
132+
<ion-col col-1></ion-col>
133+
<ion-col>
134+
<ion-item no-lines *ngIf="!loginCreds.controls.password.valid && (loginCreds.controls.password.dirty || submitAttempt)">
135+
<p class="invalid-text">Please enter a password</p>
136+
</ion-item><br>
137+
</ion-col>
138+
<ion-col col-1></ion-col>
139+
</ion-row>
140+
141+
<ion-row>
142+
<ion-col col-2></ion-col>
143+
<ion-col>
144+
<button (click)="login()" id="loginbutton" type="submit" ion-button block [disabled]="!loginCreds.valid">LOGIN</button>
145+
</ion-col>
146+
<ion-col col-2></ion-col>
147+
</ion-row>
148+
149+
<ion-row>
150+
<ion-col col-1></ion-col>
151+
<ion-col>
152+
<h3 text-center>If you don't have an account yet, you can register now.</h3>
153+
</ion-col>
154+
<ion-col col-1></ion-col>
155+
</ion-row>
156+
157+
<ion-row style="padding-bottom:30px;">
158+
<ion-col col-2></ion-col>
159+
<ion-col>
160+
<button (click)="toRegisterPage()" id="signupbutton" ion-button block>SIGN UP</button>
161+
</ion-col>
162+
<ion-col col-2></ion-col>
163+
</ion-row>
164+
165+
</ion-grid>
166+
</form>
89167

90168
</ion-content>

src/pages/login/login.scss

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ page-login {
5858
font-size: 25px
5959
}
6060

61+
.invalid-text {
62+
font-size: 20px;
63+
color: #ea6153;
64+
}
65+
6166
#loginbutton {
6267
background-color: rgb(130,180,64);
6368
font-size: 25px
@@ -101,6 +106,13 @@ page-login {
101106
left: 140px;
102107
}
103108

109+
.invalid-text {
110+
font-size: 20px;
111+
color: #ea6153;
112+
margin: auto;
113+
width: 70%;
114+
}
115+
104116
.labels {
105117
padding-left: 15%;
106118
}

src/pages/login/login.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Component } from '@angular/core';
22
import { NavController, NavParams } from 'ionic-angular';
3+
import {Validators, FormBuilder, FormGroup } from '@angular/forms';
34
import { RegisterPage } from '../register/register';
45

56
import { UserProvider } from '../../providers/user/user'
@@ -23,7 +24,14 @@ export class LoginPage {
2324
password: ''
2425
}
2526

26-
constructor(public navCtrl: NavController, public navParams: NavParams, public _userService: UserProvider) {
27+
private loginCreds : FormGroup;
28+
29+
constructor(public navCtrl: NavController, public navParams: NavParams, public _userService: UserProvider, private formBuilder: FormBuilder) {
30+
this.loginCreds = this.formBuilder.group({
31+
email: ['', Validators.compose([Validators.required,
32+
Validators.pattern('^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+.[a-zA-Z0-9-.]+$')])],
33+
password: ['', Validators.required],
34+
});
2735
}
2836

2937
ionViewDidLoad() {

0 commit comments

Comments
 (0)