From 208ebe74201d795bbb5c35148a0919f35b833603 Mon Sep 17 00:00:00 2001 From: Pablinux Date: Tue, 20 Aug 2024 19:38:01 -0500 Subject: [PATCH] creacion de midleware seedtest, videos and upload --- src/controladores/controlador_Apps.js | 16 ++ src/controladores/controlador_cloud.js | 15 ++ src/public/css/app_videos.css | 160 +++++++++++ src/public/css/app_videos_upload.css | 71 +++++ src/public/css/login.css | 99 +++++++ src/public/css/speedtest.css | 62 +++++ src/public/img/sigma_cloud64.png | Bin 0 -> 3394 bytes src/public/img/sigma_cloud_b64.png | Bin 0 -> 2472 bytes src/public/img/sigma_cloud_w64.png | Bin 0 -> 3230 bytes src/public/js/app_videos_upload.js | 110 ++++++++ src/public/plantilla_html/rep_video.html | 284 ++++++++++++++++++++ src/public/plantilla_html/speedtest.html | 46 ++++ src/public/plantilla_html/subir_videos.html | 244 +++++++++++++++++ src/public/plantilla_html/video_upload.html | 189 +++++++++++++ src/rutas/rt_apps.js | 4 + src/rutas/rt_cloud.js | 1 + src/views/app-tv.ejs | 52 ++-- src/views/cloud.ejs | 6 +- src/views/login.ejs | 12 +- src/views/login_cloud.ejs | 4 +- src/views/panel_control.ejs | 2 +- src/views/speedtest.ejs | 56 ++++ src/views/test_velocidad.ejs | 119 ++++++++ src/views/video_upload.ejs | 59 ++++ src/views/videos.ejs | 152 +++++++++++ 25 files changed, 1722 insertions(+), 41 deletions(-) create mode 100644 src/public/css/app_videos.css create mode 100644 src/public/css/app_videos_upload.css create mode 100644 src/public/css/login.css create mode 100644 src/public/css/speedtest.css create mode 100644 src/public/img/sigma_cloud64.png create mode 100644 src/public/img/sigma_cloud_b64.png create mode 100644 src/public/img/sigma_cloud_w64.png create mode 100644 src/public/js/app_videos_upload.js create mode 100644 src/public/plantilla_html/rep_video.html create mode 100644 src/public/plantilla_html/speedtest.html create mode 100644 src/public/plantilla_html/subir_videos.html create mode 100644 src/public/plantilla_html/video_upload.html create mode 100644 src/views/speedtest.ejs create mode 100644 src/views/test_velocidad.ejs create mode 100644 src/views/video_upload.ejs create mode 100644 src/views/videos.ejs diff --git a/src/controladores/controlador_Apps.js b/src/controladores/controlador_Apps.js index a0ae059..fde7516 100644 --- a/src/controladores/controlador_Apps.js +++ b/src/controladores/controlador_Apps.js @@ -24,4 +24,20 @@ controlador.user = (req, res) => { }); } +//test de velocidad html +controlador.speedtest = (req, res) => { + //res.render('speedtest'); + res.render('test_velocidad') +}; + +//videos de ayuda sigma +controlador.videos = (req, res) => { + //res.render('speedtest'); + res.render('videos') +}; +controlador.upload = (req, res) => { + //res.render('speedtest'); + res.render('video_upload') +}; + module.exports = controlador; \ No newline at end of file diff --git a/src/controladores/controlador_cloud.js b/src/controladores/controlador_cloud.js index 5be5b9b..0a11b4a 100644 --- a/src/controladores/controlador_cloud.js +++ b/src/controladores/controlador_cloud.js @@ -17,6 +17,21 @@ controlador.upload = (req, res) => { }); } }; +controlador.upload_video = (req, res) => { + if (!req.files || Object.keys(req.files).lenght === 0) { + return res.status(400).send({ message: 'archivos no cargados' }); + } else { + const file = req.files.file_toUpload; + const path = req.app.locals.dir.path_dir + '/public/videos/' + file.name; + console.log(path); + file.mv(path, (err) => { + if (err) { + return res.status(500).send(err); + } + return res.send({ status: "success", path: path }); + }); + } +}; //ruta actual const procesarPath = (path) => { diff --git a/src/public/css/app_videos.css b/src/public/css/app_videos.css new file mode 100644 index 0000000..47ab63c --- /dev/null +++ b/src/public/css/app_videos.css @@ -0,0 +1,160 @@ +body { + font-family: Arial, sans-serif; + margin: 0; + padding: 0; + background-color: #121212; + color: #e0e0e0; + } + .banner { + display: flex; + align-items: center; + justify-content: space-between; + background-color: #1f1f1f; + color: #e0e0e0; + padding: 10px 20px; + position: fixed; + width: 96%; + top: 0; + z-index: 1000; + } + .banner .logo { + font-size: 24px; + font-weight: bold; + } + .banner .logo img { + height: 40px; + } + .banner .search-bar { + flex-grow: 1; + display: flex; + align-items: center; + margin: 0 20px; + } + .banner input[type="text"] { + width: 100%; + padding: 5px; + border: none; + border-radius: 3px; + margin-right: 10px; + background-color: #333; + color: #e0e0e0; + } + .banner .search-bar button { + background: url('https://cdn.jsdelivr.net/npm/uix@1.1.0/dist/icons/search.svg') no-repeat center; + background-size: 20px; + border: none; + width: 30px; + height: 30px; + cursor: pointer; + } + .banner .menu { + position: relative; + } + .banner .menu button { + background: url('https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcR5nhCKmVjqZVfc19KXRTIXpeT6mweVBNeAmw&s') no-repeat center; + background-size: 30px; + border: none; + width: 40px; + height: 40px; + cursor: pointer; + color: #e0e0e0; + } + .banner .menu ul { + display: none; + position: absolute; + top: 35px; + right: 0; + background: #1f1f1f; + border: 1px solid #333; + border-radius: 5px; + list-style: none; + padding: 0; + margin: 0; + z-index: 1000; + } + .banner .menu ul li { + padding: 10px; + border-bottom: 1px solid #333; + color: #e0e0e0; + cursor: pointer; + } + .banner .menu ul li:last-child { + border-bottom: none; + } + .banner .menu ul li:hover { + background: #333; + } + .video-list { + padding: 80px 20px 20px; + } + .video-carousel { + position: relative; + } + .slick-slide { + display: flex; + justify-content: center; + } + .video-item { + width: 150px; + margin: 10px; + background: #2c2c2c; + border: 1px solid #444; + border-radius: 5px; + overflow: hidden; + box-shadow: 0 2px 5px rgba(0,0,0,0.5); + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + text-align: center; + } + .video-item img { + width: 100%; + height: auto; + } + .video-item .info { + padding: 10px; + background: #1f1f1f; + } + .player { + display: flex; + justify-content: center; + margin-top: 20px; + } + .player iframe, + .player video { + width: 80%; + max-width: 800px; + border: 2px solid #444; + border-radius: 5px; + } + .slick-prev, + .slick-next { + width: 40px; + height: 40px; + background: #333; + color: #e0e0e0; + border: none; + border-radius: 50%; + line-height: 40px; + text-align: center; + font-size: 20px; + cursor: pointer; + z-index: 1000; + } + .slick-prev { + left: 10px; + } + .slick-next { + right: 10px; + } + @media (max-width: 768px) { + .video-item { + width: 200px; + } + } + @media (max-width: 480px) { + .video-item { + width: 150px; + } + } \ No newline at end of file diff --git a/src/public/css/app_videos_upload.css b/src/public/css/app_videos_upload.css new file mode 100644 index 0000000..adb4e7e --- /dev/null +++ b/src/public/css/app_videos_upload.css @@ -0,0 +1,71 @@ +body { + font-family: Arial, sans-serif; + background-color: #121212; + color: #e0e0e0; + padding: 20px; +} + +.container { + max-width: 600px; + margin: 0 auto; + background-color: #1f1f1f; + padding: 20px; + border-radius: 10px; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); +} + +h2 { + text-align: center; + margin-bottom: 20px; +} + +.form-group { + margin-bottom: 15px; +} + +.form-group label { + display: block; + margin-bottom: 5px; +} + +.form-group input, +.form-group select, +.form-group textarea { + width: 100%; + padding: 10px; + border: none; + border-radius: 5px; + background-color: #333; + color: #e0e0e0; +} + +.form-group textarea { + resize: vertical; + height: 100px; +} + +.form-group button { + width: 100%; + padding: 10px; + border: none; + border-radius: 5px; + background-color: #ff5722; + color: #fff; + font-size: 16px; + cursor: pointer; +} + +.form-group button:hover { + background-color: #e64a19; +} + +.form-group img { + margin-top: 10px; + width: 100%; + height: auto; + border-radius: 5px; +} + +#urlGroup { + display: none; +} \ No newline at end of file diff --git a/src/public/css/login.css b/src/public/css/login.css new file mode 100644 index 0000000..f78243b --- /dev/null +++ b/src/public/css/login.css @@ -0,0 +1,99 @@ +@import url('https://fonts.googleapis.com/css?family=Poppins:wght@300;400;500;600;700;800;900&display=swap'); +*{ + margin: 0; + padding: 0; + box-sizing: border-box; + font-family: 'Poppins', sans-serif,sigma_tipografia; +} +body{ + /*background: #084C6D;*/ + display: flex; + justify-content:center; + align-items: center; + min-height: 100vh; + background: #1e293b; +} +@font-face { + font-family: sigma_tipografia; + src: url(../tipografias/sigma_font.ttf) format('truetype'), url(../tipografias/sigma_font.otf) format('truetype'); + font-style: normal; +} + +.login-page{ + background-color: #0a2938; +} +.login-logo a, .register-logo a{ + color: #b5daff +} +.nom_app{ + font-family: sigma_tipografia; +} +.login-logo{ + margin-top: 5px; + font-size:32px; + font-family: sigma_tipografia; +} +.login-box-msg{ + font-family: 'SIGMA-FONT', sigma_font, sigma_tipografia; +} + +.box{ + position: relative; + width: 380px; + height: 420px; + background-color: #1c1c1c; + border-radius: 8px; + overflow: hidden; +} + +.box::before{ + content: ''; + position: absolute; + top: -50%; + left: -50%; + width: 370px; + height: 420px; + background: linear-gradient(0deg,transparent,#45f3ff,#45f3ff); + transform-origin: bottom right; + animation: animar 6s linear infinite; +} + +.box::after{ + content: ''; + position: absolute; + top: -50%; + left: -50%; + width: 370px; + height: 420px; + background: linear-gradient(0deg,transparent,#45ff74,#45f3ff); + transform-origin: bottom right; + animation: animar 6s linear infinite; + animation-delay: -3s; +} +@keyframes animar{ + 0%{ + transform: rotate(0deg); + } + 100%{ + transform: rotate(360deg); + } +} +.form-box { + position: absolute; + inset: 2px; + background: #28292d; + z-index: 10; +} +.login-box{ + position: absolute; + inset: 2px; + background: #28292d; + z-index: 10; + width: 99%; + margin-top: 0rem; + border-radius: 8px; +} + +.footer a{ + margin-left: 30px; + } \ No newline at end of file diff --git a/src/public/css/speedtest.css b/src/public/css/speedtest.css new file mode 100644 index 0000000..4e75494 --- /dev/null +++ b/src/public/css/speedtest.css @@ -0,0 +1,62 @@ +body { + font-family: Arial, sans-serif; + background: #f4f4f4; + display: flex; + justify-content: center; + align-items: center; + height: 100vh; + margin: 0; +} + +.container { + width: 100%; + max-width: 400px; + background: #fff; + padding: 20px; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); + border-radius: 8px; + text-align: center; +} + +h2 { + color: #333; + margin-bottom: 20px; +} + +.result { + margin-top: 20px; + font-size: 24px; + font-weight: bold; + color: #007bff; +} + +.btn-measure { + padding: 10px 20px; + background: #28a745; + color: #fff; + border: none; + border-radius: 4px; + cursor: pointer; + font-size: 16px; + margin-top: 20px; +} + +.btn-measure:hover { + background: #218838; +} + +.loader { + border: 4px solid #f3f3f3; + border-radius: 50%; + border-top: 4px solid #007bff; + width: 40px; + height: 40px; + animation: spin 1s linear infinite; + margin: 20px auto; + display: none; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } +} \ No newline at end of file diff --git a/src/public/img/sigma_cloud64.png b/src/public/img/sigma_cloud64.png new file mode 100644 index 0000000000000000000000000000000000000000..f8689e930816c3bf5c4011143f840fa02323a878 GIT binary patch literal 3394 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 literal 0 HcmV?d00001 diff --git a/src/public/img/sigma_cloud_b64.png b/src/public/img/sigma_cloud_b64.png new file mode 100644 index 0000000000000000000000000000000000000000..61fa4c64e7aae7f63b6019dacc3e767b8ab77153 GIT binary patch literal 2472 zcmV;Z30L-sP)aTP(OpaK+b2t3-tVXIRWuz-$Z}z-$G~#-IVrR={iw8o+D?%!bu$ z1$v;AiUEEO{0JDYSKEOXKpjviBJEL^Yjz-{l$r-@26BLuAf)ZUW#BX5Gl`bsB4SDb zChDDW0-_fe&;mRHYJghcF`6fcSGf+n85KQD>ilY;u}{Y(L~#SHK)3$f1snz}-zx(E z@9E0-bShNGjf%tTe;F|Bdtm_J-2rqukXH!sIS>4#z)#TvlO&=s zvquw+jbVFTzlVTQ$_BinKfV@jyTZakE?v6RUvYkDZEc0QbAuB-f1VI7zewhQB|sYR zA7D(ljb6NXL349+1mYqe+8bw$wD5Np@2HLPE^Ze3&y-R>A* zS~#R34WN`7rIgyDl=`busupeh1B{AHJAbTNwaT!*pr9al!}xeeO7bne2y5vLI0TeZ zL(n!Z@6wx~=z##S;RyIvaq3jCx5L9>VQ2uQR65!+w@9zDqeXWk^%B)tf77N-hV>ga zZZvLCQv)A=9GKzl+Ys&$HHh0M1NYFrvJ>be!kE3StxbB6o0}W09bmX+ML2r_pE*D& z6$hLGGWCvI(PH~=1=H5A$1-F{P@0K3Ib^*3w&A<>_I5ftI_T)=VCmAOeP27n(V_1U zC<5l7B`m@kLj%G1ZQFQp>=+a4>lyL*G2Kl~IGs*xqetUPPNw(YBqw8OYGU}|!#I+Y`R9ip_LsE_Ei_*bTvkdQQA&+4BJ?)f2l{i=*7smYOiX0# z*s%rK_upVZ(+6 z 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 QWdHyG07*qoM6N<$f~v|O_5c6? literal 0 HcmV?d00001 diff --git a/src/public/js/app_videos_upload.js b/src/public/js/app_videos_upload.js new file mode 100644 index 0000000..49347ea --- /dev/null +++ b/src/public/js/app_videos_upload.js @@ -0,0 +1,110 @@ +document.getElementById('origen').addEventListener('change', function () { + const origen = this.value; + const urlGroup = document.getElementById('urlGroup'); + const fileGroup = document.getElementById('fileGroup'); + const urlInput = document.getElementById('url'); + const fileInput = document.getElementById('videoUpload'); + const previewImg = document.getElementById('previewImg'); + + if (origen === 'Local') { + fileGroup.style.display = 'block'; + urlGroup.style.display = 'none'; + urlInput.required = false; + fileInput.required = true; + } else { + fileGroup.style.display = 'none'; + urlGroup.style.display = 'block'; + urlInput.required = true; + fileInput.required = false; + //previewImg.style.display = 'none'; + } +}); + +document.getElementById('getThumbnailBtn').addEventListener('click', function () { + const origen = document.getElementById('origen').value; + if (origen === 'Local') { + obtenerMiniaturaLocal(); + } else if (origen === 'YouTube') { + obtenerMiniaturaYouTube(); + } + else if (origen === 'Vimeo') { + obtenerMiniaturaVimeo(); + } +}); + +function obtenerMiniaturaLocal() { + const fileInput = document.getElementById('videoUpload'); + const file = fileInput.files[0]; + const previewImg = document.getElementById('previewImg'); + + if (file) { + const videoElement = document.createElement('video'); + videoElement.src = URL.createObjectURL(file); + videoElement.muted = true; + + videoElement.addEventListener('loadeddata', function () { + videoElement.currentTime = videoElement.duration / 2; + }); + + videoElement.addEventListener('seeked', function () { + const canvas = document.createElement('canvas'); + const ctx = canvas.getContext('2d'); + canvas.width = videoElement.videoWidth / 4; + canvas.height = videoElement.videoHeight / 4; + ctx.drawImage(videoElement, 0, 0, canvas.width, canvas.height); + + previewImg.src = canvas.toDataURL(); + previewImg.style.display = 'block'; + }); + } +} + +function obtenerMiniaturaYouTube() { + const url = document.getElementById('url').value; + const previewImg = document.getElementById('previewUrl'); + var thumbnailUrl = 'https://img.youtube.com/vi/' + extractYouTubeVideoId(url) + '/0.jpg';; // Implement this function based on the source + previewImg.src = thumbnailUrl; + previewImg.style.display = 'block'; +} +function obtenerMiniaturaVimeo() { + const url = document.getElementById('url').value; + const previewImg = document.getElementById('previewUrl'); + var thumbnailUrl = 'https://vumbnail.com/' + extractVimeoVideoId(url) + '.jpg'; // Implement this function based on the source + + previewImg.src = thumbnailUrl; + previewImg.style.display = 'block'; +} + +function extractYouTubeVideoId(url) { + var match = url.match(/(?:https?:\/\/)?(?:www\.)?youtube\.com\/watch\?v=([^&]+)/); + return match ? match[1] : ''; +} +function extractVimeoVideoId(url) { + var match = url.match(/(?:https?:\/\/)?(?:www\.)?vimeo\.com\/(\d+)/); + return match ? match[1] : ''; +} + +document.getElementById('uploadForm').addEventListener('submit', function (event) { + event.preventDefault(); + + const origen = document.getElementById('origen').value; + let urlOrFile; + if (origen === 'Local') { + urlOrFile = document.getElementById('videoUpload').files[0]; + } else { + urlOrFile = document.getElementById('url').value; + } + + const videoData = { + nombre: document.getElementById('nombre').value, + descripcion: document.getElementById('descripcion').value, + url: urlOrFile, + miniatura: origen === 'Local' ? document.getElementById('previewImg').src : document.getElementById('previewUrl').src, + tipo: document.getElementById('tipo').value, + tamano: document.getElementById('tamano').value, + origen: origen, + }; + + console.log('Video subido:', videoData); + // Aquí puedes agregar código para procesar la subida y guardado de los datos. +}); \ No newline at end of file diff --git a/src/public/plantilla_html/rep_video.html b/src/public/plantilla_html/rep_video.html new file mode 100644 index 0000000..66a2041 --- /dev/null +++ b/src/public/plantilla_html/rep_video.html @@ -0,0 +1,284 @@ + + + + + + Lista de Videos + + + + + + + + + + +
+ +
+ +
+ +
+ + + + + + + diff --git a/src/public/plantilla_html/speedtest.html b/src/public/plantilla_html/speedtest.html new file mode 100644 index 0000000..66b5212 --- /dev/null +++ b/src/public/plantilla_html/speedtest.html @@ -0,0 +1,46 @@ + + + + + + Medidor de Ancho de Banda + + + +
+

Medidor de Ancho de Banda

+ +
+
---
+
+ + + + diff --git a/src/public/plantilla_html/subir_videos.html b/src/public/plantilla_html/subir_videos.html new file mode 100644 index 0000000..35d51b7 --- /dev/null +++ b/src/public/plantilla_html/subir_videos.html @@ -0,0 +1,244 @@ + + + + + + + Subir Video + + + + +
+

Subir Video

+
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+
+ + + +
+
+ +
+
+ + +
+
+ + +
+
+ +
+
+
+ + + + \ No newline at end of file diff --git a/src/public/plantilla_html/video_upload.html b/src/public/plantilla_html/video_upload.html new file mode 100644 index 0000000..6ac16ee --- /dev/null +++ b/src/public/plantilla_html/video_upload.html @@ -0,0 +1,189 @@ + + + + + + Formulario de Subida de Videos + + + + + +
+

Formulario de Subida de Videos

+
+
+ + +
+
+ + +
+
+ + +
+ + +
+ +
+
+ +
+
+ +
+
+
+ + + + diff --git a/src/rutas/rt_apps.js b/src/rutas/rt_apps.js index 5a713ab..17fac92 100644 --- a/src/rutas/rt_apps.js +++ b/src/rutas/rt_apps.js @@ -6,4 +6,8 @@ rutas.get('/app_restaurant', controlador_init.app_restaurant);//login testing cs //rutas.get('/usuarios', controlador_init.user);// rutas.get('/dash_board', controlador_init.dashboard);// rutas.get('/users', controlador_init.user);//devuelve usuaios con el el ROL meseros + +rutas.get('/speedtest', controlador_init.speedtest);//testing velocimetro server +rutas.get('/videos', controlador_init.videos);//videos sigma server +rutas.get('/video_upload', controlador_init.upload);//videos sigma server module.exports = rutas; \ No newline at end of file diff --git a/src/rutas/rt_cloud.js b/src/rutas/rt_cloud.js index 2133c55..f6502e3 100644 --- a/src/rutas/rt_cloud.js +++ b/src/rutas/rt_cloud.js @@ -6,4 +6,5 @@ const controlador_cloud = require('../controladores/controlador_cloud'); rutas.post('/upload', controlador_cloud.upload);//ver productos en modo json/get rutas.post('/cloud_panel/', controlador_cloud.cloud_panel);//ver direcctorio actual rutas.get('/cloud/', controlador_cloud.login_cloud);//ver direcctorio actual + module.exports = rutas; diff --git a/src/views/app-tv.ejs b/src/views/app-tv.ejs index 7070234..ae0ee83 100644 --- a/src/views/app-tv.ejs +++ b/src/views/app-tv.ejs @@ -11,50 +11,36 @@

SIGMA TV-ONLINE

- T + S o - d - o - s -   l o - s   - T - E - C - H - N - O - L - O - G - I - E - S + t + u +   + e + r + e + s

- +
-
-

SVELTE

+
+

FUTBOL

another frontend JS framework

-
-

ESBUILD

-

an extremely fast JavaScript bundler

-
-
-

NEXT.JS

-

framework for Production

-
-
-

TYPESCRIPT

+
+

PELICULAS

giving you better tooling at any scale

-
-

VITE

+
+

TV ENVIVO

a frontend build tool

diff --git a/src/views/cloud.ejs b/src/views/cloud.ejs index e546033..0e3ad8b 100644 --- a/src/views/cloud.ejs +++ b/src/views/cloud.ejs @@ -68,7 +68,7 @@ } function modo_img(file) { - var tipoImg = ["jpg", "jpeg", "png"]; + var tipoImg = ["jpg", "jpeg", "png","gif", "bmp", "tiff", "svg", "webp", "ico", "psd", "ai", "eps", "raw", "cr2", "nef", "orf", "sr2", "rw2", "dng", "arw", "3fr", "dcr", "kdc", "erf", "mrw", "pef", "raf", "x3f", "srw", "rwl", "r3d", "rwz", "z6ii", "z5", "drf", "k25", "bay", "cap", "iiq", "fff", "mef", "mos", "crw", "erf", "kdc", "dcs", "gpr", "mef", "mos", "nef", "nrw", "orf", "raw", "rw2", "rwl", "sr2", "srf", "x3f"]; var std = false; tipoImg.forEach((item, i) => { if (file == item) { @@ -80,7 +80,7 @@ } function modo_video(file) { - var tipoImg = ["mp4", "mpg", "webm"]; + var tipoImg = ["mp4", "mpg", "webm","avi", "mkv", "mov", "wmv", "flv", "3gp", "m4v"]; var std = false; tipoImg.forEach((item, i) => { console.log(item); @@ -92,7 +92,7 @@ return std; } function modo_music(file) { - var tipoImg = ["mp3", "acc", "wav"]; + var tipoImg = ["mp3", "acc", "wav", "wma", "ogg", "m4a"]; var std = false; tipoImg.forEach((item, i) => { if (file == item) { diff --git a/src/views/login.ejs b/src/views/login.ejs index 5de5e5d..532cced 100644 --- a/src/views/login.ejs +++ b/src/views/login.ejs @@ -39,14 +39,22 @@
- +
+

Generar Codigo de Session

+
+ +
+
+ +
+
+
diff --git a/src/views/login_cloud.ejs b/src/views/login_cloud.ejs index b89c626..a398709 100644 --- a/src/views/login_cloud.ejs +++ b/src/views/login_cloud.ejs @@ -15,14 +15,14 @@ - +