85 lines
3.1 KiB
HTML
85 lines
3.1 KiB
HTML
<h2 class="row-container wrapped">
|
|
<span>Employee</span>
|
|
<mat-icon (click)="item().isStarred = !item().isStarred" class="pointer" [class.gold]="item().isStarred">
|
|
{{ item().isStarred ? 'star' : 'star_border' }}
|
|
</mat-icon>
|
|
</h2>
|
|
|
|
@if (itemResource.isLoading()) {
|
|
<app-skeleton-loader type="card" [count]="1" />
|
|
<app-skeleton-loader type="line" [count]="10" />
|
|
} @else if (itemResource.error()) {
|
|
<app-error-state [message]="'Failed to load data.'" (retryAction)="itemResource.reload()" />
|
|
} @else {
|
|
<form class="flex-col wrapped" [formRoot]="form">
|
|
<div class="row-container">
|
|
<mat-form-field class="flex-auto">
|
|
<mat-label>Code</mat-label>
|
|
<input matInput [formField]="form.code" />
|
|
</mat-form-field>
|
|
</div>
|
|
<div class="row-container">
|
|
<mat-form-field class="flex-auto">
|
|
<mat-label>Name</mat-label>
|
|
<input matInput [formField]="form.name" />
|
|
</mat-form-field>
|
|
</div>
|
|
<div class="row-container">
|
|
<mat-form-field class="flex-auto">
|
|
<mat-label>Designation</mat-label>
|
|
<input matInput [formField]="form.designation" />
|
|
</mat-form-field>
|
|
</div>
|
|
<div class="row-container">
|
|
<mat-form-field class="flex-auto">
|
|
<mat-label>Salary</mat-label>
|
|
<input type="number" matInput [formField]="form.salary" />
|
|
</mat-form-field>
|
|
</div>
|
|
<div class="row-container">
|
|
<mat-form-field class="flex-auto">
|
|
<mat-label>Points</mat-label>
|
|
<input type="number" matInput [formField]="form.points" />
|
|
</mat-form-field>
|
|
</div>
|
|
<div class="row-container">
|
|
<mat-checkbox [formField]="form.isActive">Is Active?</mat-checkbox>
|
|
</div>
|
|
<div class="row-container">
|
|
<mat-form-field class="flex-auto">
|
|
<mat-label>Cost Centre</mat-label>
|
|
<mat-select [formField]="form.costCentre">
|
|
@for (cs of costCentres(); track cs) {
|
|
<mat-option [value]="cs.id">
|
|
{{ cs.name }}
|
|
</mat-option>
|
|
}
|
|
</mat-select>
|
|
</mat-form-field>
|
|
</div>
|
|
<div class="row-container">
|
|
<mat-form-field class="flex-auto">
|
|
<mat-label>Joining Date</mat-label>
|
|
<input matInput [matDatepicker]="joiningDate" [formField]="form.joiningDate" autocomplete="off" />
|
|
<mat-datepicker-toggle matSuffix [for]="joiningDate"></mat-datepicker-toggle>
|
|
<mat-datepicker #joiningDate></mat-datepicker>
|
|
</mat-form-field>
|
|
@if (!form.isActive().value()) {
|
|
<mat-form-field class="flex-auto">
|
|
<mat-label>Leaving Date</mat-label>
|
|
<input matInput [matDatepicker]="leavingDate" [formField]="form.leavingDate" autocomplete="off" />
|
|
<mat-datepicker-toggle matSuffix [for]="leavingDate"></mat-datepicker-toggle>
|
|
<mat-datepicker #leavingDate></mat-datepicker>
|
|
</mat-form-field>
|
|
}
|
|
</div>
|
|
</form>
|
|
|
|
<div class="row-container">
|
|
<button mat-raised-button color="primary" [disabled]="form().invalid()" (click)="save()">Save</button>
|
|
@if (!!item().id) {
|
|
<button mat-raised-button color="warn" (click)="confirmDelete()">Delete</button>
|
|
}
|
|
</div>
|
|
}
|