Skip to content

Commit 85a148d

Browse files
pavankjaddaPavan Jadda
authored andcommitted
Employee View component added
1 parent 2e8169b commit 85a148d

File tree

9 files changed

+187
-4
lines changed

9 files changed

+187
-4
lines changed

src/main/webapp/spring-data-ui/src/app/app-routing.module.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {NgModule} from "@angular/core";
22
import {RouterModule, Routes} from "@angular/router";
3+
import {EmployeeViewComponent} from "src/app/employee-view/employee-view.component";
34
import {EmployeeListComponent} from "./employee-list/employee-list.component";
45
import {EmployeeProjectComponent} from "./employee-project/employee-project.component";
56
import {LogoutComponent} from "./logout/logout.component";
@@ -9,6 +10,10 @@ const routes: Routes = [
910
path: 'employee/list',
1011
component: EmployeeListComponent
1112
},
13+
{
14+
path: 'employee/:id',
15+
component: EmployeeViewComponent
16+
},
1217
{
1318
path: 'employee_project/list',
1419
component: EmployeeProjectComponent

src/main/webapp/spring-data-ui/src/app/app.module.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import {HTTP_INTERCEPTORS, HttpClientModule} from "@angular/common/http";
22
import {APP_INITIALIZER, NgModule} from "@angular/core";
3+
import {ReactiveFormsModule} from "@angular/forms";
34
import {BrowserModule} from "@angular/platform-browser";
45
import {NgxSpinnerModule} from "ngx-spinner";
56

67
import {AppRoutingModule} from "./app-routing.module";
78
import {AppComponent} from "./app.component";
89
import {EmployeeListComponent} from "./employee-list/employee-list.component";
910
import {EmployeeProjectComponent} from "./employee-project/employee-project.component";
11+
import {EmployeeViewComponent} from "./employee-view/employee-view.component";
1012
import {TokenInterceptor} from "./interceptors/token-interceptor";
1113
import {KeycloakService} from "./keycloak/keycloak.service";
1214
import {LogoutComponent} from "./logout/logout.component";
@@ -19,10 +21,12 @@ export function kcFactory(keycloakService: KeycloakService) {
1921
AppComponent,
2022
EmployeeListComponent,
2123
LogoutComponent,
22-
EmployeeProjectComponent
24+
EmployeeProjectComponent,
25+
EmployeeViewComponent
2326
],
2427
imports: [
2528
BrowserModule,
29+
ReactiveFormsModule,
2630
AppRoutingModule,
2731
HttpClientModule,
2832
NgxSpinnerModule

src/main/webapp/spring-data-ui/src/app/employee-list/employee-list.component.html

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,23 @@
1414
<th scope="col">Phone</th>
1515
<th scope="col">Salary</th>
1616
<th scope="col">Location</th>
17-
<th scope="col">Action</th>
17+
<th scope="col">Actions</th>
1818
</tr>
1919
</thead>
2020
<tbody *ngFor="let employee of employees">
2121
<tr>
22-
<td>{{employee.id}}</td>
22+
<td> <a routerLink="/employee/{{employee.id}}">{{employee.id}}</a></td>
2323
<td>{{employee.employeeId}}</td>
2424
<td>{{employee.firstName}}</td>
2525
<td>{{employee.lastName}}</td>
2626
<td>{{employee.email}}</td>
2727
<td>{{employee.phone}}</td>
2828
<td>${{employee.salary}}</td>
2929
<td>{{employee.location}}</td>
30-
<td><button (click)="deleteEmployee(employee.id)" class="btn btn-danger">Delete</button></td>
30+
<td>
31+
<button (click)="editEmployee(employee.id)" class="btn btn-primary" style="margin-right: 10px">Edit</button>
32+
<button (click)="deleteEmployee(employee.id)" class="btn btn-danger">Delete</button>
33+
</td>
3134
</tr>
3235
</tbody>
3336
</table>

src/main/webapp/spring-data-ui/src/app/employee-list/employee-list.component.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,4 +101,9 @@ export class EmployeeListComponent implements OnInit
101101
}
102102
);
103103
}
104+
105+
editEmployee(id: number)
106+
{
107+
108+
}
104109
}

src/main/webapp/spring-data-ui/src/app/employee-list/employee.service.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ export class EmployeeService {
1414
return this.httpClient.get<Employee[]>(url);
1515
}
1616

17+
getEmployeeById(url:string)
18+
{
19+
return this.httpClient.get<Employee>(url);
20+
}
1721
updateEmployee(url: string)
1822
{
1923
return this.httpClient.get<Employee[]>(url);

src/main/webapp/spring-data-ui/src/app/employee-view/employee-view.component.css

Whitespace-only changes.
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<ngx-spinner bdColor="rgba(51,51,51,0.8)" color="#fff" size="medium" type="ball-scale-multiple">
2+
<p style="font-size: 20px; color: white">Loading...</p>
3+
</ngx-spinner>
4+
5+
<br/> <br/>
6+
<div class="container container-fluid">
7+
<div>
8+
<form [formGroup]="employeeForm">
9+
<div class="form-group row">
10+
<label class="col-sm-2 col-form-label" for="id">Id</label>
11+
<div class="col-sm-10">
12+
<input class="form-control-plaintext" formControlName="id" id="id" readonly type="text">
13+
</div>
14+
</div>
15+
<div class="form-group row">
16+
<label class="col-sm-2 col-form-label" for="employeeId">employeeId</label>
17+
<div class="col-sm-10">
18+
<input class="form-control-plaintext" formControlName="employeeId" id="employeeId" readonly type="text">
19+
</div>
20+
</div>
21+
22+
<div class="form-group row">
23+
<label class="col-sm-2 col-form-label" for="firstName">firstName</label>
24+
<div class="col-sm-10">
25+
<input class="form-control-plaintext" formControlName="firstName" id="firstName" readonly type="text">
26+
</div>
27+
</div>
28+
29+
<div class="form-group row">
30+
<label class="col-sm-2 col-form-label" for="lastName">lastName</label>
31+
<div class="col-sm-10">
32+
<input class="form-control-plaintext" formControlName="lastName" id="lastName" readonly type="text">
33+
</div>
34+
</div>
35+
36+
<div class="form-group row">
37+
<label class="col-sm-2 col-form-label" for="email">Email</label>
38+
<div class="col-sm-10">
39+
<input class="form-control-plaintext" id="email" formControlName="email" readonly type="text">
40+
</div>
41+
</div>
42+
43+
<div class="form-group row">
44+
<label class="col-sm-2 col-form-label" for="phone">phone</label>
45+
<div class="col-sm-10">
46+
<input class="form-control-plaintext" id="phone" formControlName="phone" readonly type="text">
47+
</div>
48+
</div>
49+
50+
<div class="form-group row">
51+
<label class="col-sm-2 col-form-label" for="salary">salary</label>
52+
<div class="col-sm-10">
53+
<input class="form-control-plaintext" formControlName="salary" id="salary" readonly type="text">
54+
</div>
55+
</div>
56+
57+
<div class="form-group row">
58+
<label class="col-sm-2 col-form-label" for="location">location</label>
59+
<div class="col-sm-10">
60+
<input class="form-control-plaintext" formControlName="location" id="location" readonly type="text">
61+
</div>
62+
</div>
63+
64+
</form>
65+
</div>
66+
67+
<div class="container container-fluid">
68+
<h5>
69+
<button [routerLink]="['/']" class="btn btn-primary">Back</button>
70+
</h5>
71+
</div>
72+
</div>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import {async, ComponentFixture, TestBed} from "@angular/core/testing";
2+
3+
import {EmployeeViewComponent} from "./employee-view.component";
4+
5+
describe('EmployeeViewComponent', () => {
6+
let component: EmployeeViewComponent;
7+
let fixture: ComponentFixture<EmployeeViewComponent>;
8+
9+
beforeEach(async(() => {
10+
TestBed.configureTestingModule({
11+
declarations: [ EmployeeViewComponent ]
12+
})
13+
.compileComponents();
14+
}));
15+
16+
beforeEach(() => {
17+
fixture = TestBed.createComponent(EmployeeViewComponent);
18+
component = fixture.componentInstance;
19+
fixture.detectChanges();
20+
});
21+
22+
it('should create', () => {
23+
expect(component).toBeTruthy();
24+
});
25+
});
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import {Component, OnInit} from "@angular/core";
2+
import {FormControl, FormGroup} from "@angular/forms";
3+
import {ActivatedRoute} from "@angular/router";
4+
import {NgxSpinnerService} from "ngx-spinner";
5+
import {Employee} from "src/app/employee-list/employee";
6+
import {EmployeeService} from "src/app/employee-list/employee.service";
7+
8+
@Component({
9+
selector: 'app-employee-view',
10+
templateUrl: './employee-view.component.html',
11+
styleUrls: ['./employee-view.component.css']
12+
})
13+
export class EmployeeViewComponent implements OnInit
14+
{
15+
employee: Employee;
16+
employeeForm = new FormGroup({
17+
id: new FormControl({value: '', disabled: true}),
18+
employeeId: new FormControl(''),
19+
firstName: new FormControl(''),
20+
lastName: new FormControl(''),
21+
email: new FormControl(''),
22+
phone: new FormControl(''),
23+
salary: new FormControl(''),
24+
location: new FormControl(''),
25+
});
26+
27+
constructor(private employeeService:EmployeeService,
28+
private activatedRoute:ActivatedRoute,
29+
private ngxSpinnerService:NgxSpinnerService)
30+
{ }
31+
32+
ngOnInit()
33+
{
34+
this.getEmployeeDetails();
35+
}
36+
37+
38+
private getEmployeeDetails()
39+
{
40+
let id=this.activatedRoute.snapshot.params.id;
41+
this.ngxSpinnerService.show();
42+
this.employeeService.getEmployeeById('http://localhost:8081/api/v1/employee/find/'+id).subscribe(
43+
data=>
44+
{
45+
this.employee=data;
46+
this.employeeForm.patchValue(
47+
{
48+
id: data.id,
49+
employeeId: data.employeeId,
50+
firstName: data.firstName,
51+
lastName: data.lastName,
52+
email: data.email,
53+
phone: data.phone,
54+
salary: data.salary,
55+
location: data.location,
56+
});
57+
this.ngxSpinnerService.hide();
58+
},
59+
error1 =>
60+
{
61+
this.ngxSpinnerService.hide();
62+
}
63+
);
64+
}
65+
}

0 commit comments

Comments
 (0)