Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion ui/config/development.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"api": {
"baseUrl": "http://41.38.83.137:8080/"
"baseUrl": "http://41.65.11.55:8080/"


},
Expand Down
189 changes: 119 additions & 70 deletions ui/src/app/Pages/employee/employee.component.html
Original file line number Diff line number Diff line change
@@ -1,78 +1,127 @@
<div class="candidate-Laytout">
<fieldset>
<fieldset>
<h1 fxLayoutAlign="center center">All Employees</h1>
<div fxLayoutAlign="center center">
<table
mat-table
class="mat-elevation-z8 table"
[dataSource]="allEmployees"
>
<ng-container matColumnDef="id">
<th mat-header-cell *matHeaderCellDef>No.</th>
<td mat-cell *matCellDef="let i = index">{{ i + 1 }}</td>
</ng-container>

<h1 fxLayoutAlign="center center">All Employees
</h1>
<div fxLayoutAlign="center center">
<table mat-table class="mat-elevation-z8 table">
<ng-container matColumnDef="Question">
<th mat-header-cell *matHeaderCellDef> No. </th>
<td mat-cell></td>
</ng-container>

<ng-container matColumnDef="description">
<th mat-header-cell *matHeaderCellDef> Name </th>
<td mat-cell></td>
</ng-container>
<ng-container matColumnDef="name">
<th mat-header-cell *matHeaderCellDef>Name</th>
<td mat-cell *matCellDef="let element">{{ element.name }}</td>
</ng-container>
<ng-container matColumnDef="update">
<th mat-header-cell *matHeaderCellDef></th>
<td
mat-cell
*matCellDef="let element"
class="update-icon"
(click)="fetchData(element)"
>
<mat-icon>edit</mat-icon>
</td>
</ng-container>
<ng-container matColumnDef="delete">
<th mat-header-cell *matHeaderCellDef></th>
<td
mat-cell
*matCellDef="let element"
class="delete-icon"
(click)="deleteEmployee(element)"
>
<mat-icon>person_remove</mat-icon>
</td>
</ng-container>

<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns"></tr>
</table>
</div>
<div
fxLayoutAlign.lt-sm="start start"
(click)="changeVisibility()"
class="show-btn"
>
<button type="submit" mat-raised-button color="primary" fxFlex="50">
<mat-icon>add</mat-icon>
</button>
</div>
</fieldset>
<br />
<br /><br />

<tr mat-header-row *matHeaderRowDef="displayedColumns"></tr>
<tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr>
</table>
</div>
<div fxLayoutAlign.lt-sm="start start" (click)="changeVisibility()" class="show-btn">
<button type="submit" mat-raised-button color="primary" fxFlex="50"><mat-icon>add</mat-icon></button>
</div>
</fieldset>
<div *ngIf="isVisible">
<br />
<br /><br />

<div *ngIf="isVisible;">
<br>
<hr />
<br>
<br>
<form [formGroup]="employeeForm" (ngSubmit)="onSubmit()">
<fieldset>
<legend>Employee Info</legend>
<div class="all-Inpt">
<div fxLayoutAlign="center center">
<mat-form-field appearance="outline" fxFlex.lt-lg="80%" fxFlex="60">
<mat-label>Employee Name</mat-label>
<input formControlName="name" type="text" matInput placeholder="enter your Employee Name">
<mat-error *ngIf="employeeForm.controls['name'].hasError('name') && !employeeForm.controls['name'].hasError('required')">
Please enter a Employee Name
</mat-error>
<mat-error *ngIf="employeeForm.controls['name'].hasError('required')">
Employee Name is <strong>required</strong>
</mat-error>
</mat-form-field>
</div>



<div fxLayoutAlign="center center">
<mat-form-field appearance="outline" fxFlex.lt-lg="80%" fxFlex="60">
<mat-label>Choose Company</mat-label>
<mat-select #mode value="side" formControlName="companyId">
<mat-option value="side">Side</mat-option>
<mat-option value="over">Over</mat-option>
<mat-option value="push">Push</mat-option>
</mat-select>
</mat-form-field>

</div>



<div fxLayoutAlign="center center">
<button type="submit" class="addbtn" mat-raised-button color="primary" fxFlex.lt-lg="80%" fxFlex="40" class="addbtn">Add Employee</button>
</div>
</div>

</fieldset>
<hr />
<br />
<br />
<!-- (ngSubmit)="onSubmit()" -->
<form [formGroup]="employeeForm" >
<fieldset>
<legend>Employee Info</legend>
<div class="all-Inpt">
<div fxLayoutAlign="center center">
<mat-form-field appearance="outline" fxFlex.lt-lg="80%" fxFlex="60"(click)="appearRest()" >
<mat-label>Employee Name</mat-label>
<input
formControlName="name"
type="text"
matInput
placeholder="enter your Employee Name"
/>
<mat-error
*ngIf="
employeeForm.controls['name'].hasError('name') &&
!employeeForm.controls['name'].hasError('required')
"
>
Please enter a Employee Name
</mat-error>
<mat-error
*ngIf="employeeForm.controls['name'].hasError('required')"
>
Employee Name is <strong>required</strong>
</mat-error>
</mat-form-field>
</div>

</form>
</div>
<div fxLayoutAlign="center center">
<mat-form-field appearance="outline" fxFlex.lt-lg="80%" fxFlex="60">
<mat-label>Choose Company</mat-label>
<mat-select #mode value="side" formControlName="company">
<mat-option [value]="''"></mat-option>
<mat-option [value]="companyData" *ngFor="let companyData of company">{{companyData.name}}</mat-option>

</mat-select>
</mat-form-field>
</div>

<div fxLayoutAlign="center center">
<button
type="button"
(click)="SaveData()"
[disabled]="!employeeForm.valid"
class="addbtn"
mat-raised-button
color="primary"
fxFlex.lt-lg="80%"
fxFlex="40">{{employeeForm.controls['id'].value?'update Employee':'add Employee'}}
</button>
<div *ngIf="isRestButtonAppear;">
<button (click)='resetTheForm()' type="button" mat-raised-button color="primary" class="rest-Icon"
fxFlex.lt-lg="2%" fxFlex="2" [disabled]="submit">
<mat-icon>restart_alt</mat-icon>
</button>
</div>
</div>
</div>
</fieldset>
</form>
</div>
</div>
107 changes: 94 additions & 13 deletions ui/src/app/Pages/employee/employee.component.ts
Original file line number Diff line number Diff line change
@@ -1,29 +1,110 @@
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { MessageService } from 'src/app/core/services/config/message.service';
import { Company } from 'src/app/domain/company/models/company';
import { EmployeeRepository } from 'src/app/domain/employee/employee.repository';
import { Emplyee } from 'src/app/domain/employee/models/emplyee';
import { CompanyRepository } from 'src/app/domain/company/company.repository';

@Component({
selector: 'app-employee',
templateUrl: './employee.component.html'
templateUrl: './employee.component.html',
})
export class EmployeeComponent implements OnInit {
employeeForm!:FormGroup;
displayedColumns: string[] = ['Question', 'description'];
isVisible:boolean = false;
constructor(private formBuilder:FormBuilder) { }
employeeForm!: FormGroup;
displayedColumns: string[] = ['id','name','delete','update'];
isVisible: boolean = false;
page: number = 0;
size: number = 10;
totalItems: number = 0;
allEmployees: Emplyee[] = [];
company:Company[]=[];
isRestButtonAppear: boolean;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

delete un need property



constructor(
private formBuilder: FormBuilder,
private employeeRepository: EmployeeRepository,
private message: MessageService ,
private companyRepositiory:CompanyRepository ) {}
ngOnInit(): void {
this.employForm();
this.getAllEmplyees();
this.getCompany();
}
employForm() {
this.employeeForm = this.formBuilder.group({
id: [''],
name: ['', [Validators.required]],
company: ['', [Validators.required]],
});
}
SaveData(){
if(this.employeeForm.valid){
this.employeeForm.controls['id'].value? this.updateEmployee():this.addEmployee();
this.employeeForm.reset();
}
}
employForm(){
this.employeeForm=this.formBuilder.group({
id:[''],
name:['', [Validators.required]],
companyId:['', [Validators.required]]
addEmployee(){

this.employeeRepository.add(this.employeeForm.value).subscribe(()=>{
this.getAllEmplyees();this.changeVisibility();

})
}
onSubmit(){
getAllEmplyees(): void {
this.employeeRepository
.getList({
page: this.page,
size: this.size,
})
.subscribe((result) => {
this.allEmployees = result.data;
this.totalItems = result.pagination.itemCount;
});
}
getCompany(): void {
this.companyRepositiory
.getList()
.subscribe((result) => {
this.company = result.data;

console.log(this.company)
});
}
fetchData(employeeData:Emplyee):void{
this.employeeForm.reset();
this.isVisible=true;

this.employeeForm.patchValue({
id:employeeData.id,
name:employeeData.name

})

}
changeVisibility(){
this.isVisible = !this.isVisible
updateEmployee(){
this.employeeRepository.update(this.employeeForm.value).subscribe(()=>{
this.getAllEmplyees();
this.changeVisibility();
})
}
deleteEmployee(employeeData:Emplyee){
this.message.deleteConfirmation('','Are you sure want to delete this employee ? ').subscribe(res =>{
if(res.success)
this.employeeRepository.delete(employeeData.id).subscribe(()=>{
this.getAllEmplyees();
})
})
}
changeVisibility() {
this.isVisible = !this.isVisible;
}
appearRest() {
this.isRestButtonAppear = true;
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

are you need this function?

}
resetTheForm(){
this.employeeForm.reset();
}

}
11 changes: 8 additions & 3 deletions ui/src/app/core/services/config/message.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@ import { ConfirmBoxEvokeService } from '@costlydeveloper/ngx-awesome-popup';
import { Observable } from 'rxjs';

@Injectable({
providedIn: 'root'
providedIn: 'root',
})
export class MessageService {
errorMessage = (errorText: string): void => {
this.toast.error(errorText)
this.toast.error(errorText);
};

warnMessage = (errorText: string): void => {
Expand All @@ -21,7 +21,12 @@ export class MessageService {
};

deleteConfirmation = (header: string, body: string): Observable<any> => {
return this.confirmBoxEvokeService.warning(header, body, 'Confirm', 'Cancel');
return this.confirmBoxEvokeService.warning(
header,
body,
'Confirm',
'Cancel'
);
};

constructor(
Expand Down
2 changes: 2 additions & 0 deletions ui/src/app/domain/company/models/company.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@ export interface Company{
id:number;
name:string;
description:string;


}
15 changes: 15 additions & 0 deletions ui/src/app/domain/employee/employee.repository.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { HttpClient } from "@angular/common/http";
import { Injectable } from "@angular/core";
import { ResourceService } from "src/app/core/services/config/resource.service";
import { Emplyee } from "./models/emplyee";
@Injectable({
providedIn: 'root'
})

export class EmployeeRepository extends ResourceService<Emplyee>{
constructor(httpClient: HttpClient) {
super(httpClient);
}
getResourceUrl(): string {
return 'employee';
}}
9 changes: 9 additions & 0 deletions ui/src/app/domain/employee/models/emplyee.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { Company } from "../../company/models/company";

export interface Emplyee{
id:number;
name:string;
company:Company;

}

Loading