Skip to content

Commit

Permalink
Fin Sección 17
Browse files Browse the repository at this point in the history
  • Loading branch information
betolix committed Nov 2, 2019
1 parent 10835fd commit 7238f93
Show file tree
Hide file tree
Showing 14 changed files with 345 additions and 50 deletions.
89 changes: 89 additions & 0 deletions src/app/pages/busqueda/busqueda.component.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<div class="row">

<div class="col-4">
<div class="card">
<div class="card-body">
<h4 class="card-title">Usuarios</h4>

<table class="table table-hover" *ngIf="usuarios.length > 0">
<tbody>
<tr *ngFor="let usuario of usuarios" [routerLink]="['/usuarios']" class="pointer">
<td>
<img [src]="usuario.img | imagen" class="img-50 img-circle">
</td>
<td>{{ usuario.nombre }}</td>

</tr>
</tbody>

</table>

<div class="alert alert-info" *ngIf="usuarios.length === 0">
No hay registros
</div>




</div>
</div>
</div>

<div class="col-4">
<div class="card">
<div class="card-body">
<h4 class="card-title">Médicos</h4>

<table class="table table-hover" *ngIf="medicos.length > 0">
<tbody>
<tr *ngFor="let medico of medicos" [routerLink]="['/medico', medico._id]" class="pointer">
<td>
<img [src]="medico.img | imagen:'medico'" class="img-50 img-circle">
</td>
<td>{{ medico.nombre }}</td>

</tr>
</tbody>

</table>

<div class="alert alert-info" *ngIf="medicos.length === 0">
No hay registros
</div>



</div>
</div>
</div>

<div class="col-4">
<div class="card">
<div class="card-body">
<h4 class="card-title">Hospitales</h4>

<table class="table table-hover" *ngIf="hospitales.length > 0">
<tbody>
<tr *ngFor="let hospital of hospitales" [routerLink]="['/hospitales']" class="pointer">
<td>
<img [src]="hospital.img | imagen:'hospital'" class="img-50 img-circle">
</td>
<td>{{ hospital.nombre }}</td>

</tr>
</tbody>

</table>

<div class="alert alert-info" *ngIf="hospitales.length === 0">
No hay registros
</div>



</div>
</div>
</div>


</div>>
52 changes: 52 additions & 0 deletions src/app/pages/busqueda/busqueda.component.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { HttpClient } from '@angular/common/http';
import { URL_SERVICIOS } from 'src/app/config/config';

import { Medico } from 'src/app/models/medico.model';
import { Usuario } from 'src/app/models/usuario.model';
import { Hospital } from 'src/app/models/hospital.model';

@Component({
selector: 'app-busqueda',
templateUrl: './busqueda.component.html',
styles: []
})
export class BusquedaComponent implements OnInit {

usuarios: Usuario[] = [];
medicos: Medico[] = [];
hospitales: Hospital[] = [];

constructor(
public activatedRoute: ActivatedRoute,
public http: HttpClient
) {
activatedRoute.params
.subscribe( params => {
let termino = params['termino'];
// console.log( termino );
this.buscar( termino );
} );
}

ngOnInit() {
}

buscar( termino: string ) {

let url = URL_SERVICIOS + '/busqueda/todo/' + termino ;

this.http.get( url )
.subscribe( (resp: any) => {
console.log( resp );
this.hospitales = resp.hospitales;
this.medicos = resp.medicos;
this.usuarios = resp.usuarios;

} );


}

}
4 changes: 3 additions & 1 deletion src/app/pages/pages.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import { ModalUploadComponent } from '../components/modal-upload/modal-upload.co
import { HospitalesComponent } from './hospitales/hospitales.component';
import { MedicosComponent } from './medicos/medicos.component';
import { MedicoComponent } from './medicos/medico.component';
import { BusquedaComponent } from './busqueda/busqueda.component';


@NgModule({
Expand All @@ -48,7 +49,8 @@ import { MedicoComponent } from './medicos/medico.component';
ModalUploadComponent,
HospitalesComponent,
MedicosComponent,
MedicoComponent
MedicoComponent,
BusquedaComponent
],
exports: [
DashboardComponent,
Expand Down
15 changes: 13 additions & 2 deletions src/app/pages/pages.routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,14 @@ import { RxjsComponent } from './rxjs/rxjs.component';

import { ProfileComponent } from './profile/profile.component';

import { LoginGuardGuard } from '../services/service.index';
import { UsuariosComponent } from './usuarios/usuarios.component';
import { HospitalesComponent } from './hospitales/hospitales.component';
import { MedicosComponent } from './medicos/medicos.component';
import { MedicoComponent } from './medicos/medico.component';
import { BusquedaComponent } from './busqueda/busqueda.component';

// GUARDS
import { LoginGuardGuard, AdminGuard } from '../services/service.index';



Expand All @@ -31,8 +34,16 @@ const pagesRoutes: Routes = [
{ path: 'rxjs', component: RxjsComponent, data: {titulo: 'RxJs'} },
{ path: 'account-settings', component: AccountSettingsComponent, data: {titulo: 'Ajustes del Tema'} },
{ path: 'perfil', component: ProfileComponent, data: {titulo: 'Perfil de usuario'} },
{ path: 'busqueda/:termino', component: BusquedaComponent, data: {titulo: 'Buscador'} },
// MANTENIMIENTOS
{ path: 'usuarios', component: UsuariosComponent, data: {titulo: 'Mantenimiento de Usuarios'} },

{
path: 'usuarios',
component: UsuariosComponent,
canActivate: [ AdminGuard ],
data: {titulo: 'Mantenimiento de Usuarios'}
},

{ path: 'hospitales', component: HospitalesComponent, data: {titulo: 'Mantenimiento de Hospitales'} },
{ path: 'medicos', component: MedicosComponent, data: {titulo: 'Mantenimiento de Médicos'} },
{ path: 'medico/:id', component: MedicoComponent, data: {titulo: 'Actualizar Médico'} },
Expand Down
29 changes: 29 additions & 0 deletions src/app/services/guards/admin.guard.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, UrlTree } from '@angular/router';
import { Observable } from 'rxjs';
import { UsuarioService } from '../usuario/usuario.service';

@Injectable({
providedIn: 'root'
})
export class AdminGuard implements CanActivate {

constructor(
public _usuarioService: UsuarioService,
// public router: Router

){}

canActivate() {

if ( this._usuarioService.usuario.role === 'ADMIN_ROLE' ) {
return true;
} else {
console.log('Bloqueado por el ADMIN GUARD');
// this.router.navigate(['/login']);
this._usuarioService.logout();
return false;
}
}

}
7 changes: 6 additions & 1 deletion src/app/services/service.index.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@

// GUARDS
export { LoginGuardGuard } from './guards/login-guard.guard';
export { AdminGuard } from './guards/admin.guard';


export { MedicoService } from './medico/medico.service';

export { HospitalService } from './hospital/hospital.service';

export { LoginGuardGuard } from './guards/login-guard.guard';


export { SubirArchivoService } from './subir-archivo/subir-archivo.service';
Expand Down
2 changes: 2 additions & 0 deletions src/app/services/service.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import {
SharedService,
UsuarioService,
LoginGuardGuard,
AdminGuard,
SubirArchivoService,
HospitalService,
MedicoService
Expand All @@ -27,6 +28,7 @@ import {
SharedService,
UsuarioService,
LoginGuardGuard,
AdminGuard,
SubirArchivoService,
ModalUploadService,
HospitalService,
Expand Down
57 changes: 34 additions & 23 deletions src/app/services/shared/sidebar.service.ts
Original file line number Diff line number Diff line change
@@ -1,32 +1,43 @@
import { Injectable } from '@angular/core';
import { UsuarioService } from '../usuario/usuario.service';

@Injectable({
providedIn: 'root'
})
export class SidebarService {

menu: any = [
{
titulo: 'Principal',
icono: 'mdi mdi-gauge',
submenu: [
{ titulo: 'Dashboard', url: '/dashboard'},
{ titulo: 'ProgressBar', url: '/progress'},
{ titulo: 'Gráficas', url: '/graficas1'},
{ titulo: 'Promesas', url: '/promesas'},
{ titulo: 'RxJs', url: '/rxjs'}
]
},
{
titulo: 'Mantenimientos',
icono: 'mdi mdi-folder-lock-open',
submenu: [
{ titulo: 'Usuarios', url: '/usuarios' },
{ titulo: 'Hospitales', url: '/hospitales' },
{ titulo: 'Médicos', url: '/medicos' }
]
}
];
menu: any[] = [];

constructor() { }
// menu: any = [
// {
// titulo: 'Principal',
// icono: 'mdi mdi-gauge',
// submenu: [
// { titulo: 'Dashboard', url: '/dashboard'},
// { titulo: 'ProgressBar', url: '/progress'},
// { titulo: 'Gráficas', url: '/graficas1'},
// { titulo: 'Promesas', url: '/promesas'},
// { titulo: 'RxJs', url: '/rxjs'}
// ]
// },
// {
// titulo: 'Mantenimientos',
// icono: 'mdi mdi-folder-lock-open',
// submenu: [
// { titulo: 'Usuarios', url: '/usuarios' },
// { titulo: 'Hospitales', url: '/hospitales' },
// { titulo: 'Médicos', url: '/medicos' }
// ]
// }
// ];

constructor(
public _usuarioService: UsuarioService
) { }


cargarMenu() {
this.menu = this._usuarioService.menu;
};

}
Loading

0 comments on commit 7238f93

Please sign in to comment.