Skip to content

Commit

Permalink
regex
Browse files Browse the repository at this point in the history
  • Loading branch information
vvaldesc committed Jun 16, 2024
1 parent 22624ce commit 0c6dafa
Show file tree
Hide file tree
Showing 6 changed files with 97 additions and 91 deletions.
8 changes: 4 additions & 4 deletions src/components/AntDesign/modals/Detail_post_modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ const ServiceConsumptionModal: React.FC<ServiceConsumptionModalProps> = ({
footer={null}
>
<Form form={form} onFinish={onFinish}>
<Form.Item label="Servicio" name="service_id">
<Form.Item label="Servicio" name="service_id" required={true}>
<Select placeholder="Selecciona un servicio" onChange={handleServiceChange}>
{services.map((service) => (
<Option key={service.id} value={service.id}>
Expand All @@ -99,7 +99,7 @@ const ServiceConsumptionModal: React.FC<ServiceConsumptionModalProps> = ({
))}
</Select>
</Form.Item>
<Form.Item label="Empleado" name="employee_id">
<Form.Item label="Empleado" name="employee_id" required={true}>
<Select placeholder="Selecciona un empleado" onChange={handleEmployeeChange}>
{filteredEmployees.map((employee) => (
<Option key={employee.id} value={employee.id}>
Expand All @@ -112,14 +112,14 @@ const ServiceConsumptionModal: React.FC<ServiceConsumptionModalProps> = ({
))}
</Select>
</Form.Item>
<Form.Item label="Cliente" name="client_id">
<Form.Item label="Cliente" name="client_id" required={true}>
<Select placeholder="Selecciona un cliente">
{clients.map((client) => (
<Option key={client.id} value={client.id}>{client.name}</Option>
))}
</Select>
</Form.Item>
<Form.Item label="Fecha y hora reservada" name="reserved_at">
<Form.Item label="Fecha y hora reservada" name="reserved_at" required={true}>
<DatePicker showTime format="YYYY-MM-DD HH:mm" disabledDate={isDateDisabled} />
</Form.Item>
<Form.Item>
Expand Down
127 changes: 64 additions & 63 deletions src/components/AntDesign/modals/Docent_post_modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { FaPhotoVideo, FaPencilAlt } from 'react-icons/fa';
import "@/styles/styles.css";
import imageBase64 from "@/services/client/logic/imageBase64";
import postCheckProfilePhoto from "@/services/client/fetching/hooks/postCheckProfilePhoto.tsx";
import regex from '@/consts/regex';

import postStudent from '@/services/client/fetching/hooks/postStudent'
import postTeacher from '@/services/client/fetching/hooks/postTeacher'
Expand Down Expand Up @@ -149,7 +150,7 @@ const Docent_post_modal: React.FC = () => {
</Button>
<Modal title="Docencia y estudiantes" footer={null} visible={isModalOpen} onOk={handleOk} onCancel={handleCancel}>
<Form form={form} onFinish={onFinish}>
<Form.Item name="image">
<Form.Item name="image" required={true}>
<input
type="file"
id="fileUpload"
Expand Down Expand Up @@ -177,70 +178,70 @@ const Docent_post_modal: React.FC = () => {
{profilePhotoSrc ? <FaPencilAlt size={20} /> : <FaPhotoVideo size={20} />}
</div>
</Form.Item>
<Form.Item label="Nombre" name="name">
<Input placeholder="Nombre" />
</Form.Item>
<Form.Item label="Apellido" name="surname">
<Input placeholder="Apellido" />
</Form.Item>
<Form.Item label="Email" name="email">
<Input placeholder="Email" />
</Form.Item>
<Form.Item label="Número de teléfono" name="phone_number">
<Input placeholder="Número de teléfono" />
</Form.Item>
<Form.Item label="Dirección" name="address">
<Input placeholder="Dirección" />
</Form.Item>
<Form.Item label="Ciudad" name="city">
<Input placeholder="Ciudad" />
</Form.Item>
<Form.Item label="Fecha de nacimiento" name="bornDate">
<DatePicker />
</Form.Item>
<Form.Item label="Nombre de usuario" name="username">
<Input placeholder="Nombre de usuario" />
</Form.Item>
<Form.Item label="Activo" name="active">
<Checkbox onChange={e => form.setFieldsValue({ active: e.target.checked })} />
</Form.Item>
<Form.Item label="Salario" name="salary">
<Input type='number' placeholder="Salario" />
</Form.Item>
<Form.Item label="Seguridad social" name="social_security">
<Input placeholder="Seguridad social" />
</Form.Item>
<Tabs defaultActiveKey="1">
<TabPane tab="Estudiante" key="1">
<Form.Item label="Número de matrícula" name="matriculation_number">
<Input placeholder="Número de matrícula" />
</Form.Item>
<Form.Item label="DNI" name="DNI">
<Input placeholder="DNI" />
</Form.Item>
<Form.Item label="Empleo" name="employed">
<Checkbox onChange={e => form.setFieldsValue({ employed: e.target.checked })} />
</Form.Item>
<Form.Item label="Nivel educativo" name="educational_level">
<Input placeholder="Nivel educativo" />
</Form.Item>
</TabPane>
<TabPane tab="Profesor" key="2">
<Form.Item label="Es administrador" name="is_admin">
<Checkbox onChange={e => form.setFieldsValue({ is_admin: e.target.checked })} />
</Form.Item>
</TabPane>
</Tabs>
<Form.Item>
<Form.Item required={true} label="Nombre" name="name" rules={[{ pattern: regex.regularName, message: 'Nombre inválido' }]}>
<Input placeholder="Nombre" />
</Form.Item>
<Form.Item required={true} label="Apellido" name="surname" rules={[{ pattern: regex.regularName, message: 'Apellido inválido' }]}>
<Input placeholder="Apellido" />
</Form.Item>
<Form.Item required={true} label="Email" name="email" rules={[{ pattern: regex.email, message: 'Email inválido' }]}>
<Input placeholder="Email" />
</Form.Item>
<Form.Item required={true} label="Número de teléfono" name="phone_number" rules={[{ pattern: regex.phone, message: 'Número de teléfono inválido' }]}>
<Input placeholder="Número de teléfono" />
</Form.Item>
<Form.Item required={true} label="Dirección" name="address" rules={[{ pattern: regex.address, message: 'Dirección inválida' }]}>
<Input placeholder="Dirección" />
</Form.Item>
<Form.Item required={true} label="Ciudad" name="city" rules={[{ pattern: regex.regularName, message: 'Ciudad inválida' }]}>
<Input placeholder="Ciudad" />
</Form.Item>
<Form.Item required={true} label="Fecha de nacimiento" name="bornDate">
<DatePicker />
</Form.Item>
<Form.Item required={true} label="Nombre de usuario" name="username" rules={[{ pattern: regex.username, message: 'Nombre de usuario inválido' }]}>
<Input placeholder="Nombre de usuario" />
</Form.Item>
<Form.Item required={true} label="Activo" name="active">
<Checkbox onChange={e => form.setFieldsValue({ active: e.target.checked })} />
</Form.Item>
<Form.Item label="Salario" name="salary">
<Input type='number' placeholder="Salario" />
</Form.Item>
<Form.Item required={true} label="Seguridad social" name="social_security" rules={[{ pattern: /^[0-9]{9}$/, message: 'Número de seguridad social inválido' }]}>
<Input placeholder="Seguridad social" />
</Form.Item>
<Tabs defaultActiveKey="1">
<TabPane tab="Estudiante" key="1">
<Form.Item label="Número de matrícula" name="matriculation_number" rules={[{ pattern: /^[0-9]{7}$/, message: 'Número de matrícula inválido' }]}>
<Input placeholder="Número de matrícula" />
</Form.Item>
<Form.Item label="DNI" name="DNI" rules={[{ pattern: regex.dni, message: 'DNI inválido' }]}>
<Input placeholder="DNI" />
</Form.Item>
<Form.Item label="Empleo" name="employed">
<Checkbox onChange={e => form.setFieldsValue({ employed: e.target.checked })} />
</Form.Item>
<Form.Item label="Nivel educativo" name="educational_level" rules={[{ pattern: regex.regularName, message: 'Nivel educativo inválido' }]}>
<Input placeholder="Nivel educativo" />
</Form.Item>
</TabPane>
<TabPane tab="Profesor" key="2">
<Form.Item label="Es administrador" name="is_admin">
<Checkbox onChange={e => form.setFieldsValue({ is_admin: e.target.checked })} />
</Form.Item>
</TabPane>
</Tabs>
<Form.Item>
<Button type="primary" htmlType="submit">
Enviar
</Button>
<Button type="default" htmlType="button" onClick={handleCancel}>
Cancelar
</Button>
<Form.Item>
<Button type="primary" htmlType="submit">
Enviar
</Button>
<Button type="default" htmlType="button" onClick={handleCancel}>
Cancelar
</Button>
</Form.Item>
</Form.Item>
</Form.Item>
</Form>
</Modal>
</>
Expand Down
4 changes: 2 additions & 2 deletions src/components/AntDesign/modals/Enrolments_post_modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ const Enrolments_post_modal: React.FC<{ students: Student[], subjects: Subject[]
</Button>
<Modal title="Matrculas" visible={isModalOpen} onOk={handleOk} onCancel={handleCancel} footer={null}>
<Form form={form} onFinish={onFinish}>
<Form.Item label="ID del estudiante" name="student_id">
<Form.Item required={true} label="ID del estudiante" name="student_id">
<Select placeholder="Selecciona un estudiante">
{Array.isArray(students) && students.map((student) => (
<Option key={student.id} value={student.id}>{student.name}</Option>
))}
</Select>
</Form.Item>
<Form.Item label="Acrónimo de la asignatura" name="subject_acronym">
<Form.Item required={true} label="Acrónimo de la asignatura" name="subject_acronym">
<Select placeholder="Selecciona una asignatura">
{subjects.map((subject) => (
<Option key={subject.acronym} value={subject.acronym}>{subject.name}</Option>
Expand Down
24 changes: 13 additions & 11 deletions src/components/AntDesign/modals/Fault_post_modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { Button, Modal, Form, Input, DatePicker, Checkbox, Select, Upload } from
import type { Student, Subject, StudentSubjectEnrolments } from '@/models/types';

import postFault from '@/services/client/fetching/hooks/postFault'
import regex from '@/consts/regex';

const { Option } = Select;

Expand Down Expand Up @@ -46,12 +47,6 @@ const DocentPostModal: React.FC<DocentPostModalProps> = ({ students, subjects, e
)
: [];

console.log('filteredSubjects');
console.log(filteredSubjects);
console.log('enrolments');
console.log(enrolments);
console.log(selectedStudent);

const onFinish = (values: any) => {
console.log('Received values of form: ', values);
handleOk();
Expand All @@ -65,27 +60,34 @@ const DocentPostModal: React.FC<DocentPostModalProps> = ({ students, subjects, e
</Button>
<Modal footer={null} title="Crear una falta de asistencia" visible={isModalOpen} onOk={handleOk} onCancel={handleCancel}>
<Form form={form} onFinish={onFinish}>
<Form.Item label="ID del estudiante" name="student_id">
<Form.Item required={true} label="ID del estudiante" name="student_id">
<Select placeholder="Selecciona un estudiante" onChange={handleStudentChange}>
{students.map((student: Student) => (
<Option key={student.id} value={student.id}>{student.name + ' ' + student.surname}</Option>
))}
</Select>
</Form.Item>
<Form.Item label="Acrónimo de la materia" name="subject_acronym">
<Form.Item required={true} label="Acrónimo de la materia" name="subject_acronym">
<Select placeholder="Selecciona una materia">
{filteredSubjects.map((subject) => (
<Option key={subject.acronym} value={subject.acronym}>{subject.name + ' - (' + subject.acronym + ')'}</Option>
))}
</Select>
</Form.Item>
<Form.Item label="Fecha" name="date">
<Form.Item required={true} label="Fecha" name="date">
<DatePicker />
</Form.Item>
<Form.Item label="Justificado" name="justified" valuePropName="checked">
<Form.Item required={true} label="Justificado" name="justified" valuePropName="checked">
<Checkbox onChange={e => form.setFieldsValue({ justified: e.target.checked })} />
</Form.Item>
<Form.Item label="Descripción" name="description">
<Form.Item label="Descripción" name="description"
rules={[
{
pattern: regex.description,
message: 'Por favor, introduce una descripción',
},
]}
>
<Input placeholder="Descripción" />
</Form.Item>
<Form.Item>
Expand Down
21 changes: 11 additions & 10 deletions src/components/AntDesign/modals/Profile_edit_modal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import {deleteCookieLoacalStorage} from "@/services/client/utils/utils_typed";
import Refresh from "@/services/client/logic/Refresh";
import postCheckProfilePhoto from "@/services/client/fetching/hooks/postCheckProfilePhoto.tsx";
import { ConfigProvider } from 'antd';
import regex from '@/consts/regex';

const { Option } = Select;

Expand Down Expand Up @@ -112,7 +113,7 @@ const Profile_edit_modal: React.FC<DocentPostModalProps> = ({
onCancel={handleCancel}
>
<Form className="relative" form={form} onFinish={onFinish}>
<Form.Item name="image">
<Form.Item required={true} name="image">
<input
type="file"
id="fileUpload"
Expand All @@ -139,31 +140,31 @@ const Profile_edit_modal: React.FC<DocentPostModalProps> = ({
<FaPencilAlt size={20} />
</div>
</Form.Item>
<Form.Item className="pt-10" label="Nombre" name="name">
<Form.Item className="pt-10" label="Nombre" name="name" rules={[{ required: true, pattern: regex.regularName, message: 'Nombre inválido' }]}>
<Input defaultValue={sessionInfoState.sessionInfo.profile?.name} />
</Form.Item>
<Form.Item label="Apellido" name="surname">
<Form.Item label="Apellido" name="surname" rules={[{ required: true, pattern: regex.regularName, message: 'Apellido inválido' }]}>
<Input defaultValue={sessionInfoState.sessionInfo.profile?.surname} />
</Form.Item>
<Form.Item label="Email" name="email">
<Form.Item label="Email" name="email" rules={[{ required: true, pattern: regex.email, message: 'Email inválido' }]}>
<Input defaultValue={sessionInfoState.sessionInfo.profile?.email} />
</Form.Item>
<Form.Item label="Número de teléfono" name="phone_number">
<Form.Item label="Número de teléfono" name="phone_number" rules={[{ required: true, pattern: regex.phone, message: 'Número de teléfono inválido' }]}>
<Input defaultValue={sessionInfoState.sessionInfo.profile?.phone_number} />
</Form.Item>
<Form.Item label="Dirección" name="address">
<Form.Item label="Dirección" name="address" rules={[{ required: true, pattern: regex.address, message: 'Dirección inválida' }]}>
<Input defaultValue={sessionInfoState.sessionInfo.profile?.address} />
</Form.Item>
<Form.Item label="Ciudad" name="city">
<Form.Item label="Ciudad" name="city" rules={[{ required: true, pattern: regex.regularName, message: 'Ciudad inválida' }]}>
<Input defaultValue={sessionInfoState.sessionInfo.profile?.city} />
</Form.Item>
<Form.Item label="Fecha de nacimiento" name="bornDate">
<Form.Item label="Fecha de nacimiento" name="bornDate" rules={[{ required: true, message: 'Fecha de nacimiento requerida' }]}>
<DatePicker defaultValue={dayjs(sessionInfoState.sessionInfo.profile?.bornDate)} />
</Form.Item>
<Form.Item label="Nombre de usuario" name="username">
<Form.Item label="Nombre de usuario" name="username" rules={[{ required: true, pattern: regex.username, message: 'Nombre de usuario inválido' }]}>
<Input defaultValue={sessionInfoState.sessionInfo.profile?.username} />
</Form.Item>
<Form.Item label="Activo" name="active">
<Form.Item label="Activo" name="active" >
<Checkbox defaultChecked={sessionInfoState.sessionInfo.profile?.active} />
</Form.Item>
<Form.Item>
Expand Down
4 changes: 3 additions & 1 deletion src/consts/regex.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ const regex = {
courseAcronym: /^[A-Z]{2}_[A-Z]{2}[0-9]$/,
regularName: /^[a-zA-Z\s]+$/,
address: /^[a-zA-Z0-9\s\.,#-]+$/,
username: /^[a-zA-Z0-9_]{4,16}$/
username: /^[a-zA-Z0-9_]{4,16}$/,
description: /^[a-zA-Z0-9\s\.,#-]{1,200}$/,
dni: /^[0-9]{8}[A-Z]$/
};

export default regex;

0 comments on commit 0c6dafa

Please sign in to comment.