MEJORAS EN LA INTERFACE

This commit is contained in:
Pablinux
2025-05-19 01:27:26 -05:00
parent 09c5b0384d
commit f000d615d7
4 changed files with 315 additions and 242 deletions

View File

@@ -62,7 +62,7 @@ app.use(cloud_file({
limits: { fileSize: 50000 * 1024 * 1024 }, limits: { fileSize: 50000 * 1024 * 1024 },
})); }));
//Documentacion API //*** Documentacion API ****//
const swaggerUi = require('swagger-ui-express'); const swaggerUi = require('swagger-ui-express');
const swagger_config = require('./swager_config.js'); const swagger_config = require('./swager_config.js');
app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swagger_config)); app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swagger_config));

View File

@@ -23,18 +23,39 @@ rutas.post('/login_app', controlador_init.login_appTK);//login APP / dev
rutas.post('/auth-keygen', controlador_init.auth_keygen);//genera TOKENS / dev rutas.post('/auth-keygen', controlador_init.auth_keygen);//genera TOKENS / dev
rutas.post('/auth-token', controlador_init.auth_token);//Valida TOKENS / dev rutas.post('/auth-token', controlador_init.auth_token);//Valida TOKENS / dev
/**
* @swagger
* /operaciones:
* post:
* summary: Recibe datos
* description: Endpoint para pruebas de recepción de datos JSON
* responses:
* 200:
* description: Datos recibidos exitosamente
*/
rutas.post('/operaciones/', controlador_init.recibe_datos);//testing json reccepcion server rutas.post('/operaciones/', controlador_init.recibe_datos);//testing json reccepcion server
/** /**
* @swagger * @swagger
* /: * /app-tv:
* get: * get:
* description: Returns the App tv * summary: App TV y video
* description: Muestra la aplicación de TV y video en formato JSON
* responses: * responses:
* 200: * 200:
* description: app de tv y video json * description: Aplicación de TV y video
*/ */
rutas.get('/app-tv/', controlador_init.app_tv);//app de tv y video json rutas.get('/app-tv/', controlador_init.app_tv);//app de tv y video json
/**
* @swagger
* /tv-online:
* get:
* summary: App TV y video (alternativo)
* description: Muestra la aplicación de TV y video en formato JSON
* responses:
* 200:
* description: Aplicación de TV y video
*/
rutas.get('/tv-online/', controlador_init.app_tv);//app de tv y video json rutas.get('/tv-online/', controlador_init.app_tv);//app de tv y video json
rutas.get('/portal/', controlador_init.portal);//app portal cautivo rutas.get('/portal/', controlador_init.portal);//app portal cautivo

View File

@@ -1,23 +1,51 @@
//Generando Documentacion // Archivo swagger_config.js corregido
global.config = require('./config.js');
var puerto = global.config.server.port;
// Documentación API const swaggerJsDoc = require('swagger-jsdoc');
const swaggerJsdoc = require('swagger-jsdoc');
const options = { // Definir las opciones de Swagger
const swaggerOptions = {
definition: { definition: {
swagger: '2.0', // Usando Swagger 2.0 openapi: '3.0.0',
info: { info: {
title: 'APP-SIGMA-WEB', title: 'APP-SIGMA-WEB',
version: '1.0.0', version: '1.0.0',
description: 'Documentación de la API para la aplicación APP-SIGMA-WEB', description: 'Documentación de la API para la aplicación APP-SIGMA-WEB',
contact: {
name: 'pablinux',
email: 'pablinux@hotmail.es'
}
}, },
host: 'localhost:' + puerto, servers: [{
basePath: '/', url: 'http://localhost:' + (process.env.PORT || require('./config.js').server.port),
schemes: ['http'], description: 'Servidor de desarrollo'
}],
components: {
securitySchemes: {
bearerAuth: {
type: 'http',
scheme: 'bearer',
bearerFormat: 'JWT'
}, },
apis: [`${__dirname}/rutas/*.js`], sessionAuth: {
type: 'apiKey',
in: 'cookie',
name: 'connect.sid'
}
}
}
},
// Rutas a los archivos que contienen anotaciones de Swagger
apis: [
'./rutas/rt_clientes.js',
'./rutas/rt_items.js',
'./rutas/rt_Generales.js',
'./rutas/rt_cloud.js',
'./rutas/rt_apps.js',
'./rutas/rt_arduino.js'
]
}; };
const swagger_config = swaggerJsdoc(options); // Inicializar Swagger
module.exports = { swagger_config }; const swaggerDocs = swaggerJsDoc(swaggerOptions);
module.exports = swaggerDocs;

View File

@@ -1,4 +1,3 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en"> <html lang="en">
@@ -112,7 +111,8 @@
<div class="row"> <div class="row">
<div class="col s12" id="caja_busqueda"> <div class="col s12" id="caja_busqueda">
<div class="input-field inline col s8 m9 l10"> <div class="input-field inline col s8 m9 l10">
<input id="txt_busq" placeholder="Escribe aqui tu busqueda" type="text" class="validate" onkeyup="busqueda(event)"> <input id="txt_busq" placeholder="Escribe aqui tu busqueda" type="text" class="validate"
onkeyup="busqueda(event)">
</div> </div>
<div class="col s4 m3 l2" id="bt_busq" onclick="consulta()"> <div class="col s4 m3 l2" id="bt_busq" onclick="consulta()">
<a class="waves-effect waves-light bt_busq btn right"> <a class="waves-effect waves-light bt_busq btn right">
@@ -150,8 +150,15 @@
<br> <br>
<button class="btn btn-cli" id="bt_guardaCliente"> <i class="material-icons left">save</i>Guardar</button> <button class="btn btn-cli" id="bt_guardaCliente"> <i class="material-icons left">save</i>Guardar</button>
<button class="btn btn-cli" id="bt_cancelaCliente"> <i class="material-icons left">cancel</i>Cancelar</button> <button class="btn btn-cli" id="bt_cancelaCliente"> <i class="material-icons left">cancel</i>Cancelar</button>
<button class="btn btn-cli right" id="bt_cosulta_cloud"> <i class="material-icons left">cloud</i>Consultar</button> <button class="btn btn-cli right" id="bt_cosulta_cloud"> <i
</div><div class="row" id="panel_origen_pedidos"></div><div id="detalles_pedidos"><ul class="collapsible" data-collapsible="accordion"> class="material-icons left">cloud</i>Consultar</button>
</div>
<div class="row" id="panel_origen_pedidos"></div>
<!---********** Contenido del SPRING/ACORDEON ********--->
<div id="detalles_pedidos">
<ul class="collapsible" data-collapsible="accordion">
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">room</i><strong>Origen:</strong> <i class="material-icons">room</i><strong>Origen:</strong>
@@ -169,7 +176,18 @@
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<div id="conten_pedidoCliente"> <div id="conten_pedidoCliente">
<strong>RUC/CI:</strong><span id="pedidClient_ruc"></span><br/> <strong>RUC/CI:</strong>
<div class="input-field" style="display: flex; align-items: center; gap: 10px;">
<input type="text" id="pedidClient_ruc" class="validate" placeholder="Ingrese RUC o CI">
<a class="waves-effect waves-light bt_busq btn right" onclick="cosultaCliente(2)">
<i class="material-icons left">youtube_searched_for</i>Buscar
</a>
<button class="btn waves-effect waves-light full-width" type="button" id="btn_cloud">
<i class="material-icons left">autorenew</i>
</button>
</div>
<div class="mostrar_busqCLientes"></div>
<strong>Telef:</strong><span id="pedidClient_tel"></span><br /> <strong>Telef:</strong><span id="pedidClient_tel"></span><br />
<strong>Email:</strong><span id="pedidClient_mail"></span><br /> <strong>Email:</strong><span id="pedidClient_mail"></span><br />
<strong>Direccion:</strong><span id="pedidClient_dir"></span><br> <strong>Direccion:</strong><span id="pedidClient_dir"></span><br>
@@ -185,13 +203,14 @@
<strong>Detalle Pedido:</strong> <strong>Detalle Pedido:</strong>
<span id="carrito_detallePedido" class="detPed_subtitulos">10</span> <span id="carrito_detallePedido" class="detPed_subtitulos">10</span>
</div> </div>
<div class="collapsible-body"><div id="contenido_detellePedidClient"></div></div> <div class="collapsible-body">
<div id="contenido_detellePedidClient"></div>
</div>
</li> </li>
<li> <li>
<div class="collapsible-header"> <div class="collapsible-header">
<i class="material-icons">attach_money</i <i class="material-icons">attach_money</i><strong>Importe y Valores</strong>
><strong>Importe y Valores</strong>
<span id="total_pedido" class="detPed_subtitulos">$100.00</span> <span id="total_pedido" class="detPed_subtitulos">$100.00</span>
</div> </div>
<div class="collapsible-body row"> <div class="collapsible-body row">
@@ -221,20 +240,25 @@
</li> </li>
<li> <li>
<div class="collapsible-header row"> <div class="collapsible-header row">
<button class="btn col s6" onClick="limpiaPanel()"><i class="material-icons">control_point</i>Nuevo Pedido</button> <button class="btn col s6" onClick="limpiaPanel()"><i class="material-icons">control_point</i>Nuevo
<button class="btn col s6" onClick="envioPedidos()"><i class="material-icons">cloud_upload</i>Enviar Pedido</button> Pedido</button>
<button class="btn col s6" onClick="envioPedidos()"><i class="material-icons">cloud_upload</i>Enviar
Pedido</button>
</div> </div>
<div class="collapsible-body"> <div class="collapsible-body">
<div id="mensaje_btns"></div> <div id="mensaje_btns"></div>
</div> </div>
</li> </li>
</ul> </div> </ul>
</div>
</main> </main>
</div> </div>
<div class="blue lighten-5" id="footerPrecios"> <div id="clinteBox"> <div class="blue lighten-5" id="footerPrecios">
<div id="clinteBox">
<div id="clinteTitulo"><strong>Selecione Cliente</strong></div> <div id="clinteTitulo"><strong>Selecione Cliente</strong></div>
<div id="clinteNom"></div></div> <div id="clinteNom"></div>
</div>
<div id="ValorTotal"><strong>Total</strong> $0.00</div> <div id="ValorTotal"><strong>Total</strong> $0.00</div>
</div> </div>
<!--footer class="page-footer"> <!--footer class="page-footer">