From f5662eed077414cb0bc718859301fe9ffb7e5692 Mon Sep 17 00:00:00 2001
From: AdalbertoCV <34152734@uaz.edu.mx>
Date: Thu, 3 Oct 2024 13:35:49 -0600
Subject: [PATCH] =?UTF-8?q?Actualizacion=20de=20dise=C3=B1os=20formularios?=
=?UTF-8?q?=20din=C3=A1micos?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../components/modalidades/CrearModalidad.css | 94 +++++++-
.../components/modalidades/CrearModalidad.jsx | 138 ++++++------
.../modalidades/EditarModalidad.jsx | 200 ++++++++++--------
3 files changed, 269 insertions(+), 163 deletions(-)
diff --git a/cosiap_frontend/src/components/modalidades/CrearModalidad.css b/cosiap_frontend/src/components/modalidades/CrearModalidad.css
index 9112abd..4d82bf3 100644
--- a/cosiap_frontend/src/components/modalidades/CrearModalidad.css
+++ b/cosiap_frontend/src/components/modalidades/CrearModalidad.css
@@ -90,15 +90,22 @@ textarea {
}
.delete-button {
- background-color: #f44336;
- color: white;
- border: none;
- padding: 8px 12px;
- font-size: 14px;
- border-radius: 16px;
- cursor: pointer;
- margin-top: 10px;
- margin-right: 10px;
+ background-color: #f44336;
+ color: white;
+ border: none;
+ padding: 8px 12px;
+ font-size: 14px;
+ border-radius: 16px;
+ cursor: pointer;
+ margin-top: 10px;
+ margin-right: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.delete-button i {
+ font-size: 16px; /* Ajusta el tamaño del ícono */
}
.delete-button:hover {
@@ -110,10 +117,11 @@ textarea {
background-color: #4fb659;
color: white;
padding: 10px 20px;
- font-size: 16px;
+ font-size: 14px;
border: none;
border-radius: 16px;
cursor: pointer;
+ font-style: oblique;
margin-top: 20px;
}
@@ -175,6 +183,22 @@ input[type="checkbox"] {
background-color: #f5f5f5;
}
+.element-card {
+ border: 1px solid #ddd;
+ border-radius: 5px;
+ margin: 15px 0;
+ padding: 10px;
+ background-color: #adacac;
+}
+
+.element-card-header{
+ font-weight: bold;
+}
+
+.element-card-body{
+ padding: 10px;
+}
+
.card-header {
font-weight: bold;
}
@@ -189,4 +213,54 @@ input[type="checkbox"] {
padding: 5px;
border-radius: 5px;
background-color: #e9e9e9;
+}
+
+.form-row {
+ display: flex;
+ align-items: center; /* Alinea los elementos al centro verticalmente */
+ gap: 10px; /* Espacio entre los elementos */
+ height: auto; /* Asegúrate de que la altura del contenedor sea flexible */
+}
+
+.form-row label {
+ flex-shrink: 0; /* Evita que el label se encoja */
+}
+
+.form-row input {
+ flex: 1; /* Hace que el input ocupe el espacio disponible */
+}
+
+.element-row {
+ display: flex;
+ align-items: center;
+ justify-content: space-between; /* Para que el input esté a la izquierda y los botones a la derecha */
+ gap: 10px; /* Espacio entre el input y los botones */
+ width: 100%; /* Asegura que ocupe todo el ancho disponible */
+}
+
+.element-input {
+ width: 100%;
+ padding: 8px;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ font-size: 16px;
+}
+
+.element-buttons {
+ display: flex;
+ gap: 5px; /* Espacio entre los botones */
+}
+
+.form-row input,
+.form-row button,
+.form-row label {
+ line-height: normal; /* Asegura que todos los elementos tengan una línea de texto coherente */
+ padding: 8px; /* Ajusta el padding para que sea igual en todos los elementos */
+ height: auto; /* Permite que los elementos ajusten su altura automáticamente */
+ font-size: 15px; /* Asegura que todos tengan el mismo tamaño de fuente */
+ font-style:oblique;
+}
+
+.form-row input {
+ flex: 1; /* Hace que el input crezca según el espacio disponible */
}
\ No newline at end of file
diff --git a/cosiap_frontend/src/components/modalidades/CrearModalidad.jsx b/cosiap_frontend/src/components/modalidades/CrearModalidad.jsx
index fb3ba54..e07f781 100644
--- a/cosiap_frontend/src/components/modalidades/CrearModalidad.jsx
+++ b/cosiap_frontend/src/components/modalidades/CrearModalidad.jsx
@@ -268,6 +268,7 @@ const CreateModalidad = () => {
@@ -284,6 +293,7 @@ const CreateModalidad = () => {
Sección {sectionIndex + 1}
+
{
placeholder="Nombre de la sección"
required
/>
-
- {/* Botón para eliminar sección */}
-
+
+
+
+
-
-
{section.elements.map((element, elementIndex) => (
Elemento {elementIndex + 1}
@@ -362,67 +394,45 @@ const CreateModalidad = () => {
)}
-
- {/* Botón para eliminar elemento */}
-
-
-
- {/* Opciones si el tipo es seleccionable */}
{['opcion_multiple', 'desplegable', 'casillas'].includes(element.type) && (
- <>
-
Opciones:
- {element.options.map((option, optionIndex) => (
-
-
-
-
- updateOption(sectionIndex, elementIndex, optionIndex, 'name', e.target.value)
- }
- placeholder="Nombre de la opción"
- required
- />
-
-
- {/* Botón para eliminar opción */}
+ <>
+
Opciones:
+ {element.options.map((option, optionIndex) => (
+
+
+
+
+
+ updateOption(sectionIndex, elementIndex, optionIndex, 'name', e.target.value)
+ }
+ placeholder="Nombre de la opción"
+ required
+ />
+
- ))}
-
- >
- )}
+
+ ))}
+ >
+ )}
))}
))}
-
-
-
setFormName(e.target.value)}
- />
+
+
+ setFormName(e.target.value)}
+ />
+ setIsAddingSection(true)}
+ >
+ (+) Sección
+
+
+
+ {/* Input para agregar nueva sección */}
+ {isAddingSection && (
+
+
+
setNewSectionName(e.target.value)}
+ placeholder="Nombre de la nueva sección"
+ />
+
+
+ Guardar
+
+
+
+
+ )}
{/* Secciones del formulario */}
{Object.values(sections).map((section,sectionIndex) => (
-
Sección {sectionIndex + 1}
+
Sección {sectionIndex + 1}
+
handleUpdateSectionName(section.id, e.target.value)}
placeholder="Nombre de la sección"
/>
-
removeSectionFromAPI(section.id)}
- >
- Eliminar Sección
-
{
setIsAddingElement(true);
}}
>
- + Agregar Elemento
+ (+) Elemento
-
- {isAddingElement && selectedSectionId === section.id && (
-
+ removeSectionFromAPI(section.id)}
+ >
+ (-) Sección
+
+
+ {isAddingElement && selectedSectionId === section.id && (
+
{
)}
-
+
{Object.values(section.elementos).map((element, elementIndex) => (
-
+
Elemento {elementIndex + 1}
+
+
+
+
+ {['opcion_multiple', 'desplegable', 'casillas'].includes(element.tipo) && (
+ <>
+
{
+ setSelectedElementId(element.id);
+ setIsAddingOption(true);
+ }}
+ >
+ (+) Opción
+
+
+ >
+ )}
+
removeElementFromSectionAPI(section.id, element.id)}
+ >
+ (-) Elemento
+
+
+
+
-
+ {isAddingOption && selectedElementId === element.id && (
+
+
+ setNewOptionName(e.target.value)}
+ placeholder="Nombre de la nueva opción"
+ />
+ handleAddOption(element.id)}
+ >
+ Guardar
+
+
+
+ )}
+
{element.tipo === 'documento' && (
@@ -682,51 +763,15 @@ const EditModalidad = () => {
)}
-
-
removeElementFromSectionAPI(section.id, element.id)}
- >
- Eliminar Elemento
-
- {['opcion_multiple', 'desplegable', 'casillas'].includes(element.tipo) && (
- <>
-
{
- setSelectedElementId(element.id);
- setIsAddingOption(true);
- }}
- >
- + Agregar Opción
-
-
- {isAddingOption && selectedElementId === element.id && (
-
- setNewOptionName(e.target.value)}
- placeholder="Nombre de la nueva opción"
- />
- handleAddOption(element.id)}
- >
- Guardar
-
-
- )}
- >
- )}
{/* Opciones del elemento (si existen) */}
{element.opciones && Object.values(element.opciones).map((option, optionIndex) => (
-
+
Opción {optionIndex +1}
))}
@@ -750,38 +797,13 @@ const EditModalidad = () => {
))}
- setIsAddingSection(true)}
- >
- + Agregar Sección
+ navigate('/modalidades')} className="add-button">
+ Cancelar
Actualizar Modalidad
-
- {/* Input para agregar nueva sección */}
- {isAddingSection && (
-
-
setNewSectionName(e.target.value)}
- placeholder="Nombre de la nueva sección"
- />
-
-
- Guardar
-
-
-
- )}
-
);
--
GitLab