schedule-form-edit.component.html
unknown
html
4 years ago
22 kB
18
Indexable
<form [formGroup]="schedule" class="row">
<div class="col-md-12">
<div class="form-group col-md-6">
<label class="label" for="input-academic-year">
{{ 'other.menu_extracurricular.master_extracurricular.add.academic_year' | translate }}<span class="text-danger">*</span>
</label>
<div>
<input id="input-academic-year"
nbInput
fullWidth
type="text"
[placeholder]="('other.menu_extracurricular.master_extracurricular.add.select_academic_year' | translate)"
formControlName="academic_year_label">
</div>
</div>
<div class="form-group col-md-6">
<label class="label" for="input-school-location-id">
{{ 'other.menu_extracurricular.master_extracurricular.add.school_location' | translate }}<span class="text-danger">*</span>
</label>
<div>
<input id="input-school-location-id"
nbInput
fullWidth
type="text"
[placeholder]="('other.menu_extracurricular.master_extracurricular.add.select_school_location' | translate)"
formControlName="school_location_label">
</div>
</div>
<div class="form-group col-md-6">
<label class="label" for="input-extracurricular-category">
{{ 'other.menu_extracurricular.master_extracurricular.add.extracurricular_category' | translate }}<span class="text-danger">*</span>
</label>
<skr-select-excul-category
id="input-extracurricular-category"
[placeholder]="('other.menu_extracurricular.master_extracurricular.add.choose_extracurricular_category' | translate)"
[exculId]="schedule.get('excul_category_id').value"
(exculChange)="onChangeExculCategory($event)">
</skr-select-excul-category>
<ng-container
*ngIf="schedule.controls['excul_category_id'].touched && schedule.controls['excul_category_id'].invalid">
<small *ngIf="schedule.controls['excul_category_id'].errors['required']" class="form-text text-danger">
{{ 'other.menu_extracurricular.master_extracurricular.add.required_extracurricular_category' | translate }}
</small>
</ng-container>
</div>
<div class="form-group col-md-6">
<label class="label" for="input-extracurricular-name">
{{ 'other.menu_extracurricular.master_extracurricular.add.extracurricular_name' | translate }}<span class="text-danger">*</span>
</label>
<input [placeholder]="('other.menu_extracurricular.master_extracurricular.add.input_extracurricular_name' | translate)" formControlName="extracurricular_name"
fullWidth
id="input-extracurricular-name" nbInput
type="text">
<ng-container
*ngIf="schedule.controls['extracurricular_name'].touched && schedule.controls['extracurricular_name'].invalid">
<small *ngIf="schedule.controls['extracurricular_name'].errors['required']" class="form-text text-danger">
{{ 'other.menu_extracurricular.master_extracurricular.add.required_extracurricular_name' | translate }}
</small>
</ng-container>
</div>
<div class="form-group col-md-6">
<label class="label" for="input-extracurricular-description">
{{ 'other.menu_extracurricular.master_extracurricular.add.extracurricular_description' | translate }}<span class="text-danger">*</span>
</label>
<textarea [placeholder]="('other.menu_extracurricular.master_extracurricular.add.input_extracurricular_description' | translate)" formControlName="extracurricular_description"
fullWidth
id="input-extracurricular-description"
nbInput
type="text"></textarea>
<ng-container
*ngIf="schedule.controls['extracurricular_description'].touched && schedule.controls['extracurricular_description'].invalid">
<small *ngIf="schedule.controls['extracurricular_description'].errors['required']"
class="form-text text-danger">
{{ 'other.menu_extracurricular.master_extracurricular.add.required_extracurricular_description' | translate }}
</small>
</ng-container>
</div>
<div class="form-group col-md-6">
<label class="label">
{{ 'other.menu_extracurricular.master_extracurricular.add.extracurricular_schedule' | translate }}<span class="text-danger">*</span>
</label>
<div class="row">
<div class="col-md-3" *ngFor="let day of schoolDays; let index = index">
<nb-checkbox
[checked]="day.checked"
(checkedChange)="onCheckSchoolDay($event, index)">
{{day.schoolday_name}}
</nb-checkbox>
</div>
</div>
</div>
</div>
<div class="col-md-12">
<table class="table table-bordered table-sm ml-3"
id="excul-schedule-form">
<thead class="text-center">
<tr>
<th>
{{ 'other.menu_extracurricular.master_extracurricular.add.day' | translate }}
</th>
<th>
{{ 'other.menu_extracurricular.master_extracurricular.add.time_start' | translate }}<span class="text-danger">*</span>
</th>
<th>
{{ 'other.menu_extracurricular.master_extracurricular.add.time_end' | translate }}<span class="text-danger">*</span>
</th>
<th>
{{ 'other.menu_extracurricular.master_extracurricular.add.venue' | translate }}
</th>
<th>
{{ 'other.menu_extracurricular.master_extracurricular.add.equipment' | translate }}
</th>
</tr>
</thead>
<tbody>
<ng-container formArrayName="schedules">
<ng-container *ngFor="let schedule of onGetExculSchedules().controls; let scheduleIdx = index">
<ng-container [formGroupName]="scheduleIdx">
<tr>
<td class="align-middle text-center">
<p class="mt-2">{{onGetExculSchedules().at(scheduleIdx).get('schoolday_name').value}}</p>
</td>
<td class="align-middle">
<input [nbTimepicker]="startTimepicker"
[value]="onGetExculSchedules().at(scheduleIdx).get('start_time').value"
fullWidth
nbInput
autocomplete="off"
(keydown)="false"
type="text">
<nb-timepicker
(onSelectTime)="onChangeStartTime($event, scheduleIdx)"
#startTimepicker>
</nb-timepicker>
<ng-container *ngIf="onGetExculSchedules().at(scheduleIdx).get('start_time').touched
&& onGetExculSchedules().at(scheduleIdx).get('start_time').invalid">
<small *ngIf="onGetExculSchedules().at(scheduleIdx).get('start_time').errors['required']"
class="form-text text-danger">
{{ 'other.menu_extracurricular.master_extracurricular.add.required_time_start' | translate }}
</small>
</ng-container>
<small *ngIf="!onGetExculSchedules().at(scheduleIdx).get('is_time_valid').value"
class="form-text text-danger">
{{ 'Start Time cannot be less than End Time!' | translate }}
</small>
</td>
<td class="align-middle">
<input [nbTimepicker]="endTimepicker"
[value]="onGetExculSchedules().at(scheduleIdx).get('end_time').value"
fullWidth
nbInput
autocomplete="off"
(keydown)="false"
type="text">
<nb-timepicker
(onSelectTime)="onChangeEndTime($event, scheduleIdx)"
#endTimepicker>
</nb-timepicker>
<ng-container *ngIf="onGetExculSchedules().at(scheduleIdx).get('end_time').touched
&& onGetExculSchedules().at(scheduleIdx).get('end_time').invalid">
<small *ngIf="onGetExculSchedules().at(scheduleIdx).get('end_time').errors['required']"
class="form-text text-danger">
{{ 'other.menu_extracurricular.master_extracurricular.add.required_time_end' | translate }}
</small>
</ng-container>
<small *ngIf="!onGetExculSchedules().at(scheduleIdx).value.is_time_valid"
class="form-text text-danger">
{{ 'End Time cannot be greater than Start Time!' | translate }}
</small>
</td>
<td class="align-middle">
<input [placeholder]="('other.menu_extracurricular.master_extracurricular.add.input_venue' | translate)"
formControlName="venue"
fullWidth
nbInput
type="text">
</td>
<td class="align-middle">
<textarea [placeholder]="('other.menu_extracurricular.master_extracurricular.add.input_equipment' | translate)"
formControlName="equipment"
fullWidth
nbInput
type="text">
</textarea>
</td>
</tr>
</ng-container>
</ng-container>
</ng-container>
</tbody>
</table>
</div>
<div class="col-md-12">
<div class="row">
<div class="col-md-6 d-flex justify-content-between">
<div class="form-group col-md-6 mr-3">
<label class="label" for="input-start-date">
{{ 'other.menu_extracurricular.master_extracurricular.add.start_date' | translate }}<span class="text-danger">*</span>
</label>
<input [nbDatepicker]="datepickerStart"
[placeholder]="('other.menu_extracurricular.master_extracurricular.add.input_start_date' | translate)"
[value]="startDate"
fullWidth
id="input-start-date"
nbInput
autocomplete="off"
(keydown)="false"
type="text">
<nb-datepicker
(dateChange)="sessionCount(); onValidateDate('start', $event);"
format="MMM dd, yyyy"
#datepickerStart>
</nb-datepicker>
<ng-container *ngIf="schedule.controls['start_date'].touched && schedule.controls['start_date'].invalid">
<small *ngIf="schedule.controls['start_date'].errors['required']" class="form-text text-danger">
{{ 'other.menu_extracurricular.master_extracurricular.add.required_start_date' | translate }}
</small>
</ng-container>
<ng-container *ngIf="schedule.controls['end_date'].value && schedule.controls['start_date'].value">
<small *ngIf="!validation.date" class="form-text text-danger">
{{ 'Start date cannot be less than academic start date!' | translate }}
</small>
</ng-container>
</div>
<div class="form-group col-md-6">
<label class="label" for="input-end-date">
{{ 'other.menu_extracurricular.master_extracurricular.add.end_date' | translate }}<span class="text-danger">*</span>
</label>
<input [nbDatepicker]="datepickerEnd"
[placeholder]="('other.menu_extracurricular.master_extracurricular.add.input_end_date' | translate)"
[value]="endDate"
fullWidth
autocomplete="off"
(keydown)="false"
id="input-end-date"
nbInput
type="text">
<nb-datepicker
(dateChange)="sessionCount(); onValidateDate('end', $event);"
format="MMM dd, yyyy"
#datepickerEnd>
</nb-datepicker>
<ng-container *ngIf="schedule.controls['end_date'].touched && schedule.controls['end_date'].invalid">
<small *ngIf="schedule.controls['end_date'].errors['required']" class="form-text text-danger">
{{ 'other.menu_extracurricular.master_extracurricular.add.required_end_date' | translate }}
</small>
</ng-container>
<ng-container *ngIf="schedule.controls['end_date'].value && schedule.controls['start_date'].value">
<small *ngIf="!validation.date" class="form-text text-danger">
{{ 'End date cannot be less than academic start date!' | translate }}
</small>
</ng-container>
</div>
</div>
</div>
<div class="form-group col-md-6">
<label class="label" for="input-session">
{{ 'other.menu_extracurricular.master_extracurricular.add.sessions' | translate }}
</label>
<div [nbSpinner]="loading.sessions">
<input formControlName="sessions_label" fullWidth
id="input-session"
nbInput
type="number">
</div>
</div>
<div class="form-group col-md-6">
<label class="label" for="input-maximum-registration-date">
{{ 'other.menu_extracurricular.master_extracurricular.add.maximum_registration_date' | translate }}<span class="text-danger">*</span>
</label>
<div>
<input [nbDatepicker]="datepickerMaxRegistration"
[placeholder]="('other.menu_extracurricular.master_extracurricular.add.input_maximum_registration_date' | translate)"
[value]="maxRegistDate"
fullWidth id="input-maximum-registration-date"
nbInput
autocomplete="off"
(keydown)="false"
type="text">
<nb-datepicker
(dateChange)="onValidateDate('max', $event);"
format="MMM DD, YYYY"
#datepickerMaxRegistration>
</nb-datepicker>
<ng-container
*ngIf="schedule.controls['max_registration_date'].touched && schedule.controls['max_registration_date'].invalid">
<small *ngIf="schedule.controls['max_registration_date'].errors['required']" class="form-text text-danger">
{{ 'other.menu_extracurricular.master_extracurricular.add.required_maximum_registration_date' | translate }}
</small>
</ng-container>
<ng-container *ngIf="schedule.controls['end_date'].value && schedule.controls['start_date'].value && schedule.controls['max_registration_date'].value">
<small *ngIf="!validation.date" class="form-text text-danger">
{{ 'Maximum registration must be between Start and End Date!' | translate }}
</small>
</ng-container>
</div>
</div>
</div>
<div class="col-md-12 mb-3">
<div class="col-md-6">
<nb-checkbox (checkedChange)="checkSupervisor($event)"
[checked]="supervisor"
[disabled]="!this.schedule.controls['school_location_id'].value">
{{ 'other.menu_extracurricular.master_extracurricular.add.supervisor' | translate }}
</nb-checkbox>
</div>
<div *ngIf="supervisor" class="ml-3 mt-3">
<nb-form-field>
<input [formControl]="searchSupervisor" [placeholder]="('other.menu_extracurricular.master_extracurricular.add.search_supervisor' | translate)" fieldSize="medium"
nbInput
type="text">
<button ghost nbButton nbSuffix>
<nb-icon icon="search-outline" pack="eva">
</nb-icon>
</button>
</nb-form-field>
<ngx-datatable
#tableExtracurricularSupervisorList
[count]="supervisors.length"
[footerHeight]="40"
[headerHeight]="40"
[loadingIndicator]="loading.supervisors"
[rowHeight]="40"
[rows]="supervisors"
[scrollbarV]="true"
class="material expandable"
columnMode="force">
<ngx-datatable-column [flexGrow]="1"
[width]="50"
canAutoResize="false"
cellClass="text-center"
name=""
prop="staff_id"
[sortable]="false">
<ng-template let-index="rowIndex" ngx-datatable-cell-template>
<nb-checkbox [checked]="supervisors[index].checked"
(checkedChange)="onSelectSupervisor($event, index)">
</nb-checkbox>
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column
[flexGrow]="1"
[name]="('other.menu_extracurricular.master_extracurricular.add.personnel_id' | translate )" canAutoResize="true" prop="personnel_id" sortable="false">
<ng-template let-value="value" ngx-datatable-cell-template>
{{ value }}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column
[flexGrow]="1"
[name]="('other.menu_extracurricular.master_extracurricular.add.personnel_school_name' | translate )" canAutoResize="true" prop="staff_name" sortable="false">
<ng-template let-value="value" ngx-datatable-cell-template>
{{ value }}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column [flexGrow]="1"
[name]="('other.menu_extracurricular.master_extracurricular.add.email' | translate )" canAutoResize="true" prop="email" sortable="false">
<ng-template let-value="value" ngx-datatable-cell-template>
{{ value }}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column [flexGrow]="1"
[name]="('other.menu_extracurricular.master_extracurricular.add.position' | translate)" canAutoResize="true" prop="position" sortable="true">
<ng-template let-value="value" ngx-datatable-cell-template>
{{ value }}
</ng-template>
</ngx-datatable-column>
</ngx-datatable>
</div>
</div>
<div class="col-md-12 mb-3">
<div class="col-md-6">
<nb-checkbox (checkedChange)="checkCoach($event)"
[checked]="coach"
[disabled]="!this.schedule.controls['school_location_id'].value">
{{ 'other.menu_extracurricular.master_extracurricular.add.coach' | translate }}
</nb-checkbox>
</div>
<div *ngIf="coach" class="ml-3">
<ngx-datatable
#tableExtracurricularCoachList
[columnMode]="'force'"
[count]="coaches.length"
[footerHeight]="40"
[headerHeight]="40"
[loadingIndicator]="loading.coaches"
[rowHeight]="40"
[rows]="coaches"
[scrollbarV]="true"
class="material expandable">
<ngx-datatable-column [flexGrow]="1" [headerCheckboxable]="true" [width]="50" canAutoResize="false" class="align-middle"
name="" prop="coach_id" [sortable]="false">
<ng-template let-index="rowIndex" ngx-datatable-cell-template>
<nb-checkbox [checked]="coaches[index].checked"
(checkedChange)="onSelectCoach($event, index)">
</nb-checkbox>
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column
[flexGrow]="1"
[name]="('other.menu_extracurricular.master_extracurricular.add.coach_id_number' | translate)" canAutoResize="true" prop="coach_id" sortable="false">
<ng-template let-value="value" ngx-datatable-cell-template>
{{ value }}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column [flexGrow]="1"
[name]="('other.menu_extracurricular.master_extracurricular.add.name' | translate)" canAutoResize="true" prop="name" sortable="false">
<ng-template let-value="value" ngx-datatable-cell-template>
{{ value }}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column [flexGrow]="1"
[name]="('other.menu_extracurricular.master_extracurricular.add.position' | translate )" canAutoResize="true" prop="position" sortable="false">
<ng-template let-value="value" ngx-datatable-cell-template>
{{ value }}
</ng-template>
</ngx-datatable-column>
<ngx-datatable-column [flexGrow]="1"
[name]="('other.menu_extracurricular.master_extracurricular.add.coach_fee' | translate)" canAutoResize="true" prop="coach_fee" sortable="true">
<ng-template let-value="value" ngx-datatable-cell-template>
{{ value }}
</ng-template>
</ngx-datatable-column>
</ngx-datatable>
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<button (click)="onCancel()"
class="mr-3"
nbButton
status="warning"
type="button">
{{ 'main.cancel' | translate }}
</button>
<button (click)="onClickNext()"
nbButton
class="float-right"
[disabled]="schedule.invalid || !validation.date"
status="primary">
{{ 'other.menu_extracurricular.master_extracurricular.add.next' | translate }}
</button>
</div>
</div>
</form>
Editor is loading...