Merge branch 'desarrollo' into 'master'

validaciones con controles versión 10

See merge request !9
parents e72fba59 f5477a32
......@@ -7,7 +7,6 @@ import { MatDialog } from '@angular/material/dialog';
import { AccesoDenegadoComponent } from 'src/app/modules/main/pages/programa/opciones/AccesoDenegado/AccesoDenegado.component';
@Injectable({
providedIn: 'root',
})
......@@ -19,30 +18,30 @@ export class AuthGuard implements CanActivate {
private dialog: MatDialog
) {}
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree {
const requiredEmails = route.data['requiredEmails'] as string[];
const userCurrentEmail = this.authService.email;
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean | UrlTree {
const requiredEmails = route.data['requiredEmails'] as string[];
const userCurrentEmail = this.authService.email;
if (this.authorizationService.hasAccess(requiredEmails)) {
if (this.authorizationService.hasAccess(requiredEmails)) {
return true;
} else {
console.log("Access denied for:", userCurrentEmail);
this.openModal();
this.router.navigate(['/main/principal']);
return false;
}
}
openModal(): void {
const dialogRef = this.dialog.open(AccesoDenegadoComponent, {
width: '400px',
disableClose: true
});
dialogRef.afterClosed().subscribe(result => {
console.log('La ventana modal se ha cerrado');
this.formularioEnviado = true;
this.router.navigate(['/main/principal']);
});
}
}
openModal() {
const dialogRef = this.dialog.open(AccesoDenegadoComponent, {
width: '400px',
disableClose: true
});
dialogRef.afterClosed().subscribe(result => {
console.log('La ventana modal se ha cerrado');
this.formularioEnviado = true;
});
}
}
......@@ -147,8 +147,7 @@ const routes: Routes = [
//-----------------Generales--------------------
{ path: '', redirectTo: 'principal', pathMatch: 'full' },
{ path: 'principal', component: MainComponent, canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec'] } },
{ path: 'ejemplo', component: EjemploComponent , canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec'] } },
{ path: 'principal', component: MainComponent, canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec', 'jvzambrano4@espe.edu.ec'] } }, { path: 'ejemplo', component: EjemploComponent , canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec'] } },
{ path: 'inicio', component: InicioComponent , canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec'] } },
{ path: 'home', component: HomeComponent , canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec'] } },
{ path: 'configuraciones', component: ConfiguracionesComponent , canActivate:[AuthGuard], data: { requiredEmails: ['jacaceres1@espe.edu.ec', 'jamolina13@espe.edu.ec', 'aczambrano3@espe.edu.ec'] } },
......
......@@ -148,7 +148,7 @@ export class ActaDirectorProyectoComponent implements OnInit {
filename: response.fileName
};
} catch (error) {
this.openModalError('¡Este PDF ya se ha subido!');
this.openModalError('Ya existe un Documento con ese Nombre');
return {
idPDF: null,
filename: ''
......
......@@ -17,7 +17,7 @@
<button mat-raised-button color="primary" *ngIf="ocultar"
(click)="AgregarF()" [disabled]="myForm.get('hitos').invalid">Agregar
Fecha</button>
<button mat-raised-button color="primary" *ngIf="showDataAdd" (click)="enviarInfo()">Guardar</button>
<button mat-raised-button color="primary" *ngIf="showDataAdd" [disabled]="myForm.invalid">Guardar</button>
<span class="separator"></span>
<button mat-raised-button color="warn" *ngIf="showDataAdd"
(click)="cancelarF()">Cancelar</button>
......
......@@ -116,29 +116,7 @@ export class AddHitosComponent implements OnInit {
}
}
enviarInfo(){
if (this.myForm.valid) {
const id_recuperado = this.myForm.get('hitos').value;
try {
const fechaIni = moment(this.myForm.get('fechaIniHitos').value).utc().toDate();
const fechaHoraIni = new Date(fechaIni);
fechaHoraIni.setUTCHours(fechaHoraIni.getUTCHours() - 5);
this.hitoM.uzytavseguim_fecha_logro = fechaHoraIni
this.hitoM.uzytavproyec_id = this.idProyecto;
this.hitoM.uzytavobjetivo_programa_id = id_recuperado;
this.hitoM.uzytavseguim_descrip = this.myForm.get('descrip').value;
this.hitoM.uzytavseguim_logro = this.myForm.get('resultados').value;
this.hitoS.guardarParametros(this.hitoM).subscribe(response => {
});
} catch (error) {
console.error('Error al enviar los datos:', error);
}
}
}
......
......@@ -428,7 +428,7 @@
<td>
<button>
<mat-icon color="warn"
(click)="eliminarActividad(item.uzytavobjetivo_programa_id)">delete</mat-icon>
(click)="eliminarActividad(acti.uzytavobjetivo_programa_id)">delete</mat-icon>
</button>
</td>
</ng-container>
......
......@@ -363,20 +363,24 @@ export class AddMatrizLogicoComponent implements OnInit {
}
eliminarActividad(id: number) {
this.openModalDelete('¿Desea eliminar el registro?').subscribe(result =>{
if (result) {
this.objeProS.eliminarParametros(id).subscribe(
() => {
console.log('El registro se ha eliminado');
this.obtenerRegistros();
},
(error) => {
// No mostrar el error en la consola
console.log('Error durante el tratamiento al registro');
}
);
}
});
this.openModalDelete('¿Desea eliminar el registro?').subscribe(result =>{
if (result) {
this.objeProS.eliminarParametrosHijo(id).subscribe(
() => {
console.log('El registro se ha eliminado');
this.obtenerRegistros();
},
(error) => {
// No mostrar el error en la consola
console.log('Error durante el tratamiento al registro');
}
);
}
});
}
......
......@@ -92,7 +92,7 @@ export class EditViabilidadComponent implements OnInit {
this.proyectos.uzytavproyec_resultados = this.myForm.get('resultadoO').value;
this.proyectosService.modificarParametros(this.idRecuperado, this.proyectos).subscribe(response => {
this.cambio = false;
this.openModal();
this.openModal('Se ha enviado la Viabilidad y Plan de Sostenibilidad');
});
} catch (error) {
console.error('Error al enviar los datos:', error);
......@@ -100,9 +100,10 @@ export class EditViabilidadComponent implements OnInit {
}
}
openModal() {
openModal(mensaje: string) {
const dialogRef = this.dialog.open(EnvioFormularioComponent, {
disableClose: true
disableClose: true,
data: {mensaje: mensaje}
});
dialogRef.afterClosed().subscribe(result => {
......
......@@ -50,7 +50,7 @@
<ng-container matColumnDef="Director" class="Column">
<th class="Column" mat-header-cell *matHeaderCellDef mat-sort-header>Diretor</th>
<th class="Column" mat-header-cell *matHeaderCellDef mat-sort-header>Campus</th>
<td class="Column" mat-cell *matCellDef="let dato">
{{dato.nombres$ | async }} </td>
</ng-container>
......
......@@ -24,7 +24,9 @@ export class ListaProyectosComponent implements OnInit {
idpara: number;
usuario!: Usuario[];
proyecto: Proyectos;
proyec: Proyectos;
usuarioUnico: Usuario;
idusuarioUnico: number;
proyectos!: Proyectos[];
enviarIdUsuario: Proyectos;
director: string;
......@@ -51,28 +53,34 @@ export class ListaProyectosComponent implements OnInit {
private datosUsuarioService: UsuariosService,
private mostrarOcultarService: MostrarOcultarService,
private compartirID: Compartir_idService,
private datosEspeService: DatosEspeService
private datosEspeService: DatosEspeService,
private compartiId: Compartir_idService,
) {
this.proyecto = new Proyectos();
this.usuarioUnico = new Usuario();
this.dataSource = new MatTableDataSource<Proyectos>([]);
this.enviarIdUsuario = new Proyectos()
}
ngOnInit(): void {
this.obtenerRegistros();
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
this.obtenerDatosUsuarioUnico().then(() => {
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
this.obtenerRegistros();
});
}
ngAfterViewInit() {
this.dataSource.paginator = this.paginator;
this.dataSource.sort = this.sort;
}
obtenerRegistros() {
this.proyectosService.obtenerParametros().subscribe(data => {
console.log("usuariounico",this.usuarioUnico)
this.proyectosService.obtenerParametrosPorRol(this.usuarioUnico.uzytusuario_id).subscribe(data => {
this.proyectos = data.map(proyecto => {
return {
...proyecto,
......@@ -85,6 +93,21 @@ export class ListaProyectosComponent implements OnInit {
this.dataSource.data = this.proyectos;
});
}
obtenerDatosUsuarioUnico(): Promise<void> {
return new Promise<void>((resolve, reject) => {
this.datosUsuarioService.obtenerDatosUsuario()
.subscribe(data => {
this.usuarioUnico = data;
this.idusuarioUnico = this.usuarioUnico.uzytusuario_id;
this.compartiId.setIdUsuario(this.idusuarioUnico);
resolve(); // Resuelve la Promesa cuando se haya completado la operación
},
error => {
console.log('Error al obtener los parámetros:', error);
reject(error); // Rechaza la Promesa si ocurre un error
});
});
}
obtenerDatosCampus(codigo: string): Observable<string> {
......@@ -136,7 +159,6 @@ export class ListaProyectosComponent implements OnInit {
agregarP() {
this.router.navigate(['main/Proyecto-Inicial']);
}
editar(id: number) {
const registroSeleccionado = this.proyectos.find(
proyectoFind => proyectoFind.uzytavproyec_id === id
......
......@@ -105,7 +105,7 @@ export class ConvocatoriasAgregarComponent implements OnInit {
filename: response.fileName
};
} catch (error) {
this.openModalError('¡Ya existe un Documento con ese Nombre! \n Ingrese Datos Nuevamente');
this.openModalError('Ya existe un Documento con ese Nombre \n Ingrese Datos Nuevamente');
return {
idPDF: null,
filename: ''
......
......@@ -32,6 +32,10 @@ export class Objetivo_programaService {
return this.httpClient.delete(`${this.URL}/eliminar/${id}`, { responseType: 'text' });
}
eliminarParametrosHijo(id: number): Observable<any> {
return this.httpClient.delete(`${this.URL}/eliminarHijo/${id}`, { responseType: 'text' });
}
modificarParametros(id: number, parametros: objetivoprograma): Observable<any> {
return this.httpClient.put<any>(`${this.URL}/editar/${id}`, parametros);
}
......
......@@ -20,6 +20,9 @@ export class ProyectosService {
obtenerParametros(): Observable<Proyectos[]> {
return this.httpClient.get<Proyectos[]>(`${this.URL}/getAll`);
}
obtenerParametrosPorRol(id: number): Observable<Proyectos[]> {
return this.httpClient.get<Proyectos[]>(`${this.URL}/findAllByUserIdAndRole/${id}`);
}
obtenerParametrosId(id: number): Observable<Proyectos> {
return this.httpClient.get<Proyectos>(`${this.URL_ID}/${id}`);
......@@ -52,4 +55,5 @@ export class ProyectosService {
return this.idGuardado;
}
}
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