utn-cli 2.0.47 → 2.0.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/templates/backend/servicios/Nucleo/Miscelaneas.js +1 -1
- package/templates/frontend/src/app/Paginas/Nucleo/contenedor-componentes/contenedor-componentes.component.html +8 -3
- package/templates/frontend/src/app/Paginas/Nucleo/contenedor-componentes/contenedor-componentes.component.ts +21 -4
- package/templates/bd/README.md +0 -78
- package/templates/bd/cumulodb-scripts/gitignore +0 -1
package/package.json
CHANGED
|
@@ -43,7 +43,7 @@ class Miscelaneo {
|
|
|
43
43
|
async UsuariosActuales() {
|
|
44
44
|
const ConexionSigu = await crearObjetoConexionSIGU();
|
|
45
45
|
const Actuales = await ConexionSigu.query("SELECT COUNT(DISTINCT `Identificador`) AS `Total` FROM `SIGU`.`SIGU_Sesiones` WHERE `LastUpdate` >= NOW() - INTERVAL 2 HOUR");
|
|
46
|
-
const Activos = await ConexionSigu.query("SELECT COUNT(DISTINCT CONCAT(JSON_VALUE(`Solicitud`, '$.ip'), JSON_VALUE(`Solicitud`, '$.userAgent')) ) FROM `SIGU`.`SIGU_BitacoraDeSolicitudes` WHERE `LastUpdate` >= NOW() - INTERVAL 5 MINUTE");
|
|
46
|
+
const Activos = await ConexionSigu.query("SELECT COUNT(DISTINCT CONCAT(JSON_VALUE(`Solicitud`, '$.ip'), JSON_VALUE(`Solicitud`, '$.userAgent')) ) AS `Total` FROM `SIGU`.`SIGU_BitacoraDeSolicitudes` WHERE `LastUpdate` >= NOW() - INTERVAL 5 MINUTE");
|
|
47
47
|
if (ConexionSigu) await ConexionSigu.end();
|
|
48
48
|
return {
|
|
49
49
|
UsuariosActuales: Actuales[0][0]['Total'],
|
|
@@ -69,8 +69,13 @@
|
|
|
69
69
|
}
|
|
70
70
|
</div>
|
|
71
71
|
<span class="separador-usuarios">|</span>
|
|
72
|
-
<mat-icon class="icono-usuarios" style="color: #4caf50;"
|
|
73
|
-
|
|
72
|
+
<mat-icon class="icono-usuarios" style="color: #4caf50;"
|
|
73
|
+
matTooltip="Usuarios con sesión activa en este momento">remove_red_eye</mat-icon>
|
|
74
|
+
<div class="numeros-container">
|
|
75
|
+
@if (AnimarUsuariosActivos) {
|
|
76
|
+
<div class="numero-animado">{{ UsuariosActivos | number }}</div>
|
|
77
|
+
}
|
|
78
|
+
</div>
|
|
74
79
|
</div>
|
|
75
80
|
</div>
|
|
76
81
|
<div class="pie-col derecha">
|
|
@@ -101,4 +106,4 @@
|
|
|
101
106
|
</button>
|
|
102
107
|
</div>
|
|
103
108
|
</div>
|
|
104
|
-
</div>
|
|
109
|
+
</div>
|
|
@@ -31,6 +31,7 @@ export class ContenedorComponentesComponent implements OnInit, OnDestroy {
|
|
|
31
31
|
public UsuariosActuales: number = 0;
|
|
32
32
|
public UsuariosActivos: number = 0;
|
|
33
33
|
public AnimarUsuarios: boolean = true;
|
|
34
|
+
public AnimarUsuariosActivos: boolean = true;
|
|
34
35
|
private intervaloUsuarios: any;
|
|
35
36
|
|
|
36
37
|
constructor(private http: HttpClient, private datosGlobalesService: DatosGlobalesService, private location: Location, private dialog: MatDialog) {
|
|
@@ -57,7 +58,7 @@ export class ContenedorComponentesComponent implements OnInit, OnDestroy {
|
|
|
57
58
|
this.obtenerUsuariosActuales();
|
|
58
59
|
this.intervaloUsuarios = setInterval(() => {
|
|
59
60
|
this.obtenerUsuariosActuales();
|
|
60
|
-
},
|
|
61
|
+
}, 60000);
|
|
61
62
|
|
|
62
63
|
this.http.get(this.datosGlobalesService.ObtenerURL() + 'misc/validarToken').subscribe((datos: any) => {
|
|
63
64
|
this.TienePermiso = datos.body;
|
|
@@ -218,14 +219,30 @@ export class ContenedorComponentesComponent implements OnInit, OnDestroy {
|
|
|
218
219
|
obtenerUsuariosActuales(): void {
|
|
219
220
|
this.http.get(this.datosGlobalesService.ObtenerURL() + 'misc/UsuariosActuales').subscribe((datos: any) => {
|
|
220
221
|
const data = datos.body;
|
|
221
|
-
|
|
222
|
-
|
|
222
|
+
|
|
223
|
+
let actuales = data.UsuariosActuales;
|
|
224
|
+
let activos = data.UsuariosActivos;
|
|
225
|
+
|
|
226
|
+
// Si activos es mayor a actuales, igualamos activos a actuales
|
|
227
|
+
if (activos > actuales) {
|
|
228
|
+
activos = actuales;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
if (this.UsuariosActuales !== actuales) {
|
|
232
|
+
this.UsuariosActuales = actuales;
|
|
223
233
|
this.AnimarUsuarios = false;
|
|
224
234
|
setTimeout(() => {
|
|
225
235
|
this.AnimarUsuarios = true;
|
|
226
236
|
}, 50);
|
|
227
237
|
}
|
|
228
|
-
|
|
238
|
+
|
|
239
|
+
if (this.UsuariosActivos !== activos) {
|
|
240
|
+
this.UsuariosActivos = activos;
|
|
241
|
+
this.AnimarUsuariosActivos = false;
|
|
242
|
+
setTimeout(() => {
|
|
243
|
+
this.AnimarUsuariosActivos = true;
|
|
244
|
+
}, 50);
|
|
245
|
+
}
|
|
229
246
|
});
|
|
230
247
|
}
|
|
231
248
|
}
|
package/templates/bd/README.md
DELETED
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
# Generalidades
|
|
2
|
-
Este repositorio proporciona la estructura básica e inicial de la infraestructura de base de datos para el desarrollo de módulos en la UTN. Su principal objetivo es ofrecer un punto de partida sólido para la creación de bases de datos destinadas a los módulos en desarrollo. Siéntase libre de modificarlo según sus necesidades y para que se adapte a su forma de trabajo.
|
|
3
|
-
|
|
4
|
-
# Requisitos previos
|
|
5
|
-
- Contar con *docker* y *docker-compose* instalado en su computadora.
|
|
6
|
-
- Tener instalado el editor de código de su preferencia.
|
|
7
|
-
- Contar con algún software para interactuar con bases de datos de tipo MySQL/MariaDB.
|
|
8
|
-
- Crear la carpeta *registry.git.utn.ac.cr* en */etc/docker/certs.d* en Linux o en *C:\ProgramData\docker\certs.d* en Windows.
|
|
9
|
-
- Solicitar el archivo *ca.cert* y colocarlo en la carpeta creada en el paso anterior.
|
|
10
|
-
|
|
11
|
-
# Puesta en marcha del entorno de base de datos (fase inicial)
|
|
12
|
-
En una terminal ejecute los siguientes comandos.
|
|
13
|
-
- Registro del certificado en *docker*.
|
|
14
|
-
|
|
15
|
-
$ docker login registry.git.utn.ac.cr
|
|
16
|
-
|
|
17
|
-
- Clone este repositorio en su computadora. No olvide cambiar la ruta https por la ruta correcta.
|
|
18
|
-
|
|
19
|
-
$ git clone https://git.utn.ac.cr/sistema-integrado-de-gesti-n-universitaria-sigu/sigu-plantillas/plantillas-base-de-datos.git
|
|
20
|
-
|
|
21
|
-
- Ponga a correr el entorno. Ingrese a la carpeta en la que descargó el repositorio.
|
|
22
|
-
|
|
23
|
-
$ docker-compose --file docker-compose.yml up -d --build
|
|
24
|
-
|
|
25
|
-
- Para apagar el entorno ejecute el siguiente comando.
|
|
26
|
-
|
|
27
|
-
$ docker-compose down
|
|
28
|
-
|
|
29
|
-
# Resultado (inicial)
|
|
30
|
-
Si todo salió bien, tendremos disponible lo siguiente.
|
|
31
|
-
- Tres bases de datos para trabajar, nos podremos conectar a ellas haciendo uso de nuestro software favorito estableciendo 127.0.0.1 (no usar localhost) como el *host* y *3307* como el puerto de conexión, el nombre de usuario es *root* y la contraseña es *root*.
|
|
32
|
-
- El puerto 3307 corresponde a la primer instancia creada. Esta instancia se usa para almacenar la base de datos de su módulo.
|
|
33
|
-
- Si hace uso de los mismos parámetros pero cambia al puerto 3308, se conectará a otra instancia de base de datos, en ésta se semejarán los datos que podría necesitar del servidor cumulodb.utn.ac.cr.
|
|
34
|
-
- Si hace uso de los mismos parámetros pero cambia al puerto 3309, se conectará a la imagen de base de datos del *framework*. En *famewotk* se encuentran por ejemplo las tablas SIGU.SIGU_Personas y SIGU.SIGU_Localidades.
|
|
35
|
-
|
|
36
|
-
# Hacer uso del entorno de desarrollo
|
|
37
|
-
Hasta este momento, hemos configurado el entorno de trabajo y ya todo debería de estar listo para usarse, pero, ¿qué pasa si necesitamos crear las estructuras (base de datos, tablas, vistas, etc) de nuestro módulo?
|
|
38
|
-
En los puntos anteriores pusimos ha funcionar nuestro entorno de trabajo, pero, para utilizarlo debemos tener en consideración lo siguiente.
|
|
39
|
-
|
|
40
|
-
## docker-scripts
|
|
41
|
-
- En la carpeta docker-scripts se encuentran una serie de archivos de tipo *.sql*, es en estos archivos en donde usted va a definir las diferentes estructuras de su base de datos que necesita su módulo, veamos el uso cada uno de ellos.
|
|
42
|
-
|
|
43
|
-
| Archivo | Uso |
|
|
44
|
-
|--|--|
|
|
45
|
-
| 1-crear estructura.sql | En este archivo van las instrucciones de tipo SQL para crear todas las estructuras de base de datos que necesita su módulo. |
|
|
46
|
-
| 2-cambios estructura original.sql | Una vez que su módulo llegó a Producción y si es que se torna necesario hacer cambios a la estructura original del módulo, es en este archivo en donde se escribirán las instrucciones de tipo SQL para crear o modificar las estructuras de base de datos que necesita su módulo. |
|
|
47
|
-
| 3-insertar datos de prueba.sql | En este archivo se crean las instrucciones de tipo SQL para llevar a cabo la inserción de los datos de prueba de su módulo. |
|
|
48
|
-
| 4-crear eventos y rutinas.sql | En este archivo se crean las instrucciones de tipo SQL para crear los eventos y rutinas (funciones y procedimientos) de su módulo. |
|
|
49
|
-
| 5-crear vistas.sql |En este archivo se crean las instrucciones de tipo SQL para crear las vistas de su módulo. |
|
|
50
|
-
| 6-calidad.sql | En este archivo se crean las instrucciones de tipo SQL que se necesitan ejecutar en el ambiente de Calidad. |
|
|
51
|
-
| 7-pruebas.sql | En este archivo se crean las instrucciones de tipo SQL que se necesitan ejecutar en el ambiente de Pruebas. |
|
|
52
|
-
| 8-local.sql | En este archivo se crean las instrucciones de tipo SQL que se necesitan ejecutar en el ambiente de Local. |
|
|
53
|
-
|
|
54
|
-
## cumulodb-scripts
|
|
55
|
-
- La carpeta cumulodb-scripts se encuentra bacía de manera predeterminada, en esta carpeta debe colocar el archivo *.sql* que le brinden los compañeros de la Unidad de Datos y que contenga los datos para simular la conexión con el servidor cumulodb.utn.ac.cr.
|
|
56
|
-
|
|
57
|
-
# Puesta en marcha del entorno de base de datos (fase de trabajo)
|
|
58
|
-
Para este momento debemos haber cumplido con lo siguiente.
|
|
59
|
-
- Haber cumplido con la sección de [Requisitos previos](#requisitos-previos).
|
|
60
|
-
- Haber ingresado en los diferentes archivos de la carpeta *docker-scripts* las instrucciones de tipo SQL pertinentes.
|
|
61
|
-
- Haber pegado en la carpeta cumulodb-scripts el archivo brindado por los compañeros de la Unidad de Datos y que contiene los datos del servidor cumulodb.utn.ac.cr, esto si es que fuera necesario.
|
|
62
|
-
|
|
63
|
-
Ahora es necesario volver a crear nuestro entorno de trabajo, pero en esta oportunidad, se creará con las estructuras y bases de datos necesarias, para ello:
|
|
64
|
-
- Apague el entorno ejecute el siguiente comando.
|
|
65
|
-
|
|
66
|
-
$ docker-compose down
|
|
67
|
-
|
|
68
|
-
- Ponga a correr el entorno.
|
|
69
|
-
|
|
70
|
-
$ docker-compose --file docker-compose.yml up -d --build
|
|
71
|
-
|
|
72
|
-
# Resultado (final)
|
|
73
|
-
Si todo salió bien, tendremos disponible lo siguiente.
|
|
74
|
-
- Tres bases de datos para trabajar.
|
|
75
|
-
- El puerto 3307 corresponde a la primer instancia creada. En esta instancia estará la base de datos y diferentes estructuras creadas en *1-crear estructura.sql* y demás archivos de esa carpeta.
|
|
76
|
-
- En el puerto 3308, se conectará a otra instancia de base de datos, en ésta se semejarán los datos que podría necesitar del servidor cumulodb.utn.ac.cr. En esta instancia estará una base de datos llama *DatosFederados* y las tablas suministradas por la Unidad de Datos.
|
|
77
|
-
- En el puerto 3309, se conectará a la imagen de base de datos del *framework*. En *famewotk* se encuentran por ejemplo las tablas SIGU.SIGU_Personas y SIGU.SIGU_Localidades.
|
|
78
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
*
|