Browse Source

Application status UI

master
kj1352 3 years ago
parent
commit
29d55da6bc
9 changed files with 183 additions and 7 deletions
  1. +4
    -0
      src/app/app-routing.module.ts
  2. +3
    -1
      src/app/app.module.ts
  3. +20
    -0
      src/app/check-status/check-status.component.html
  4. +79
    -0
      src/app/check-status/check-status.component.scss
  5. +25
    -0
      src/app/check-status/check-status.component.spec.ts
  6. +44
    -0
      src/app/check-status/check-status.component.ts
  7. +1
    -2
      src/app/tabs/tabs.component.html
  8. +6
    -4
      src/app/tabs/tabs.component.scss
  9. +1
    -0
      src/styles.scss

+ 4
- 0
src/app/app-routing.module.ts View File

@@ -1,5 +1,6 @@
import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { CheckStatusComponent } from './check-status/check-status.component';
import { CreateCommitteeComponent } from './create-committee/create-committee.component';
import { EServicesComponent } from './e-services/e-services.component';
import { LoginComponent } from './login/login.component';
@@ -17,6 +18,9 @@ const routes: Routes = [
}, {
path: 'e-services',
component: EServicesComponent,
}, {
path:'check-status',
component: CheckStatusComponent
}, {
path: 'register-business',
component: RegisterBusinessComponent,


+ 3
- 1
src/app/app.module.ts View File

@@ -11,6 +11,7 @@ import { MockComponent } from './mock/mock.component';
import { EServicesComponent } from './e-services/e-services.component';
import { NotificationsComponent } from './notifications/notifications.component';
import { CreateCommitteeComponent } from './create-committee/create-committee.component';
import { CheckStatusComponent } from './check-status/check-status.component';

@NgModule({
declarations: [
@@ -21,7 +22,8 @@ import { CreateCommitteeComponent } from './create-committee/create-committee.co
MockComponent,
EServicesComponent,
NotificationsComponent,
CreateCommitteeComponent
CreateCommitteeComponent,
CheckStatusComponent
],
imports: [
BrowserModule,


+ 20
- 0
src/app/check-status/check-status.component.html View File

@@ -0,0 +1,20 @@
<header class="tab-header">
<h2>
Application Status
</h2>
</header>


<div class="search-input-container">
<ng-container>
<section class="search-input">
<input type="text" placeholder="Enter the Application Number" [(ngModel)]="applicationId">
<button (click)="checkStatus()"> Check </button>
</section>
<section class="form-message" [ngClass]="{'error' : error.type === 'DANGER', 'warning' : error.type === 'WARNING' }" *ngIf="error">
<h5> {{ error.header }} </h5>
<p> {{ error.message }} </p>
</section>
</ng-container>
</div>

+ 79
- 0
src/app/check-status/check-status.component.scss View File

@@ -0,0 +1,79 @@
.search-input-container {
width: 60%;
margin: 0 auto;
text-align: center;

.search-input {
display: flex;
align-items: center;
justify-content: flex-start;
background-color: white;
border-radius: 4rem;
height: 5.5rem;
border: 1px solid var(--border-grey);
width: 80%;
margin: 4rem auto 3rem;
overflow: hidden;
input {
border: none;
background-color: transparent;
padding: 0 3rem;
font-size: 1.5rem;
color: var(--dark-grey);
letter-spacing: 0.5px;
flex-grow: 1;
&::placeholder {
font-weight: 300;
}
}
button {
height: 100%;
border: none;
background-color: var(--highlight);
padding: 0 4rem;
color: white;
font-size: 1.6rem;
letter-spacing: 0.5px;
border-radius: 4rem;
transition: opacity 0.3s;

&:disabled {
opacity: 0.5;
}
}
}

.form-message {
margin: 6rem auto 2rem;
line-height: 1.6;

&.error {
h5 {
color: var(--error);
}
}

&.warning {
h5 {
color: var(--warning);
}
}

h5 {
font-size: 2rem;
color: var(--success);
filter: brightness(80%);
font-weight: 500;
margin-bottom: 1rem;
}

p {
font-size: 1.4rem;
font-weight: 400;
color: var(--dark-grey);
}
}
}

+ 25
- 0
src/app/check-status/check-status.component.spec.ts View File

@@ -0,0 +1,25 @@
import { ComponentFixture, TestBed } from '@angular/core/testing';

import { CheckStatusComponent } from './check-status.component';

describe('CheckStatusComponent', () => {
let component: CheckStatusComponent;
let fixture: ComponentFixture<CheckStatusComponent>;

beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ CheckStatusComponent ]
})
.compileComponents();
});

beforeEach(() => {
fixture = TestBed.createComponent(CheckStatusComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});

it('should create', () => {
expect(component).toBeTruthy();
});
});

+ 44
- 0
src/app/check-status/check-status.component.ts View File

@@ -0,0 +1,44 @@
import { Component, OnInit } from '@angular/core';

@Component({
selector: 'app-check-status',
templateUrl: './check-status.component.html',
styleUrls: ['./check-status.component.scss']
})
export class CheckStatusComponent implements OnInit {
applicationId: string = '398248899';

error?: {
header: string,
message: string,
type: 'SUCCESS' | 'WARNING' | 'DANGER',
};

constructor() { }

ngOnInit(): void {
}

checkStatus() {
if (this.applicationId === '398248899') {
this.error = {
header: 'Approved',
message: 'Your application has been approved, please view the notification to continue futher in the process',
type: 'SUCCESS'
};
} else if (this.applicationId === '100') {
this.error = {
header: 'Pending',
message: 'You\'ll be notified when there is a change in the status',
type: 'WARNING'
};
} else {
this.error = {
header: 'Rejected',
message: 'Please view the notifications to get more details regarding the rejection',
type: 'DANGER'
};
}
}

}

+ 1
- 2
src/app/tabs/tabs.component.html View File

@@ -5,9 +5,8 @@
<nav>
<a [routerLink]="['/tabs/e-services']"> E-Services </a>
</nav>
<nav>
<a [routerLink]="['/tabs/create-committee']"> Create Committee </a>
<a [routerLink]="['/tabs/check-status']"> Application Status </a>
</nav>

<div class="search-input">


+ 6
- 4
src/app/tabs/tabs.component.scss View File

@@ -19,10 +19,7 @@ $header-height: 10rem;

nav {
margin: 0 2rem;
display: flex;
align-items: center;
justify-content: flex-start;

@media print {
display: none;
}
@@ -31,6 +28,7 @@ $header-height: 10rem;
font-size: 1.6rem;
letter-spacing: 0.5px;
color: var(--dark-grey);
margin-right: 2rem;

&.active {
text-decoration: underline;
@@ -85,6 +83,10 @@ $header-height: 10rem;
background-color: white;
margin-left: 2rem;

@media print {
display: none;
}

&.active {
box-shadow: 0px 0px 10px -3px var(--primary);


+ 1
- 0
src/styles.scss View File

@@ -25,6 +25,7 @@ button, a {
--footer-grey: hsl(0, 0%, 93%);
--error: #d07a7a;
--success: #88b749;
--warning: #ffc409;
}




Loading…
Cancel
Save