Arreglos de validaciones

parent ac795386
...@@ -6,29 +6,27 @@ import { Injectable } from '@angular/core'; ...@@ -6,29 +6,27 @@ import { Injectable } from '@angular/core';
export class AuthorizationService { export class AuthorizationService {
private userEmail: string[] = []; private userEmail: string[] = [];
private perfiles: string[] = []; private perfiles: string[] = [];
setUserEmail(email: string[]) { setUserEmail(email: string[]) {
this.userEmail = email; this.userEmail = email;
console.log('User email set:', this.userEmail);
} }
setperfiles(perfiles: string[]) { setperfiles(perfiles: string[]) {
this.perfiles = perfiles; this.perfiles = perfiles;
console.log('User email set:', this.perfiles);
} }
hasAccess(requiredEmail: string[]): boolean { hasAccess(requiredEmail: string[]): boolean {
console.log('Required email:', requiredEmail);
console.log('User email:', this.userEmail);
return requiredEmail.some(email => this.userEmail.includes(email)); return requiredEmail.some(email => this.userEmail.includes(email));
} }
hasAccessPerfiles(requiredPerfil: string[]): boolean { hasAccessPerfiles(requiredPerfil: string[]): boolean {
console.log('Required email:', requiredPerfil);
console.log('User email:', this.perfiles);
return requiredPerfil.some(perfiles => this.perfiles.includes(perfiles)); return requiredPerfil.some(perfiles => this.perfiles.includes(perfiles));
} }
} }
...@@ -60,8 +60,6 @@ export class AuthService { ...@@ -60,8 +60,6 @@ export class AuthService {
} }
get email(): string { get email(): string {
console.log("this.oAuthService.getIdentityClaims()['email']", this.oAuthService.getIdentityClaims()['email'])
return this.oAuthService.getIdentityClaims()['email']; return this.oAuthService.getIdentityClaims()['email'];
} }
...@@ -133,7 +131,6 @@ private getUserProfiles(email: string) { ...@@ -133,7 +131,6 @@ private getUserProfiles(email: string) {
(profiles: string[]) => { (profiles: string[]) => {
this.setGlobalUserProfiles(profiles); // Actualiza los perfiles del usuario this.setGlobalUserProfiles(profiles); // Actualiza los perfiles del usuario
this.isUiEnabled = true; // Habilitar la interfaz una vez que se completó la verificación this.isUiEnabled = true; // Habilitar la interfaz una vez que se completó la verificación
console.log('Perfiles del usuario:', profiles);
}, },
(error) => { (error) => {
......
...@@ -123,7 +123,7 @@ const routes: Routes = [ ...@@ -123,7 +123,7 @@ const routes: Routes = [
{ path: 'editar-proyecto/:id', component: EditProyectoComponent, canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec', 'jvzambrano4@espe.edu.ec'] } }, { path: 'editar-proyecto/:id', component: EditProyectoComponent, canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec', 'jvzambrano4@espe.edu.ec'] } },
{ path: 'ListaProyectos', component: ListaProyectosComponent , canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec', 'jvzambrano4@espe.edu.ec'] } }, { path: 'ListaProyectos', component: ListaProyectosComponent , canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec', 'jvzambrano4@espe.edu.ec'] } },
{ path: 'Proyecto', component: ProyectoComponent , canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec', 'jvzambrano4@espe.edu.ec'] } }, { path: 'Proyecto', component: ProyectoComponent , canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec', 'jvzambrano4@espe.edu.ec'] } },
{ path: 'editar-proyecto', component: EditProyectoComponent, canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec', 'jvzambrano4@espe.edu.ec'] } },
//-----------------Usuarios-------------------- //-----------------Usuarios--------------------
//Usuarios //Usuarios
......
...@@ -230,6 +230,8 @@ import { AsignacionDocentesComponent } from './pages/Proyectos/Inicio Ejecución ...@@ -230,6 +230,8 @@ import { AsignacionDocentesComponent } from './pages/Proyectos/Inicio Ejecución
import { AddCalificacionVinculacionComponent } from './pages/Calificacion Comision Vinculacion/add-calificacion-vinculacion/add-calificacion-vinculacion.component'; import { AddCalificacionVinculacionComponent } from './pages/Calificacion Comision Vinculacion/add-calificacion-vinculacion/add-calificacion-vinculacion.component';
import { AccesoDenegadoComponent } from './pages/programa/opciones/AccesoDenegado/AccesoDenegado.component'; import { AccesoDenegadoComponent } from './pages/programa/opciones/AccesoDenegado/AccesoDenegado.component';
import { AccesoNoAutorizadoComponent } from './pages/programa/opciones/AccesoNoAutorizado/AccesoNoAutorizado.component'; import { AccesoNoAutorizadoComponent } from './pages/programa/opciones/AccesoNoAutorizado/AccesoNoAutorizado.component';
import { ErroresComponent } from './pages/programa/opciones/errores/errores.component';
import { MatTooltipModule } from '@angular/material/tooltip';
@NgModule({ @NgModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA], schemas: [CUSTOM_ELEMENTS_SCHEMA],
declarations: [ declarations: [
...@@ -407,9 +409,11 @@ import { AccesoNoAutorizadoComponent } from './pages/programa/opciones/AccesoNoA ...@@ -407,9 +409,11 @@ import { AccesoNoAutorizadoComponent } from './pages/programa/opciones/AccesoNoA
DesignarEvaluadorComponent, DesignarEvaluadorComponent,
ListarDocentesAsignadosComponent, ListarDocentesAsignadosComponent,
AccesoDenegadoComponent, AccesoDenegadoComponent,
AccesoNoAutorizadoComponent AccesoNoAutorizadoComponent,
ErroresComponent
], ],
imports: [ imports: [
MatTooltipModule,
MatTreeModule, MatTreeModule,
CKEditorModule, CKEditorModule,
FullCalendarModule, FullCalendarModule,
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
<div class="tope"> <div class="tope">
<div class="card-grid"> <div class="card-grid">
<div class="card" *ngFor="let linea of lineas"> <div class="card" *ngFor="let linea of lineas">
<mat-card> <mat-card (click)="getLinea(linea.uzytavlineaoperativa_DESCRIP)">
<img <img
mat-card-image mat-card-image
[src]="getImagen(linea.uzytavlineaoperativa_DESCRIP)" /> [src]="getImagen(linea.uzytavlineaoperativa_DESCRIP)" />
......
...@@ -51,4 +51,27 @@ export class LineasComponent implements OnInit { ...@@ -51,4 +51,27 @@ export class LineasComponent implements OnInit {
return ''; return '';
} }
} }
getLinea(nombre: string){
switch (nombre) {
case 'Proyecto Social':
return this.router.navigate(['main/ListaProyectos']);
case 'Prácticas Preprofesionales ':
return this.router.navigate(['main/ListaProyectos']);
case 'Divulgación y resultados de aplicación C&C':
return this.router.navigate(['main/ListaProyectos']);
case 'Innovación Social y Abierta':
return this.router.navigate(['main/ListaProyectos']);
case 'Transferencia de Conocimiento y Tecnología':
return this.router.navigate(['main/ListaProyectos']);
case 'Consultoría y Servicios Especializados':
return this.router.navigate(['main/ListaProyectos']);
case 'Emprendimiento':
return this.router.navigate(['main/ListaProyectos']);
case 'Educación Continua':
return this.router.navigate(['main/ListaProyectos']);
default:
return '';
}
}
} }
...@@ -308,3 +308,9 @@ button:hover { ...@@ -308,3 +308,9 @@ button:hover {
flex-direction: column; flex-direction: column;
margin-bottom: 16px; margin-bottom: 16px;
} }
.estilo-edi {
background-color: white;
color: #5bb02c;
}
...@@ -39,7 +39,8 @@ ...@@ -39,7 +39,8 @@
myForm.get('objetivos').touched)"> myForm.get('objetivos').touched)">
Por favor, ingrese un objetivo. Por favor, ingrese un objetivo.
</mat-error> </mat-error>
<mat-icon matSuffix matTooltip="Ingrese el Objetivo el cual corresponde a cada opción" class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
</div> </div>
</div> </div>
</form> </form>
\ No newline at end of file
<div class="container"> <div class="container">
<div class="area-busqueda"> <div class="area-busqueda">
<mat-radio-group [(ngModel)]="selectedOption" (ngModelChange)="resetForm()"> <mat-radio-group [(ngModel)]="selectedOption" (ngModelChange)="resetForm()">
<mat-radio-button value="Nacional">Nacional</mat-radio-button> <!--<mat-radio-button value="Nacional">Nacional</mat-radio-button>-->
<mat-radio-button value="Provincial">Provincial</mat-radio-button> <mat-radio-button value="Provincial">Provincial</mat-radio-button>
<mat-radio-button value="Cantonal">Cantonal</mat-radio-button> <mat-radio-button value="Cantonal">Cantonal</mat-radio-button>
<mat-radio-button value="Parroquial">Parroquial</mat-radio-button> <mat-radio-button value="Parroquial">Parroquial</mat-radio-button>
......
...@@ -464,6 +464,19 @@ ...@@ -464,6 +464,19 @@
</mat-panel-title> </mat-panel-title>
</mat-expansion-panel-header> </mat-expansion-panel-header>
<mat-expansion-panel (opened)="contraccion = true"
(closed)="contraccion = false">
<mat-expansion-panel-header>
<mat-panel-title>
<mat-icon
[ngClass]="{'expanded': contraccion, 'collapsed': !contraccion}">keyboard_arrow_right</mat-icon>
1.- Asignación Comisión de Evaluación
</mat-panel-title>
</mat-expansion-panel-header>
<vex-comision-eva></vex-comision-eva>
<!--fin-->
</mat-expansion-panel>
<!--Resultados del proyecto--> <!--Resultados del proyecto-->
<mat-expansion-panel (opened)="contraccion = true" <mat-expansion-panel (opened)="contraccion = true"
(closed)="contraccion = false"> (closed)="contraccion = false">
......
...@@ -793,18 +793,20 @@ export class PdfComponent implements OnInit { ...@@ -793,18 +793,20 @@ export class PdfComponent implements OnInit {
pagesplit: true, pagesplit: true,
}; };
let pdf = new jsPDF('p', 'mm', 'a4', 5); // A4 size page of PDF let pdf = new jsPDF('p', 'mm', 'a4', true); // A4 size page of PDF
var position = 5; var marginLeft = 10;
var marginTop = 10;
var positon = marginTop;
var width = pdf.internal.pageSize.width; var width = pdf.internal.pageSize.width;
var height = pdf.internal.pageSize.height; var height = pdf.internal.pageSize.height;
pdf.addImage(contentDataURL, 'PNG', 5, position, imgWidth, imgHeight, options) pdf.addImage(contentDataURL, 'PNG', marginLeft, positon, imgWidth, imgHeight, options)
pdf.addImage(contentDataURL, 'PNG', 5, position, imgWidth, imgHeight, options); pdf.addImage(contentDataURL, 'PNG', marginLeft, positon, imgWidth, imgHeight, options);
heightLeft -= pageHeight; heightLeft -= pageHeight;
while (heightLeft >= 0) { while (heightLeft >= 0) {
position = heightLeft - imgHeight; positon = heightLeft - imgHeight;
pdf.addPage(); pdf.addPage();
pdf.addImage(contentDataURL, 'PNG', 5, position, imgWidth, imgHeight, options); pdf.addImage(contentDataURL, 'PNG', marginLeft, positon, imgWidth, imgHeight, options);
heightLeft -= pageHeight; heightLeft -= pageHeight;
} }
......
...@@ -20,7 +20,6 @@ export class AddOjetivosBnComponent implements OnInit { ...@@ -20,7 +20,6 @@ export class AddOjetivosBnComponent implements OnInit {
private objS: ObjetivosPLNBVService private objS: ObjetivosPLNBVService
) { ) {
this.myForm = this.formBuilder.group({ this.myForm = this.formBuilder.group({
// Define los campos y validaciones para el formulario 1
tipo: ['Objetivo'], tipo: ['Objetivo'],
padre: [null], padre: [null],
descrip: [''] descrip: ['']
...@@ -37,9 +36,14 @@ export class AddOjetivosBnComponent implements OnInit { ...@@ -37,9 +36,14 @@ export class AddOjetivosBnComponent implements OnInit {
if (this.myForm.valid && !this.enviarSolicitud) { if (this.myForm.valid && !this.enviarSolicitud) {
try { try {
this.enviarSolicitud = true; this.enviarSolicitud = true;
this.objM.uzytavobjetivo_b_vivirdescripcion = this.myForm.value.descrip;
//envio if( this.myForm.value.tipo === 'Objetivo'){
this.objM.uzytavobjetivo_b_vivirdescripcion = this.myForm.value.descrip;
}else if(this.myForm.value.tipo === 'Politicas'){
this.objM.uzytavobjetivo_b_vivirdescripcion = this.myForm.value.descrip;
this.objM.objetivo_b_vivirPadre = this.myForm.value.padre;
}
this.objS.guardarParametros(this.objM).subscribe(() => { this.objS.guardarParametros(this.objM).subscribe(() => {
console.log('Datos enviados'); console.log('Datos enviados');
this.objS.parametrosActualizados.next(); this.objS.parametrosActualizados.next();
......
/* Estilos globales */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap');
@import url('https://fonts.googleapis.com/icon?family=Material+Icons');
/* Contenedor principal */
.contenedor {
width: 96%;
margin: 10px auto;
border-radius: 10px;
background-color: white;
position: relative;
z-index: 1;
padding: 20px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
}
/* Encabezado sobrepuesto */
.sobremontado {
position: relative;
display: flex;
align-items: center;
justify-content: center;
background-color: rgb(71, 127, 75);
color: #fff;
text-align: center;
padding: 10px;
box-sizing: border-box;
border-radius: 10px 10px 0 0;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.4);
margin-bottom: 20px;
}
/* Icono en el encabezado */
.icono-instituciones {
font-size: 20px;
margin-right: 5px;
cursor: pointer;
}
/* Botón de volver */
.volver {
position: absolute;
top: 50%;
right: 10px;
transform: translateY(-50%);
border-radius: 50%;
background-color: white;
display: flex;
color: rgb(71, 127, 75);
align-items: center;
justify-content: center;
padding: 0;
width: 32px;
height: 32px;
border: none;
outline: none;
cursor: pointer;
}
/* Formulario */
.formulario {
display: flex;
flex-direction: column;
align-items: center;
}
.form-field {
width: 100%;
margin-bottom: 20px;
}
/* Tabla */
table {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
font-family: 'Roboto', sans-serif;
color: #333;
}
table th,
table td {
padding: 12px;
text-align: left;
border-bottom: 1px solid #e0e0e0;
}
table th {
background-color: rgb(248, 249, 250);
font-weight: bolder;
text-transform: uppercase;
color: black;
}
table td {
position: relative;
}
table td::after {
content: "";
position: absolute;
bottom: -1px;
left: 0;
width: 100%;
height: 1px;
background-color: #e0e0e0;
}
/* Inputs de texto */
input[type="text"] {
width: 100%;
padding: 8px;
border: 1px solid #ccc;
border-radius: 5px;
}
/* Botón de enviar */
button {
margin-top: 10px;
}
/* Estilos específicos para móviles */
@media (max-width: 768px) {
.volver {
width: 28px;
height: 28px;
}
}
<p>edit-ojetivos-bn works!</p> <link
href="https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap"
rel="stylesheet" />
<link href="https://fonts.googleapis.com/icon?family=Material+Icons"
rel="stylesheet" />
<div class="contenedor">
<div class="sobremontado">
<span class="icono-instituciones material-icons">new_label</span>
Agregar Partida Presupuestaria
<button class="volver" (click)="volver()">
<mat-icon>keyboard_arrow_left</mat-icon>
</button>
</div>
<div class="contenedor-dos">
<div class="centered-container">
</div>
<form [formGroup]="myForm" (ngSubmit)="onSubmit()" class="formulario">
<mat-form-field class="form-field">
<mat-label>Descripción del Objetivo</mat-label>
<input matInput formControlName="descrip" required>
</mat-form-field>
<button mat-raised-button color="primary" [disabled]="myForm.invalid">Enviar</button>
</form>
</div>
</div>
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup } from '@angular/forms';
import { Router } from '@angular/router';
import { objetivosBV } from 'src/app/modules/main/Models/objetivoPLNBV';
import { MostrarOcultarService } from 'src/app/modules/main/services/mostrar-ocultar.service';
import { ObjetivosPLNBVService } from 'src/app/modules/main/services/objetivosPLNBV/objetivos-plnbv.service';
@Component({ @Component({
selector: 'vex-edit-ojetivos-bn', selector: 'vex-edit-ojetivos-bn',
...@@ -6,10 +11,48 @@ import { Component, OnInit } from '@angular/core'; ...@@ -6,10 +11,48 @@ import { Component, OnInit } from '@angular/core';
styleUrls: ['./edit-ojetivos-bn.component.css'] styleUrls: ['./edit-ojetivos-bn.component.css']
}) })
export class EditOjetivosBnComponent implements OnInit { export class EditOjetivosBnComponent implements OnInit {
myForm: FormGroup;
obj!: objetivosBV[];
constructor() { } constructor(
private formBuilder: FormBuilder,
private router: Router,
private objM: objetivosBV,
private objS: ObjetivosPLNBVService,
private mostrarOcultarService: MostrarOcultarService
) {
this.myForm = this.formBuilder.group({
descrip: ['']
});
}
ngOnInit(): void { ngOnInit(): void {
} }
enviarSolicitud = false;
onSubmit() {
if (this.myForm.valid && !this.enviarSolicitud) {
try {
this.enviarSolicitud = true;
this.objM.uzytavobjetivo_b_vivirdescripcion = this.myForm.value.descrip;
this.objM.uzytavobjetivo_b_vivirdescripcion = this.myForm.value.descrip;
this.objM.objetivo_b_vivirPadre = this.myForm.value.padre;
this.objS.guardarParametros(this.objM).subscribe(() => {
console.log('Datos enviados');
this.objS.parametrosActualizados.next();
this.router.navigate(['main/ObjetivosPLNBV']);
});
} catch (error) {
console.error('Error al guardar un Objetivo', error);
}
}
}
volver() {
this.router.navigate(['main/ObjetivosPLNBV']);
}
} }
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
<div> <div>
<!-- Editar --> <!-- Editar -->
<button> <button>
<mat-icon class="azul" (click)="editar(dato.uzytavclaspre_id)">edit</mat-icon> <mat-icon class="azul" (click)="editar(dato.uzytavobjetivo_b_vivir_id)">edit</mat-icon>
</button> </button>
<!-- Eliminar --> <!-- Eliminar -->
</div> </div>
......
...@@ -82,7 +82,7 @@ export class OjetivosBnComponent implements OnInit { ...@@ -82,7 +82,7 @@ export class OjetivosBnComponent implements OnInit {
const registroSeleccionado = this.obj.find( const registroSeleccionado = this.obj.find(
obj => obj.uzytavobjetivo_b_vivir_id === id obj => obj.uzytavobjetivo_b_vivir_id === id
); );
console.log('id', id)
this.mostrarOcultarService.editarObPlan = registroSeleccionado; this.mostrarOcultarService.editarObPlan = registroSeleccionado;
this.router.navigate(['main/Edit-Objetivo', id]); this.router.navigate(['main/Edit-Objetivo', id]);
} }
......
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>
</div> </div>
<div class="card" (click)="catalogoGeneral()"> <div class="card" (click)="catalogoGeneral()">
<mat-card> <mat-card>
<img mat-card-image style="margin-top: 2px;" <img mat-card-image style="margin-top: 2px;"
......
...@@ -49,7 +49,7 @@ ...@@ -49,7 +49,7 @@
<div class="input-container"> <div class="input-container">
<mat-form-field> <mat-form-field>
<mat-label>Fecha Fin:</mat-label> <mat-label>Fecha Fin:</mat-label>
<input matInput [matDatepicker]="pickerFin" placeholder="Seleccione una fecha de Fin" <input matInput [matDatepicker]="pickerFin" placeholder="Seleccione una fecha de Fin"
formControlName="fechaFin" required formControlName="fechaFin" required
[(ngModel)]="convocatoria.uzytavconvoca_fecha_fin"> [(ngModel)]="convocatoria.uzytavconvoca_fecha_fin">
<mat-datepicker-toggle matSuffix [for]="pickerFin"></mat-datepicker-toggle> <mat-datepicker-toggle matSuffix [for]="pickerFin"></mat-datepicker-toggle>
...@@ -68,11 +68,11 @@ ...@@ -68,11 +68,11 @@
<!-- Control de PDF --> <!-- Control de PDF -->
<div class="input-container"> <div class="input-container">
<label>Archivo PDF</label> <label>Archivo PDF</label>
<input type="file" id="uzytavconvoca_digital" (change)="onFileChange($event)" formControlName="archivo"> <input type="file" id="uzytavconvoca_digital" accept=".pdf" (change)="onFileChange($event)" formControlName="archivo">
</div> </div>
<button mat-raised-button color="primary" [disabled]="myForm.invalid" (click)="onSubmit()">Enviar</button> <button mat-raised-button color="primary" [disabled]="myForm.invalid" (click)="onSubmit()">Enviar</button>
</div> </div>
</form> </form>
</div> </div>
</div> </div>
\ No newline at end of file
...@@ -6,6 +6,8 @@ import { ConvocatoriaService } from '../../../services/convocatoria/convocatoria ...@@ -6,6 +6,8 @@ import { ConvocatoriaService } from '../../../services/convocatoria/convocatoria
import { ActualizarAnexosService } from '../../../services/actualizar_anexos/actualizar-anexos.service'; import { ActualizarAnexosService } from '../../../services/actualizar_anexos/actualizar-anexos.service';
import { Actualiza_datosService } from '../../../services/actualiza_datos/actualiza_datos.service'; import { Actualiza_datosService } from '../../../services/actualiza_datos/actualiza_datos.service';
import { Compartir_idService } from '../../../services/compartir_id/compartir_id.service'; import { Compartir_idService } from '../../../services/compartir_id/compartir_id.service';
import { MatDialog } from '@angular/material/dialog';
import { ErroresComponent } from '../../programa/opciones/errores/errores.component';
@Component({ @Component({
selector: 'vex-convocatorias-agregar', selector: 'vex-convocatorias-agregar',
...@@ -20,6 +22,7 @@ export class ConvocatoriasAgregarComponent implements OnInit { ...@@ -20,6 +22,7 @@ export class ConvocatoriasAgregarComponent implements OnInit {
convocatoria: Convocatoria = {}; convocatoria: Convocatoria = {};
enviarSolicitud = false; enviarSolicitud = false;
checkboxValue: string; checkboxValue: string;
formularioEnviado: boolean;
constructor( constructor(
private formBuilder: FormBuilder, private formBuilder: FormBuilder,
...@@ -27,6 +30,7 @@ export class ConvocatoriasAgregarComponent implements OnInit { ...@@ -27,6 +30,7 @@ export class ConvocatoriasAgregarComponent implements OnInit {
private convocatoriaService: ConvocatoriaService, private convocatoriaService: ConvocatoriaService,
private actualizarAnexosService: ActualizarAnexosService, private actualizarAnexosService: ActualizarAnexosService,
private datosCompartidos: Actualiza_datosService, private datosCompartidos: Actualiza_datosService,
private dialog: MatDialog
) { ) {
this.formulario = this.formBuilder.group({ this.formulario = this.formBuilder.group({
nombre: ['', Validators.required], nombre: ['', Validators.required],
...@@ -82,7 +86,7 @@ export class ConvocatoriasAgregarComponent implements OnInit { ...@@ -82,7 +86,7 @@ export class ConvocatoriasAgregarComponent implements OnInit {
const formData = new FormData(); const formData = new FormData();
formData.append('files', this.file); formData.append('files', this.file);
formData.append('sistema', 'vinculacion'); formData.append('sistema', 'vinculacion');
try { try {
const response = await this.convocatoriaService.saveDocument(formData); const response = await this.convocatoriaService.saveDocument(formData);
return { return {
...@@ -90,37 +94,54 @@ export class ConvocatoriasAgregarComponent implements OnInit { ...@@ -90,37 +94,54 @@ export class ConvocatoriasAgregarComponent implements OnInit {
filename: response.fileName filename: response.fileName
}; };
} catch (error) { } catch (error) {
console.error('Error al guardar el PDF en el servidor:', error); this.openModalError('¡Ya existe un Documento con ese Nombre! \n Ingrese Datos Nuevamente');
throw error;
} }
} }
async onSubmit() { async onSubmit() {
this.verificarCheckbox(); this.verificarCheckbox();
if (this.myForm.valid && !this.enviarSolicitud) { if (this.myForm.valid && !this.enviarSolicitud) {
this.enviarSolicitud = true; this.enviarSolicitud = true;
const pdfData = await this.enviarPDF(); const pdfData = await this.enviarPDF();
this.convocatoria.uzytavconvoca_id_file = pdfData.idPDF; if (pdfData === null || pdfData === undefined) {
this.convocatoria.uzytavconvoca_digital_nombre = pdfData.filename; //this.openModalError('¡No se completo la Solicitud!');
this.convocatoria.uzytavconvoca_estado = this.checkboxValue; } else {
this.convocatoria.uzytavconvoca_nombre = this.myForm.value.nombre; this.convocatoria.uzytavconvoca_id_file = pdfData.idPDF;
this.convocatoria.uzytavconvoca_observacion = this.myForm.value.descripcion; this.convocatoria.uzytavconvoca_digital_nombre = pdfData.filename;
this.convocatoria.uzytavconvoca_fecha_inicio = this.myForm.value.fechaInicio; this.convocatoria.uzytavconvoca_estado = this.checkboxValue;
this.convocatoria.uzytavconvoca_fecha_fin = this.myForm.value.fechaFin; this.convocatoria.uzytavconvoca_nombre = this.myForm.value.nombre;
this.convocatoria.uzytavconvoca_observacion = this.myForm.value.descripcion;
this.convocatoriaService.guardarConvocatoria(this.convocatoria).subscribe( this.convocatoria.uzytavconvoca_fecha_inicio = this.myForm.value.fechaInicio;
response => { this.convocatoria.uzytavconvoca_fecha_fin = this.myForm.value.fechaFin;
this.datosCompartidos.actualizarDatos(this.convocatoria);
this.actualizarAnexosService.actualizarDatos(this.file); this.convocatoriaService.guardarConvocatoria(this.convocatoria).subscribe(
this.router.navigate(['main/Convocatorias']); response => {
}, this.datosCompartidos.actualizarDatos(this.convocatoria);
error => { this.actualizarAnexosService.actualizarDatos(this.file);
console.log(error); this.router.navigate(['main/Convocatorias']);
//this.router.navigate(['main/Convocatorias']); },
} error => {
); console.log(error)
this.openModalError('Ya existe una Convocatoria Activa');
//this.router.navigate(['main/Convocatorias']);
}
);
}
} }
} }
}
\ No newline at end of file openModalError(texto: string) {
const dialogRef = this.dialog.open(ErroresComponent, {
disableClose: true,
data: { mensaje: texto }
});
dialogRef.afterClosed().subscribe(result => {
console.log('La ventana modal se ha cerrado');
this.formularioEnviado = true;
});
}
}
<div class="modal-container"> <div class="modal-container">
<div class="modal-content"> <div class="modal-content">
<p>{{ mensaje }}</p> <p>{{ mensaje }}</p>
<button mat-button class="confirm-button" (click)="cerrarModal(true)"> <button mat-button class="confirm-button" (click)="cerrarModal(true)">
Confirmar Confirmar
</button> </button>
......
...@@ -7,15 +7,17 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; ...@@ -7,15 +7,17 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
styleUrls: ['./ConfirmacionEliminacion.component.css'] styleUrls: ['./ConfirmacionEliminacion.component.css']
}) })
export class ConfirmacionEliminacionComponent implements OnInit { export class ConfirmacionEliminacionComponent implements OnInit {
mensaje: string;
constructor( constructor(
private dialogRef: MatDialogRef<ConfirmacionEliminacionComponent>, private dialogRef: MatDialogRef<ConfirmacionEliminacionComponent>,
@Inject(MAT_DIALOG_DATA) public mensaje: string @Inject(MAT_DIALOG_DATA) private data: { mensaje: string }
) {} ) {}
ngOnInit(): void {} ngOnInit(): void {
this.mensaje = this.data.mensaje;
}
cerrarModal(confirmacion: boolean) { cerrarModal(confirmacion: boolean) {
this.dialogRef.close(confirmacion ? 'confirm' : 'cancel'); this.dialogRef.close(confirmacion);
} }
} }
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { MatTableDataSource } from '@angular/material/table'; import { MatTableDataSource } from '@angular/material/table';
import { forkJoin } from 'rxjs'; import { Observable, forkJoin } from 'rxjs';
import { Canton } from 'src/app/modules/main/Models/Ubicaciones/canton'; import { Canton } from 'src/app/modules/main/Models/Ubicaciones/canton';
import { Parroquia } from 'src/app/modules/main/Models/Ubicaciones/parroquia'; import { Parroquia } from 'src/app/modules/main/Models/Ubicaciones/parroquia';
import { Provincia } from 'src/app/modules/main/Models/Ubicaciones/provincia'; import { Provincia } from 'src/app/modules/main/Models/Ubicaciones/provincia';
...@@ -11,6 +11,8 @@ import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/ ...@@ -11,6 +11,8 @@ import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/
import { ComunicarService } from 'src/app/modules/main/services/comunicar/comunicar.service'; import { ComunicarService } from 'src/app/modules/main/services/comunicar/comunicar.service';
import { MostrarOcultarService } from 'src/app/modules/main/services/mostrar-ocultar.service'; import { MostrarOcultarService } from 'src/app/modules/main/services/mostrar-ocultar.service';
import { Zona_detalleService } from 'src/app/modules/main/services/zona_detalle/zona_detalle.service'; import { Zona_detalleService } from 'src/app/modules/main/services/zona_detalle/zona_detalle.service';
import { ConfirmacionEliminacionComponent } from '../../ConfirmacionEliminacion/ConfirmacionEliminacion.component';
import { MatDialog } from '@angular/material/dialog';
@Component({ @Component({
selector: 'vex-cobertura-list', selector: 'vex-cobertura-list',
...@@ -32,7 +34,8 @@ export class CoberturaListComponent implements OnInit { ...@@ -32,7 +34,8 @@ export class CoberturaListComponent implements OnInit {
private mostrarOcultarService: MostrarOcultarService, private mostrarOcultarService: MostrarOcultarService,
private datosCompar: Actualiza_datosService, private datosCompar: Actualiza_datosService,
private comunicarS: ComunicarService, private comunicarS: ComunicarService,
private ubicacionesS: UbicacionesService private ubicacionesS: UbicacionesService,
private dialog: MatDialog
) { ) {
this.dataSource = new MatTableDataSource<ZonaDetalle>([]); this.dataSource = new MatTableDataSource<ZonaDetalle>([]);
} }
...@@ -118,18 +121,29 @@ export class CoberturaListComponent implements OnInit { ...@@ -118,18 +121,29 @@ export class CoberturaListComponent implements OnInit {
}*/ }*/
eliminarParametro(id: number) { eliminarParametro(id: number) {
const confirmacion = confirm('¿Desea eliminar el registro?'); this.openModalDelete('¿Desea Eliminar una Cobertura?').subscribe(result => {
if (confirmacion) { if (result) {
this.zonaS.eliminarParametros(id).subscribe( this.zonaS.eliminarParametros(id).subscribe(
() => { () => {
console.log('El registro se ha eliminado'); console.log('El registro se ha eliminado');
this.obtenerRegistros(); this.obtenerRegistros();
}, },
(error) => { (error) => {
// No mostrar el error en la consola // No mostrar el error en la consola
console.log('Error durante el tratamiento al registro'); console.log('Error durante el tratamiento al registro');
} }
); );
} }
})
}
formularioEnviado:boolean;
openModalDelete(mensaje: string): Observable<string>{
const dialogRef = this.dialog.open(ConfirmacionEliminacionComponent, {
disableClose: true,
data: { mensaje: mensaje }
});
return dialogRef.afterClosed();
} }
} }
...@@ -29,7 +29,7 @@ export class EditDatosGeneralesComponent implements OnInit { ...@@ -29,7 +29,7 @@ export class EditDatosGeneralesComponent implements OnInit {
} }
ngOnInit(): void { ngOnInit(): void {
this.idRecuperado = parseInt(localStorage.getItem('proyectoId'),10); this.idRecuperado = this.ID_compartido.getIdGuardado();
console.log('El ID recuperado es:', this.idRecuperado); console.log('El ID recuperado es:', this.idRecuperado);
this.programaM = this.mostrarOcultarService.editPrograma; this.programaM = this.mostrarOcultarService.editPrograma;
this.initializeForm(); this.initializeForm();
......
...@@ -27,3 +27,8 @@ ...@@ -27,3 +27,8 @@
opacity: 0; opacity: 0;
pointer-events: none; pointer-events: none;
} }
.estilo-edi {
background-color: white;
color: #5bb02c;
}
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
<mat-form-field> <mat-form-field>
<mat-label>Nombre</mat-label> <mat-label>Nombre</mat-label>
<input matInput placeholder="Nombre de la Entidad" formControlName="nombreE"> <input matInput placeholder="Nombre de la Entidad" formControlName="nombreE">
<mat-icon matSuffix matTooltip="Ingrese el nombre completo de la Institución " class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
<mat-form-field class="example-full-width"> <mat-form-field class="example-full-width">
...@@ -25,27 +26,32 @@ ...@@ -25,27 +26,32 @@
{{ provincia.uzytprovincia_nombre }} {{ provincia.uzytprovincia_nombre }}
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-icon matSuffix matTooltip="Seleccione una de las 24 provincias" class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Ciudad</mat-label> <mat-label>Ciudad</mat-label>
<input matInput formControlName="ciudadE"> <input matInput formControlName="ciudadE">
<mat-icon matSuffix matTooltip="Ingrese la ciudad en la cual se encuentra la institución" class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Dirección</mat-label> <mat-label>Dirección</mat-label>
<input matInput formControlName="direccionE"> <input matInput formControlName="direccionE">
<mat-icon matSuffix matTooltip="Ingrese la dirección en la cual se encuentra la institución" class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Teléfono</mat-label> <mat-label>Teléfono</mat-label>
<input matInput placeholder="Duración" formControlName="telefonoE"> <input matInput placeholder="Duración" formControlName="telefonoE">
<mat-icon matSuffix matTooltip="Ingrese el número convencional" class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Página Web</mat-label> <mat-label>Página Web</mat-label>
<input matInput placeholder="Duración" formControlName="paginaE"> <input matInput placeholder="Duración" formControlName="paginaE">
<mat-icon matSuffix matTooltip="Ingrese la página web de la Institución" class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
</div> </div>
</div> </div>
......
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder } from '@angular/forms'; import { FormGroup, FormBuilder } from '@angular/forms';
import { MatDialog } from '@angular/material/dialog';
import { MatTableDataSource } from '@angular/material/table'; import { MatTableDataSource } from '@angular/material/table';
import { Provincia } from 'src/app/modules/main/Models/Ubicaciones/provincia'; import { Provincia } from 'src/app/modules/main/Models/Ubicaciones/provincia';
import { opcionInst } from 'src/app/modules/main/Models/opcion_inst'; import { opcionInst } from 'src/app/modules/main/Models/opcion_inst';
...@@ -9,6 +10,8 @@ import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/ ...@@ -9,6 +10,8 @@ import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/
import { ComunicarService } from 'src/app/modules/main/services/comunicar/comunicar.service'; import { ComunicarService } from 'src/app/modules/main/services/comunicar/comunicar.service';
import { MostrarOcultarService } from 'src/app/modules/main/services/mostrar-ocultar.service'; import { MostrarOcultarService } from 'src/app/modules/main/services/mostrar-ocultar.service';
import { OpcionInstService } from 'src/app/modules/main/services/opcion_inst/opcion-inst.service'; import { OpcionInstService } from 'src/app/modules/main/services/opcion_inst/opcion-inst.service';
import { ConfirmacionEliminacionComponent } from '../../ConfirmacionEliminacion/ConfirmacionEliminacion.component';
import { Observable } from 'rxjs';
@Component({ @Component({
selector: 'vex-entidad-list', selector: 'vex-entidad-list',
...@@ -38,7 +41,8 @@ export class EntidadListComponent implements OnInit { ...@@ -38,7 +41,8 @@ export class EntidadListComponent implements OnInit {
private provinciaM: Provincia, private provinciaM: Provincia,
private ubicacionS: UbicacionesService, private ubicacionS: UbicacionesService,
private comunicarS: ComunicarService, private comunicarS: ComunicarService,
private mostrarOcultarService: MostrarOcultarService private mostrarOcultarService: MostrarOcultarService,
private dialog: MatDialog,
) { ) {
this.dataSource = new MatTableDataSource<opcionInst>([]); this.dataSource = new MatTableDataSource<opcionInst>([]);
} }
...@@ -99,20 +103,31 @@ export class EntidadListComponent implements OnInit { ...@@ -99,20 +103,31 @@ export class EntidadListComponent implements OnInit {
eliminarParametro(id: number) { eliminarParametro(id: number) {
const confirmacion = confirm('¿Desea eliminar el registro?'); this.openModalDelete('¿Desea eliminar la Entidad?').subscribe(result => {
if (confirmacion) { if (result) {
this.opcionS.eliminarParametros(id).subscribe( // Realizar la eliminación aquí
() => { this.opcionS.eliminarParametros(id).subscribe(
console.log('El registro se ha eliminado'); () => {
this.obtenerRegistros(); console.log('El registro se ha eliminado');
}, this.obtenerRegistros();
(error) => { },
// No mostrar el error en la consola (error) => {
console.log('Error durante el tratamiento al registro'); console.log('Error durante el tratamiento al registro');
// Actualizar la página o la tabla this.obtenerRegistros();
this.obtenerRegistros(); }
} );
); }
} });
} }
formularioEnviado:boolean;
openModalDelete(mensaje: string): Observable<string>{
const dialogRef = this.dialog.open(ConfirmacionEliminacionComponent, {
disableClose: true,
data: { mensaje: mensaje }
});
return dialogRef.afterClosed();
}
} }
...@@ -21,3 +21,8 @@ ...@@ -21,3 +21,8 @@
margin-bottom: 16px; margin-bottom: 16px;
width: 100%; width: 100%;
} }
.estilo-edi {
background-color: white;
color: #5bb02c;
}
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
<mat-card-header> <mat-card-header>
<div class="save-button"> <div class="save-button">
<button mat-raised-button color="primary" [disabled]="myForm.invalid">Guardar</button> <button mat-raised-button color="primary" [disabled]="myForm.invalid">Guardar</button>
</div> </div>
</mat-card-header> </mat-card-header>
<mat-card-content> <mat-card-content>
...@@ -14,7 +13,8 @@ ...@@ -14,7 +13,8 @@
<mat-form-field> <mat-form-field>
<mat-label>Nombre</mat-label> <mat-label>Nombre</mat-label>
<input matInput placeholder="Nombre de la Entidad" formControlName="nombreE"> <input matInput placeholder="Nombre de la Entidad" formControlName="nombreE">
<mat-error *ngIf="myForm.get('nombreE').hasError('required')">Debe ingrear el nombre de la Institución</mat-error> <mat-error *ngIf="myForm.get('nombreE').hasError('required')">Debe ingresar el nombre de la Institución</mat-error>
<mat-icon matSuffix matTooltip="Ingrese el nombre completo de la Institución " class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
<mat-form-field class="example-full-width"> <mat-form-field class="example-full-width">
...@@ -25,27 +25,30 @@ ...@@ -25,27 +25,30 @@
</mat-option> </mat-option>
</mat-select> </mat-select>
<mat-error *ngIf="myForm.get('provincia').hasError('required')">Debe seleccionar una provincia</mat-error> <mat-error *ngIf="myForm.get('provincia').hasError('required')">Debe seleccionar una provincia</mat-error>
<mat-icon matSuffix matTooltip="Seleccione una de las 24 provincias" class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Ciudad</mat-label> <mat-label>Ciudad</mat-label>
<input matInput formControlName="ciudadE"> <input matInput formControlName="ciudadE">
<mat-error *ngIf="myForm.get('ciudadE').hasError('required')">La ciudad es requerida</mat-error> <mat-error *ngIf="myForm.get('ciudadE').hasError('required')">La ciudad es requerida</mat-error>
<mat-icon matSuffix matTooltip="Ingrese la ciudad en la cual se encuentra la institución" class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Dirección</mat-label> <mat-label>Dirección</mat-label>
<input matInput formControlName="direccionE"> <input matInput formControlName="direccionE">
<mat-error *ngIf="myForm.get('direccionE').hasError('required')">La dirección es requerida</mat-error> <mat-error *ngIf="myForm.get('direccionE').hasError('required')">La dirección es requerida</mat-error>
<mat-error *ngIf="myForm.get('direccionE').hasError('maxLengthExceeded')">La dirección no debe exceder de los 300 caracteres</mat-error> <mat-error *ngIf="myForm.get('direccionE').hasError('maxLength')">La dirección no debe exceder de los 300 caracteres</mat-error>
<mat-icon matSuffix matTooltip="Ingrese la dirección en la cual se encuentra la institución" class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-label>Teléfono</mat-label> <mat-label>Teléfono</mat-label>
<input matInput placeholder="Número de teléfono" formControlName="telefonoE"> <input matInput placeholder="Número de teléfono" formControlName="telefonoE">
<mat-error *ngIf="myForm.get('telefonoE').hasError('required')">El teléfono es requerido</mat-error> <mat-error *ngIf="myForm.get('telefonoE').hasError('required')">El teléfono es requerido</mat-error>
<mat-error *ngIf="myForm.get('telefonoE').hasError('pattern')">Ingresa un número de teléfono válido de Ecuador (comienza con 09 y tiene 10 dígitos)</mat-error> <mat-error *ngIf="myForm.get('telefonoE').hasError('pattern')">Ingresa un número de teléfono válido de Ecuador</mat-error>
<mat-icon matSuffix matTooltip="Ingrese el número convencional" class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
...@@ -53,8 +56,8 @@ ...@@ -53,8 +56,8 @@
<input matInput placeholder="Página Web" formControlName="paginaE"> <input matInput placeholder="Página Web" formControlName="paginaE">
<mat-error *ngIf="myForm.get('paginaE').hasError('required')">La página web es requerida</mat-error> <mat-error *ngIf="myForm.get('paginaE').hasError('required')">La página web es requerida</mat-error>
<mat-error *ngIf="myForm.get('paginaE').hasError('pattern')">Ingresa una URL válida (puede comenzar con www)</mat-error> <mat-error *ngIf="myForm.get('paginaE').hasError('pattern')">Ingresa una URL válida (puede comenzar con www)</mat-error>
<mat-icon matSuffix matTooltip="Ingrese la página web de la Institución" class="estilo-edi">help_outline</mat-icon>
</mat-form-field> </mat-form-field>
</div> </div>
</div> </div>
</mat-card-content> </mat-card-content>
......
...@@ -36,7 +36,7 @@ export class EntidadComponent implements OnInit { ...@@ -36,7 +36,7 @@ export class EntidadComponent implements OnInit {
nombreE: ['', Validators.required], nombreE: ['', Validators.required],
ciudadE: ['', Validators.required], ciudadE: ['', Validators.required],
direccionE: ['',[Validators.required, this.validateDireccion]], direccionE: ['',[Validators.required, this.validateDireccion]],
telefonoE: ['', [Validators.required, Validators.pattern('^09[0-9]{8}$')]], telefonoE: ['', [Validators.required, Validators.pattern('^02[0-9]{7}$')]],
paginaE: ['', [Validators.required, Validators.pattern('^(www\\.|http://www\\.|https://www\\.)[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}(?:/[^\\s]*)?$')]], paginaE: ['', [Validators.required, Validators.pattern('^(www\\.|http://www\\.|https://www\\.)[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}(?:/[^\\s]*)?$')]],
provincia: ['', Validators.required] provincia: ['', Validators.required]
}); });
......
.modal {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
justify-content: center;
align-items: center;
z-index: 9999;
}
.modal-content {
background-color: white;
padding: 20px;
border-radius: 4px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
max-width: 400px;
width: 100%;
text-align: center;
position: relative;
}
.success-icon {
font-size: 80px;
color: #006400;
margin-right: 1em;
}
.modal-content p {
margin-bottom: 20px;
}
.modal-content button {
background-color: #e03535;
color: white;
border: none;
padding: 10px 20px;
border-radius: 4px;
cursor: pointer;
}
.modal-content button:hover {
background-color: #ea5656;
}
<div class="modal">
<div class="modal-content">
<p>
{{mensaje}}</p>
<button mat-button (click)="closeModal()">Cerrar</button>
</div>
</div>
import { ComponentFixture, TestBed } from '@angular/core/testing';
import { ErroresComponent } from './errores.component';
describe('ErroresComponent', () => {
let component: ErroresComponent;
let fixture: ComponentFixture<ErroresComponent>;
beforeEach(async () => {
await TestBed.configureTestingModule({
declarations: [ ErroresComponent ]
})
.compileComponents();
fixture = TestBed.createComponent(ErroresComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
import { Component, Inject, OnInit } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
@Component({
selector: 'vex-errores',
templateUrl: './errores.component.html',
styleUrls: ['./errores.component.css']
})
export class ErroresComponent implements OnInit {
formularioEnviado = true;
mensaje:string;
constructor(
private dialogRef: MatDialogRef<ErroresComponent>,
@Inject(MAT_DIALOG_DATA) public data: any
) {
this.mensaje = data.mensaje;
}
ngOnInit(): void {
}
closeModal() {
this.dialogRef.close();
setTimeout(() => {
window.location.reload();
}, 1000);
}
}
import { Component, OnInit } from '@angular/core'; import { Component, OnInit } from '@angular/core';
import { MatDialog } from '@angular/material/dialog';
import { MatTableDataSource } from '@angular/material/table'; import { MatTableDataSource } from '@angular/material/table';
import { Observable } from 'rxjs';
import { objetivosEstraInst } from 'src/app/modules/main/Models/objetivoEstraInst'; import { objetivosEstraInst } from 'src/app/modules/main/Models/objetivoEstraInst';
import { proObjeEstra } from 'src/app/modules/main/Models/proObjEstr'; import { proObjeEstra } from 'src/app/modules/main/Models/proObjEstr';
import { prograObj } from 'src/app/modules/main/Models/prograObj'; import { prograObj } from 'src/app/modules/main/Models/prograObj';
...@@ -8,6 +10,7 @@ import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/ ...@@ -8,6 +10,7 @@ import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/
import { Obj_estra_agService } from 'src/app/modules/main/services/obj_estra_agre/obj_estra_ag.service'; import { Obj_estra_agService } from 'src/app/modules/main/services/obj_estra_agre/obj_estra_ag.service';
import { ObjetivosPLNBVService } from 'src/app/modules/main/services/objetivosPLNBV/objetivos-plnbv.service'; import { ObjetivosPLNBVService } from 'src/app/modules/main/services/objetivosPLNBV/objetivos-plnbv.service';
import { ObjetivosEstraSService } from 'src/app/modules/main/services/objetivos_estra_inst/objetivosEstraS.service'; import { ObjetivosEstraSService } from 'src/app/modules/main/services/objetivos_estra_inst/objetivosEstraS.service';
import { ConfirmacionEliminacionComponent } from '../../../ConfirmacionEliminacion/ConfirmacionEliminacion.component';
@Component({ @Component({
selector: 'vex-obj-ei-list', selector: 'vex-obj-ei-list',
...@@ -40,6 +43,7 @@ export class ObjEiListComponent implements OnInit { ...@@ -40,6 +43,7 @@ export class ObjEiListComponent implements OnInit {
private id_compartido: Compartir_idService, private id_compartido: Compartir_idService,
private datosCompartidos: Actualiza_datosService, private datosCompartidos: Actualiza_datosService,
private objEstraInS: ObjetivosEstraSService, private objEstraInS: ObjetivosEstraSService,
private dialog: MatDialog
) { this.datasource = new MatTableDataSource<proObjeEstra>([]); } ) { this.datasource = new MatTableDataSource<proObjeEstra>([]); }
ngOnInit(): void { ngOnInit(): void {
...@@ -101,18 +105,29 @@ export class ObjEiListComponent implements OnInit { ...@@ -101,18 +105,29 @@ export class ObjEiListComponent implements OnInit {
} }
eliminarParametros(id: number) { eliminarParametros(id: number) {
const confirmacion = confirm('¿Desea eliminar el registro?'); this.openModalDelete('¿Esta Segudo de Eliminar el Objetivo Estrategico?').subscribe(result =>{
if (confirmacion) { if (result) {
this.proObS.eliminarParametros(id).subscribe( this.proObS.eliminarParametros(id).subscribe(
() => { () => {
console.log('El registro se ha eliminado'); console.log('El registro se ha eliminado');
this.obtenerRegistros(); this.obtenerRegistros();
}, },
(error) => { (error) => {
// No mostrar el error en la consola // No mostrar el error en la consola
console.log('Error durante el tratamiento al registro'); console.log('Error durante el tratamiento al registro');
} }
); );
} }
})
}
formularioEnviado:boolean;
openModalDelete(mensaje: string): Observable<string>{
const dialogRef = this.dialog.open(ConfirmacionEliminacionComponent, {
disableClose: true,
data: { mensaje: mensaje }
});
return dialogRef.afterClosed();
} }
} }
...@@ -7,6 +7,8 @@ import { Actualiza_datosService } from 'src/app/modules/main/services/actualiza_ ...@@ -7,6 +7,8 @@ import { Actualiza_datosService } from 'src/app/modules/main/services/actualiza_
import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/compartir_id.service'; import { Compartir_idService } from 'src/app/modules/main/services/compartir_id/compartir_id.service';
import { ObjetivosPLNBVService } from 'src/app/modules/main/services/objetivosPLNBV/objetivos-plnbv.service'; import { ObjetivosPLNBVService } from 'src/app/modules/main/services/objetivosPLNBV/objetivos-plnbv.service';
import { PrograObjService } from 'src/app/modules/main/services/prograObj/prograObj.service'; import { PrograObjService } from 'src/app/modules/main/services/prograObj/prograObj.service';
import { ConfirmacionEliminacionComponent } from '../../../ConfirmacionEliminacion/ConfirmacionEliminacion.component';
import { Observable } from 'rxjs';
@Component({ @Component({
selector: 'vex-obj-p-list', selector: 'vex-obj-p-list',
templateUrl: './obj-p-list.component.html', templateUrl: './obj-p-list.component.html',
...@@ -33,7 +35,7 @@ export class ObjPListComponent implements OnInit { ...@@ -33,7 +35,7 @@ export class ObjPListComponent implements OnInit {
private objPS: PrograObjService, private objPS: PrograObjService,
private id_Compartido: Compartir_idService, private id_Compartido: Compartir_idService,
private dialog: MatDialog, private dialog: MatDialog,
private datosCompartidos: Actualiza_datosService private datosCompartidos: Actualiza_datosService,
) { ) {
this.dataSource = new MatTableDataSource<prograObj>([]); this.dataSource = new MatTableDataSource<prograObj>([]);
} }
...@@ -90,19 +92,29 @@ export class ObjPListComponent implements OnInit { ...@@ -90,19 +92,29 @@ export class ObjPListComponent implements OnInit {
} }
eliminarParametros(id: number) { eliminarParametros(id: number) {
const confirmacion = confirm('¿Desea eliminar el registro?'); this.openModalDelete('¿Desea Eliminar este Objetivo Del Buen Vivir?').subscribe(result =>{
if (confirmacion) { if (result) {
this.objPS.eliminarParametros(id).subscribe( this.objPS.eliminarParametros(id).subscribe(
() => { () => {
console.log('El registro se ha eliminado'); this.obtenerRegistros();
this.obtenerRegistros(); this.obtenerObjetivos();
this.obtenerObjetivos(); },
}, (error) => {
(error) => { // No mostrar el error en la consola
// No mostrar el error en la consola console.log('Error durante el tratamiento al registro');
console.log('Error durante el tratamiento al registro'); }
} );
); }
} })
}
formularioEnviado:boolean;
openModalDelete(mensaje: string): Observable<string>{
const dialogRef = this.dialog.open(ConfirmacionEliminacionComponent, {
disableClose: true,
data: { mensaje: mensaje }
});
return dialogRef.afterClosed();
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment