From c30840b5f973f1932d266aa0e515e33d53c83756 Mon Sep 17 00:00:00 2001 From: BenjaVR Date: Sun, 24 Feb 2019 17:22:14 +0100 Subject: [PATCH] Submit form modals on enter press --- .../departments/DepartmentsFormModal.tsx | 91 ++++---- .../educations/EducationsFormModal.tsx | 59 +++-- .../planning/PlanningsFormModal.tsx | 217 +++++++++--------- src/components/schools/SchoolsFormModal.tsx | 59 +++-- src/components/students/StudentsFormModal.tsx | 157 +++++++------ 5 files changed, 314 insertions(+), 269 deletions(-) diff --git a/src/components/departments/DepartmentsFormModal.tsx b/src/components/departments/DepartmentsFormModal.tsx index 1dd494e..ed0f28c 100644 --- a/src/components/departments/DepartmentsFormModal.tsx +++ b/src/components/departments/DepartmentsFormModal.tsx @@ -48,6 +48,7 @@ class DepartmentFormModal extends React.Component -
- - {getFieldDecorator("name", { - validateTrigger: this.state.formValidateTrigger, - rules: [ - { required: true, message: "Naam mag niet leeg zijn" }, - ], - })( - , - )} - - - {getFieldDecorator("color", { - validateTrigger: this.state.formValidateTrigger, - rules: [ - { required: true, message: "Kies een kleur" }, - ], - })( - , - )} - +
+ + + + {getFieldDecorator("name", { + validateTrigger: this.state.formValidateTrigger, + rules: [ + { required: true, message: "Naam mag niet leeg zijn" }, + ], + })( + , + )} + + + {getFieldDecorator("color", { + validateTrigger: this.state.formValidateTrigger, + rules: [ + { required: true, message: "Kies een kleur" }, + ], + })( + , + )} + -

Capaciteit per opleiding

-

Max. aantal studenten per opleiding voor deze afdeling

- {capacitiesFormItems} - - -
+ + +
); } @@ -200,6 +203,12 @@ class DepartmentFormModal extends React.Component -
- - {getFieldDecorator("name", { - validateTrigger: this.state.formValidateTrigger, - rules: [ - { required: true, message: "Naam mag niet leeg zijn" }, - ], - })( - , - )} - -
- +
+ +
+ + {getFieldDecorator("name", { + validateTrigger: this.state.formValidateTrigger, + rules: [ + { required: true, message: "Naam mag niet leeg zijn" }, + ], + })( + , + )} + +
+
+
); } + private handleKeyDown(event: React.KeyboardEvent): void { + if (event.key === "Enter") { + this.handleOk(); + } + } + private handleClose(): void { this.props.onCloseRequest(); } diff --git a/src/components/planning/PlanningsFormModal.tsx b/src/components/planning/PlanningsFormModal.tsx index d426799..71ebf43 100644 --- a/src/components/planning/PlanningsFormModal.tsx +++ b/src/components/planning/PlanningsFormModal.tsx @@ -43,6 +43,7 @@ class PlanningsFormModal extends React.Component -
- - - - {getFieldDecorator("startDate", { - validateTrigger: this.state.formValidateTrigger, - rules: [ - { required: true, message: "Start datum mag niet leeg zijn" }, - ], - })( - , - )} - - - - - {getFieldDecorator("endDate", { - validateTrigger: this.state.formValidateTrigger, - validateFirst: true, - rules: [ - { required: true, message: "Eind datum mag niet leeg zijn" }, - { - validator: (_, endDate: moment.Moment | undefined, callback) => { - const startDate = this.props.form.getFieldValue(nameof("startDate")); - if (isMomentDayAfterOrTheSameAsOtherDay(endDate, startDate)) { - return callback(); - } - return callback(false); +
+ + + + + + {getFieldDecorator("startDate", { + validateTrigger: this.state.formValidateTrigger, + rules: [ + { required: true, message: "Start datum mag niet leeg zijn" }, + ], + })( + , + )} + + + + + {getFieldDecorator("endDate", { + validateTrigger: this.state.formValidateTrigger, + validateFirst: true, + rules: [ + { required: true, message: "Eind datum mag niet leeg zijn" }, + { + validator: (_, endDate: moment.Moment | undefined, callback) => { + const startDate = this.props.form.getFieldValue(nameof("startDate")); + if (isMomentDayAfterOrTheSameAsOtherDay(endDate, startDate)) { + return callback(); + } + return callback(false); + }, + message: "Eind datum mag niet voor de start datum liggen", }, - message: "Eind datum mag niet voor de start datum liggen", + ], + })( + , + )} + + + +

{this.state.selectedStartDate !== null && this.state.selectedEndDate !== null && + `${this.state.selectedEndDate.diff(this.state.selectedStartDate, "days") + 1} dag(en)` // +1 to include both start and end date. + }

+ +
+ + {getFieldDecorator("hours", { + validateTrigger: this.state.formValidateTrigger, + rules: [ + { required: true, message: "Geef een aantal stage uren in" }, + ], + })( + , + )} + + + {getFieldDecorator("departmentId", { + validateTrigger: this.state.formValidateTrigger, + rules: [ + { + required: true, + validator: (_, departmentId, callback) => { + if (departmentId === undefined || departmentId === "") { + callback(false); + } + callback(); }, - ], - })( - , - )} - - - -

{this.state.selectedStartDate !== null && this.state.selectedEndDate !== null && - `${this.state.selectedEndDate.diff(this.state.selectedStartDate, "days") + 1} dag(en)` // +1 to include both start and end date. - }

- - - - {getFieldDecorator("hours", { - validateTrigger: this.state.formValidateTrigger, - rules: [ - { required: true, message: "Geef een aantal stage uren in" }, - ], - })( - , - )} - - - {getFieldDecorator("departmentId", { - validateTrigger: this.state.formValidateTrigger, - rules: [ - { - required: true, - validator: (_, departmentId, callback) => { - if (departmentId === undefined || departmentId === "") { - callback(false); - } - callback(); + message: "Kies een afdeling", }, - message: "Kies een afdeling", - }, - ], - })( - , - )} - - -
+ ], + })( + , + )} + + + +
); } @@ -195,6 +198,12 @@ class PlanningsFormModal extends React.Component -
- - {getFieldDecorator("name", { - validateTrigger: this.state.formValidateTrigger, - rules: [ - { required: true, message: "Naam mag niet leeg zijn" }, - ], - })( - , - )} - -
- +
+ +
+ + {getFieldDecorator("name", { + validateTrigger: this.state.formValidateTrigger, + rules: [ + { required: true, message: "Naam mag niet leeg zijn" }, + ], + })( + , + )} + +
+
+
); } + private handleKeyDown(event: React.KeyboardEvent): void { + if (event.key === "Enter") { + this.handleOk(); + } + } + private handleClose(): void { this.props.onCloseRequest(); } diff --git a/src/components/students/StudentsFormModal.tsx b/src/components/students/StudentsFormModal.tsx index 2836944..b4e6935 100644 --- a/src/components/students/StudentsFormModal.tsx +++ b/src/components/students/StudentsFormModal.tsx @@ -38,6 +38,7 @@ class StudentsFormModal extends React.Component -
- - {getFieldDecorator("firstName", { - validateTrigger: this.state.formValidateTrigger, - rules: [ - { required: true, message: "Voornaam mag niet leeg zijn" }, - ], - })( - , - )} - - - {getFieldDecorator("lastName", { - validateTrigger: this.state.formValidateTrigger, - })( - , - )} - - - {getFieldDecorator("schoolId", { - validateTrigger: this.state.formValidateTrigger, - })( - , - )} - - - {getFieldDecorator("educationId", { - validateTrigger: this.state.formValidateTrigger, - })( - , - )} - - - {getFieldDecorator("isConfirmed", { - validateTrigger: this.state.formValidateTrigger, - valuePropName: "checked", - })( - Student is bevestigd door de school, - )} - -
- +
+ +
+ + {getFieldDecorator("firstName", { + validateTrigger: this.state.formValidateTrigger, + rules: [ + { required: true, message: "Voornaam mag niet leeg zijn" }, + ], + })( + , + )} + + + {getFieldDecorator("lastName", { + validateTrigger: this.state.formValidateTrigger, + })( + , + )} + + + {getFieldDecorator("schoolId", { + validateTrigger: this.state.formValidateTrigger, + })( + , + )} + + + {getFieldDecorator("educationId", { + validateTrigger: this.state.formValidateTrigger, + })( + , + )} + + + {getFieldDecorator("isConfirmed", { + validateTrigger: this.state.formValidateTrigger, + valuePropName: "checked", + })( + Student is bevestigd door de school, + )} + +
+
+
); } @@ -169,6 +172,12 @@ class StudentsFormModal extends React.Component