From e8289a6cbd048c943cd2d8606cb7ab439ef929b6 Mon Sep 17 00:00:00 2001 From: Coll147 Date: Wed, 21 Jan 2026 08:58:55 +0100 Subject: [PATCH 01/19] i dont remember what i did --- backend/server.js | 22 ++++++++----- package-lock.json | 81 +++++++++++++++++++++++++++++++++++++++++++++++ package.json | 1 + views/main.ejs | 0 4 files changed, 96 insertions(+), 8 deletions(-) create mode 100644 views/main.ejs diff --git a/backend/server.js b/backend/server.js index e28517e..9097f38 100644 --- a/backend/server.js +++ b/backend/server.js @@ -3,18 +3,24 @@ const crypto = require('crypto'); const fs = require("fs"); const path = require("path"); -const app = express(); +const webserver = express(); const PORT = process.env.PORT; -app.use(express.json()); -app.use(express.static(path.join(__dirname, "../public"))); +webserver.use(express.json()); + + +// Ruta inicial +webserver.use(express.static("public")); + +// Views +webserver.set("view engine", "ejs"); // Control de JSON -app.get("/api/devices", (req, res) => { +webserver.get("/api/devices", (req, res) => { const data = fs.readFileSync("./server/data.json", "utf-8"); res.json(JSON.parse(data).usuarios); }); -app.post("/api/devices", (req, res) => { +webserver.post("/api/devices", (req, res) => { const nuevoUsuario = req.body; const data = JSON.parse(fs.readFileSync("./server/data.json", "utf-8")); @@ -25,7 +31,7 @@ app.post("/api/devices", (req, res) => { }); // Generar hash -app.post('/api/hash', (req, res) => { +webserver.post('/api/hash', (req, res) => { const { text } = req.body; if (!text) return res.status(400).json({ error: "no hay valor" }); @@ -34,7 +40,7 @@ app.post('/api/hash', (req, res) => { }); -app.listen(PORT, () => { +webserver.listen(PORT, () => { console.log(`Servidor corriendo en http://localhost:${PORT}`); console.log('ready'); -}); +}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 63cbad3..d90c749 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "1.0.0", "license": "ISC", "dependencies": { + "ejs": "^4.0.1", "express": "^5.2.1", "mysql2": "^3.16.0" } @@ -26,6 +27,12 @@ "node": ">= 0.6" } }, + "node_modules/async": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", + "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==", + "license": "MIT" + }, "node_modules/aws-ssl-profiles": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", @@ -35,6 +42,12 @@ "node": ">= 6.0.0" } }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "license": "MIT" + }, "node_modules/body-parser": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-2.2.2.tgz", @@ -59,6 +72,15 @@ "url": "https://opencollective.com/express" } }, + "node_modules/brace-expansion": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, "node_modules/bytes": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", @@ -192,6 +214,21 @@ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "license": "MIT" }, + "node_modules/ejs": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-4.0.1.tgz", + "integrity": "sha512-krvQtxc0btwSm/nvnt1UpnaFDFVJpJ0fdckmALpCgShsr/iGYHTnJiUliZTgmzq/UxTX33TtOQVKaNigMQp/6Q==", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.9.1" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.12.18" + } + }, "node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", @@ -289,6 +326,15 @@ "url": "https://opencollective.com/express" } }, + "node_modules/filelist": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", + "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", + "license": "Apache-2.0", + "dependencies": { + "minimatch": "^5.0.1" + } + }, "node_modules/finalhandler": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-2.1.1.tgz", @@ -482,6 +528,23 @@ "integrity": "sha512-Ks/IoX00TtClbGQr4TWXemAnktAQvYB7HzcCxDGqEZU6oCmb2INHuOoKxbtR+HFkmYWBKv/dOZtGRiAjDhj92g==", "license": "MIT" }, + "node_modules/jake": { + "version": "10.9.4", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.9.4.tgz", + "integrity": "sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==", + "license": "Apache-2.0", + "dependencies": { + "async": "^3.2.6", + "filelist": "^1.0.4", + "picocolors": "^1.1.1" + }, + "bin": { + "jake": "bin/cli.js" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/long": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", @@ -558,6 +621,18 @@ "url": "https://opencollective.com/express" } }, + "node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", @@ -657,6 +732,12 @@ "url": "https://opencollective.com/express" } }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", diff --git a/package.json b/package.json index b4bdcd9..a82d526 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ }, "homepage": "https://github.com/Coll147/OpenFi#readme", "dependencies": { + "ejs": "^4.0.1", "express": "^5.2.1", "mysql2": "^3.16.0" } diff --git a/views/main.ejs b/views/main.ejs new file mode 100644 index 0000000..e69de29 From dc65d5875aa5ad3395fc8d68974c320f4f32cdcd Mon Sep 17 00:00:00 2001 From: Coll147 Date: Wed, 21 Jan 2026 10:15:42 +0100 Subject: [PATCH 02/19] make ejs work --- backend/routes.js | 6 +++++ backend/server.js | 46 ----------------------------------- package-lock.json | 28 ++++++++++++++++++++++ package.json | 1 + server.js | 50 +++++++++++++++++++++++++++++++++++++++ start.js | 2 +- views/main.ejs | 19 +++++++++++++++ views/pages/dashboard.ejs | 5 ++++ views/partials/navbar.ejs | 7 ++++++ 9 files changed, 117 insertions(+), 47 deletions(-) create mode 100644 backend/routes.js delete mode 100644 backend/server.js create mode 100644 server.js create mode 100644 views/pages/dashboard.ejs create mode 100644 views/partials/navbar.ejs diff --git a/backend/routes.js b/backend/routes.js new file mode 100644 index 0000000..10b6a2f --- /dev/null +++ b/backend/routes.js @@ -0,0 +1,6 @@ +app.get('/dashboard', (req, res) => { + res.render('dashboard', { + title: "Dashboard", + publicIP: "192.168.1.1" + }); +}); diff --git a/backend/server.js b/backend/server.js deleted file mode 100644 index 9097f38..0000000 --- a/backend/server.js +++ /dev/null @@ -1,46 +0,0 @@ -const express = require("express"); -const crypto = require('crypto'); -const fs = require("fs"); -const path = require("path"); - -const webserver = express(); -const PORT = process.env.PORT; - -webserver.use(express.json()); - - -// Ruta inicial -webserver.use(express.static("public")); - -// Views -webserver.set("view engine", "ejs"); - -// Control de JSON -webserver.get("/api/devices", (req, res) => { - const data = fs.readFileSync("./server/data.json", "utf-8"); - res.json(JSON.parse(data).usuarios); -}); -webserver.post("/api/devices", (req, res) => { - const nuevoUsuario = req.body; - - const data = JSON.parse(fs.readFileSync("./server/data.json", "utf-8")); - data.usuarios.push(nuevoUsuario); - - fs.writeFileSync("./server/data.json", JSON.stringify(data, null, 2)); - res.json({ mensaje: "Usuario guardado" }); -}); - -// Generar hash -webserver.post('/api/hash', (req, res) => { - const { text } = req.body; - if (!text) return res.status(400).json({ error: "no hay valor" }); - - const hash = crypto.createHash('sha256').update(text).digest('hex'); - res.json({ hash }); -}); - - -webserver.listen(PORT, () => { - console.log(`Servidor corriendo en http://localhost:${PORT}`); - console.log('ready'); -}); \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index d90c749..d93b49a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10,6 +10,7 @@ "license": "ISC", "dependencies": { "ejs": "^4.0.1", + "ejs-mate": "^4.0.0", "express": "^5.2.1", "mysql2": "^3.16.0" } @@ -229,6 +230,33 @@ "node": ">=0.12.18" } }, + "node_modules/ejs-mate": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/ejs-mate/-/ejs-mate-4.0.0.tgz", + "integrity": "sha512-AYRN19jgrTHIuzbe2mQU5SEmTw6Ja/lVo+e9NKLLsCMdaKrk7D/SFr3QroiGnbDAi6moBezBSAdYQoyLbYzfuA==", + "license": "MIT", + "dependencies": { + "ejs": "^3.1.7" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ejs-mate/node_modules/ejs": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.10.tgz", + "integrity": "sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==", + "license": "Apache-2.0", + "dependencies": { + "jake": "^10.8.5" + }, + "bin": { + "ejs": "bin/cli.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/encodeurl": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", diff --git a/package.json b/package.json index a82d526..578aed7 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "homepage": "https://github.com/Coll147/OpenFi#readme", "dependencies": { "ejs": "^4.0.1", + "ejs-mate": "^4.0.0", "express": "^5.2.1", "mysql2": "^3.16.0" } diff --git a/server.js b/server.js new file mode 100644 index 0000000..6959647 --- /dev/null +++ b/server.js @@ -0,0 +1,50 @@ +const express = require("express"); +const engine = require('ejs-mate'); + +const crypto = require("crypto"); +const fs = require("fs"); +const path = require("path"); + + + +const webserver = express(); +const PORT = process.env.PORT || 3000; + +webserver.use(express.json()); + +// Static files +webserver.use(express.static("public")); + +// Views & EJS +webserver.engine('ejs', engine); +webserver.set('views', path.join(__dirname, 'views')); +webserver.set('view engine', 'ejs'); + + +// API +webserver.post('/api/hash', (req, res) => { + const { text } = req.body; + if (!text) return res.status(400).json({ error: "no hay valor" }); + + const hash = crypto.createHash('sha256').update(text).digest('hex'); + res.json({ hash }); +}); + + +// Web routes +webserver.get('/', (req, res) => { + res.redirect('/dashboard'); +}); + +webserver.get("/dashboard", (req, res) => { + res.render("pages/dashboard", { + title: "Dashboard", + publicIP: "192.168.1.1" + }); +}); + + +// INICIO SERVIDOR +webserver.listen(PORT, () => { + console.log(`Servidor corriendo en http://localhost:${PORT}`); +}); \ No newline at end of file diff --git a/start.js b/start.js index 91ae501..cda9877 100644 --- a/start.js +++ b/start.js @@ -1,4 +1,4 @@ const port = process.argv[2] || 3000; process.env.PORT = port; -require('./backend/server.js'); \ No newline at end of file +require('./server'); \ No newline at end of file diff --git a/views/main.ejs b/views/main.ejs index e69de29..db25922 100644 --- a/views/main.ejs +++ b/views/main.ejs @@ -0,0 +1,19 @@ + + + + + <%= title %> + + + + + + <%- include ('partials/navbar') %> + + +
+ <%- body -%> +
+ + + diff --git a/views/pages/dashboard.ejs b/views/pages/dashboard.ejs new file mode 100644 index 0000000..5142b04 --- /dev/null +++ b/views/pages/dashboard.ejs @@ -0,0 +1,5 @@ +<% layout('main') -%> + + +

Dashboard

+

Public IP: <%= publicIP %>

\ No newline at end of file diff --git a/views/partials/navbar.ejs b/views/partials/navbar.ejs new file mode 100644 index 0000000..5d08425 --- /dev/null +++ b/views/partials/navbar.ejs @@ -0,0 +1,7 @@ + From 1f6ff6da8d13ecbfd5a4d1e0054b999ec519408d Mon Sep 17 00:00:00 2001 From: Coll147 Date: Wed, 21 Jan 2026 10:20:43 +0100 Subject: [PATCH 03/19] move old html in favor of EJS --- {public => legacy-files}/dashboard/dashboard.html | 0 {public => legacy-files}/dashboard/devices.html | 0 {public => legacy-files}/dashboard/information.html | 0 {public => legacy-files}/dashboard/logs.html | 0 {public => legacy-files}/dashboard/network.html | 0 {public => legacy-files}/dashboard/settings.html | 0 {public => legacy-files}/dashboard/topology.html | 0 {public => legacy-files}/dashboard/wifi.html | 0 {public => legacy-files}/index.html | 0 {public => legacy-files}/login.html | 0 {public => legacy-files}/main.html | 0 11 files changed, 0 insertions(+), 0 deletions(-) rename {public => legacy-files}/dashboard/dashboard.html (100%) rename {public => legacy-files}/dashboard/devices.html (100%) rename {public => legacy-files}/dashboard/information.html (100%) rename {public => legacy-files}/dashboard/logs.html (100%) rename {public => legacy-files}/dashboard/network.html (100%) rename {public => legacy-files}/dashboard/settings.html (100%) rename {public => legacy-files}/dashboard/topology.html (100%) rename {public => legacy-files}/dashboard/wifi.html (100%) rename {public => legacy-files}/index.html (100%) rename {public => legacy-files}/login.html (100%) rename {public => legacy-files}/main.html (100%) diff --git a/public/dashboard/dashboard.html b/legacy-files/dashboard/dashboard.html similarity index 100% rename from public/dashboard/dashboard.html rename to legacy-files/dashboard/dashboard.html diff --git a/public/dashboard/devices.html b/legacy-files/dashboard/devices.html similarity index 100% rename from public/dashboard/devices.html rename to legacy-files/dashboard/devices.html diff --git a/public/dashboard/information.html b/legacy-files/dashboard/information.html similarity index 100% rename from public/dashboard/information.html rename to legacy-files/dashboard/information.html diff --git a/public/dashboard/logs.html b/legacy-files/dashboard/logs.html similarity index 100% rename from public/dashboard/logs.html rename to legacy-files/dashboard/logs.html diff --git a/public/dashboard/network.html b/legacy-files/dashboard/network.html similarity index 100% rename from public/dashboard/network.html rename to legacy-files/dashboard/network.html diff --git a/public/dashboard/settings.html b/legacy-files/dashboard/settings.html similarity index 100% rename from public/dashboard/settings.html rename to legacy-files/dashboard/settings.html diff --git a/public/dashboard/topology.html b/legacy-files/dashboard/topology.html similarity index 100% rename from public/dashboard/topology.html rename to legacy-files/dashboard/topology.html diff --git a/public/dashboard/wifi.html b/legacy-files/dashboard/wifi.html similarity index 100% rename from public/dashboard/wifi.html rename to legacy-files/dashboard/wifi.html diff --git a/public/index.html b/legacy-files/index.html similarity index 100% rename from public/index.html rename to legacy-files/index.html diff --git a/public/login.html b/legacy-files/login.html similarity index 100% rename from public/login.html rename to legacy-files/login.html diff --git a/public/main.html b/legacy-files/main.html similarity index 100% rename from public/main.html rename to legacy-files/main.html From 0ad1569970c50886f2cca3fd81e786b35dfe1f8f Mon Sep 17 00:00:00 2001 From: Coll147 Date: Wed, 21 Jan 2026 10:31:51 +0100 Subject: [PATCH 04/19] initial start for ejs + WE ARE BACK but in E JS --- public/styles/main-default.css | 4 +- views/main.ejs | 12 +++++- views/pages/dashboard.ejs | 70 +++++++++++++++++++++++++++++++++- views/partials/navbar.ejs | 23 ++++++++--- 4 files changed, 98 insertions(+), 11 deletions(-) diff --git a/public/styles/main-default.css b/public/styles/main-default.css index 781f6de..7232ad0 100644 --- a/public/styles/main-default.css +++ b/public/styles/main-default.css @@ -1,5 +1,7 @@ /* themes config on actions.js */ + + /* ===== Estilo general ===== */ * { box-sizing: border-box; @@ -89,7 +91,7 @@ body { display: flex; flex-direction: column; margin: 20px; - height: 100%; + height: calc(100% - 40px); } .main_header { diff --git a/views/main.ejs b/views/main.ejs index db25922..fa95081 100644 --- a/views/main.ejs +++ b/views/main.ejs @@ -3,9 +3,17 @@ <%= title %> - + + - + <%- include ('partials/navbar') %> diff --git a/views/pages/dashboard.ejs b/views/pages/dashboard.ejs index 5142b04..cd22093 100644 --- a/views/pages/dashboard.ejs +++ b/views/pages/dashboard.ejs @@ -1,5 +1,71 @@ <% layout('main') -%> -

Dashboard

-

Public IP: <%= publicIP %>

\ No newline at end of file +
+
+

Dashboard

+
+ +
+ +
+
+

Internet

+

[Online]

+

Public IP: 192.168.1.1

+

Latency: 10ms

+

Download: 150Mbps

+

Upload: 50Mbps

+
+ +
+

Devices

+

[All Working]

+

APs: 3

+

Switches: 2

+

Gateways: 1

+
+ +
+

Clients

+

[Optimal Experience]

+

Wireless: 30

+

Wired: 15

+
+
+ +
+
+

Throughput

+
+ placeholder +
+
+ +
+

Recent Alerts

+
+ Update available for <device> + 2 minutes ago +
+
+ High CPU usage on <gateway> + 12 minutes ago +
+
+ Internet connection restored + 14 minutes ago +
+
+ New login from 192.168.5.23 + 20 minutes ago +
+
+ Internet connection lost + 25 minutes ago +
+
+
+ +
+
\ No newline at end of file diff --git a/views/partials/navbar.ejs b/views/partials/navbar.ejs index 5d08425..5444ce3 100644 --- a/views/partials/navbar.ejs +++ b/views/partials/navbar.ejs @@ -1,7 +1,18 @@ +
+ + +
+ + \ No newline at end of file From 1789cbe4067a195898eef8b4edaa019096dacfb0 Mon Sep 17 00:00:00 2001 From: Coll147 Date: Wed, 21 Jan 2026 10:38:18 +0100 Subject: [PATCH 05/19] initial html migration to ejs --- views/main.ejs | 15 ++++++++ views/pages/devices.ejs | 43 ++++++++++++++++++++++ views/pages/information.ejs | 34 +++++++++++++++++ views/pages/logs.ejs | 46 +++++++++++++++++++++++ views/pages/network.ejs | 28 ++++++++++++++ views/pages/settings.ejs | 73 +++++++++++++++++++++++++++++++++++++ views/pages/topology.ejs | 17 +++++++++ views/pages/wifi.ejs | 17 +++++++++ 8 files changed, 273 insertions(+) create mode 100644 views/pages/devices.ejs create mode 100644 views/pages/information.ejs create mode 100644 views/pages/logs.ejs create mode 100644 views/pages/network.ejs create mode 100644 views/pages/settings.ejs create mode 100644 views/pages/topology.ejs create mode 100644 views/pages/wifi.ejs diff --git a/views/main.ejs b/views/main.ejs index fa95081..04ea905 100644 --- a/views/main.ejs +++ b/views/main.ejs @@ -23,5 +23,20 @@ <%- body -%> + + diff --git a/views/pages/devices.ejs b/views/pages/devices.ejs new file mode 100644 index 0000000..cb615ad --- /dev/null +++ b/views/pages/devices.ejs @@ -0,0 +1,43 @@ +
+
+

Devices

+ +
+ +
+
+ + + + + + + + + + + + + + + +
DEVICEIP ADDRESSSTATUSUPTIMEMODELVERSIONACTIONS
+
+ + +
+ +
\ No newline at end of file diff --git a/views/pages/information.ejs b/views/pages/information.ejs new file mode 100644 index 0000000..c063e4a --- /dev/null +++ b/views/pages/information.ejs @@ -0,0 +1,34 @@ +
+
+

Information

+
+ +
+
+ +
+
+

Links

+

Github: coll147/OpenFi

+

Discord: Invite Link

+

Contact: contact@coll147.com

+
+
+ +
+
+

Latest Updates

+
+ Author: +
+
+ Commit: +
+
+ Info:

+
+
+
+ +
+
\ No newline at end of file diff --git a/views/pages/logs.ejs b/views/pages/logs.ejs new file mode 100644 index 0000000..c79b226 --- /dev/null +++ b/views/pages/logs.ejs @@ -0,0 +1,46 @@ +
+ +
+

Logs

+ + +
+ +
+ +
+ + + + + + + + + + + + + + + + +
EventDeviceTime RiskInformation
+
+ + + +
+
\ No newline at end of file diff --git a/views/pages/network.ejs b/views/pages/network.ejs new file mode 100644 index 0000000..be0f2e7 --- /dev/null +++ b/views/pages/network.ejs @@ -0,0 +1,28 @@ +
+
+

Network

+
+ +
+
+ + + + + + + + + + + + +
NameRouterSubnetConcesions
+
+ + +
+ +
\ No newline at end of file diff --git a/views/pages/settings.ejs b/views/pages/settings.ejs new file mode 100644 index 0000000..3279f25 --- /dev/null +++ b/views/pages/settings.ejs @@ -0,0 +1,73 @@ +
+ +
+

Settings

+
+ +
+
+ +
+
+

Interface

+
+

Language:

+ +
+
+

Background:

+ +
+
+

Theme:

+ +
+
+ +
+

Account

+
+ + +
+
+ mystery
+ + +
+
+
+ + +
+
+ + +
+
+ +
+

Profile

+
+

+
+
+ + + +
+
+ +
+
+
+
\ No newline at end of file diff --git a/views/pages/topology.ejs b/views/pages/topology.ejs new file mode 100644 index 0000000..768343e --- /dev/null +++ b/views/pages/topology.ejs @@ -0,0 +1,17 @@ +
+
+

Topology

+
+ +
+
+ por hacer +
+ + +
+ +
\ No newline at end of file diff --git a/views/pages/wifi.ejs b/views/pages/wifi.ejs new file mode 100644 index 0000000..6739bca --- /dev/null +++ b/views/pages/wifi.ejs @@ -0,0 +1,17 @@ +
+
+

Wi-Fi

+
+ +
+
+ por hacer +
+ + +
+ +
\ No newline at end of file From e49c233c9184f64d21f7e74606bc9b43b1b9b838 Mon Sep 17 00:00:00 2001 From: Coll147 Date: Wed, 21 Jan 2026 10:47:55 +0100 Subject: [PATCH 06/19] move old js files --- {public => legacy-files}/scripts/actions.js | 0 .../scripts/navigation.js | 0 .../scripts/pages/devices.js | 0 .../scripts/pages/information.js | 0 .../scripts/pages/login.js | 0 .../scripts/pages/logs.js | 0 .../scripts/pages/network.js | 0 .../scripts/pages/settings.js | 0 server.js | 36 ++++++++++++++++++- 9 files changed, 35 insertions(+), 1 deletion(-) rename {public => legacy-files}/scripts/actions.js (100%) rename {public => legacy-files}/scripts/navigation.js (100%) rename {public => legacy-files}/scripts/pages/devices.js (100%) rename {public => legacy-files}/scripts/pages/information.js (100%) rename {public => legacy-files}/scripts/pages/login.js (100%) rename {public => legacy-files}/scripts/pages/logs.js (100%) rename {public => legacy-files}/scripts/pages/network.js (100%) rename {public => legacy-files}/scripts/pages/settings.js (100%) diff --git a/public/scripts/actions.js b/legacy-files/scripts/actions.js similarity index 100% rename from public/scripts/actions.js rename to legacy-files/scripts/actions.js diff --git a/public/scripts/navigation.js b/legacy-files/scripts/navigation.js similarity index 100% rename from public/scripts/navigation.js rename to legacy-files/scripts/navigation.js diff --git a/public/scripts/pages/devices.js b/legacy-files/scripts/pages/devices.js similarity index 100% rename from public/scripts/pages/devices.js rename to legacy-files/scripts/pages/devices.js diff --git a/public/scripts/pages/information.js b/legacy-files/scripts/pages/information.js similarity index 100% rename from public/scripts/pages/information.js rename to legacy-files/scripts/pages/information.js diff --git a/public/scripts/pages/login.js b/legacy-files/scripts/pages/login.js similarity index 100% rename from public/scripts/pages/login.js rename to legacy-files/scripts/pages/login.js diff --git a/public/scripts/pages/logs.js b/legacy-files/scripts/pages/logs.js similarity index 100% rename from public/scripts/pages/logs.js rename to legacy-files/scripts/pages/logs.js diff --git a/public/scripts/pages/network.js b/legacy-files/scripts/pages/network.js similarity index 100% rename from public/scripts/pages/network.js rename to legacy-files/scripts/pages/network.js diff --git a/public/scripts/pages/settings.js b/legacy-files/scripts/pages/settings.js similarity index 100% rename from public/scripts/pages/settings.js rename to legacy-files/scripts/pages/settings.js diff --git a/server.js b/server.js index 6959647..39aae33 100644 --- a/server.js +++ b/server.js @@ -42,7 +42,41 @@ webserver.get("/dashboard", (req, res) => { publicIP: "192.168.1.1" }); }); - +webserver.get("/topology", (req, res) => { + res.render("pages/topology", { + title: "topology", + }); +}); +webserver.get("/devices", (req, res) => { + res.render("pages/devices", { + title: "devices", + }); +}); +webserver.get("/logs", (req, res) => { + res.render("pages/logs", { + title: "logs", + }); +}); +webserver.get("/wifi", (req, res) => { + res.render("pages/wifi", { + title: "wifi", + }); +}); +webserver.get("/network", (req, res) => { + res.render("pages/network", { + title: "network", + }); +}); +webserver.get("/settings", (req, res) => { + res.render("pages/settings", { + title: "settings", + }); +}); +webserver.get("/information", (req, res) => { + res.render("pages/information", { + title: "information", + }); +}); // INICIO SERVIDOR webserver.listen(PORT, () => { From 2770601ab8b4f38cce2ae5ce035cd310f978177f Mon Sep 17 00:00:00 2001 From: Coll147 Date: Wed, 21 Jan 2026 11:01:41 +0100 Subject: [PATCH 07/19] add template to ejs --- public/scripts/navigation.js | 0 views/main.ejs | 11 ++--------- views/pages/devices.ejs | 3 +++ views/pages/information.ejs | 3 +++ views/pages/logs.ejs | 3 +++ views/pages/network.ejs | 3 +++ views/pages/settings.ejs | 3 +++ views/pages/topology.ejs | 3 +++ views/pages/wifi.ejs | 3 +++ 9 files changed, 23 insertions(+), 9 deletions(-) create mode 100644 public/scripts/navigation.js diff --git a/public/scripts/navigation.js b/public/scripts/navigation.js new file mode 100644 index 0000000..e69de29 diff --git a/views/main.ejs b/views/main.ejs index 04ea905..6ee8ddd 100644 --- a/views/main.ejs +++ b/views/main.ejs @@ -19,23 +19,16 @@ <%- include ('partials/navbar') %> -
+
<%- body -%>
diff --git a/views/pages/devices.ejs b/views/pages/devices.ejs index cb615ad..73d5928 100644 --- a/views/pages/devices.ejs +++ b/views/pages/devices.ejs @@ -1,3 +1,6 @@ +<% layout('main') -%> + +

Devices

diff --git a/views/pages/information.ejs b/views/pages/information.ejs index c063e4a..d489fe9 100644 --- a/views/pages/information.ejs +++ b/views/pages/information.ejs @@ -1,3 +1,6 @@ +<% layout('main') -%> + +

Information

diff --git a/views/pages/logs.ejs b/views/pages/logs.ejs index c79b226..949902c 100644 --- a/views/pages/logs.ejs +++ b/views/pages/logs.ejs @@ -1,3 +1,6 @@ +<% layout('main') -%> + +
diff --git a/views/pages/network.ejs b/views/pages/network.ejs index be0f2e7..4ae4cf0 100644 --- a/views/pages/network.ejs +++ b/views/pages/network.ejs @@ -1,3 +1,6 @@ +<% layout('main') -%> + +

Network

diff --git a/views/pages/settings.ejs b/views/pages/settings.ejs index 3279f25..332541b 100644 --- a/views/pages/settings.ejs +++ b/views/pages/settings.ejs @@ -1,3 +1,6 @@ +<% layout('main') -%> + +
diff --git a/views/pages/topology.ejs b/views/pages/topology.ejs index 768343e..8f7486f 100644 --- a/views/pages/topology.ejs +++ b/views/pages/topology.ejs @@ -1,3 +1,6 @@ +<% layout('main') -%> + +

Topology

diff --git a/views/pages/wifi.ejs b/views/pages/wifi.ejs index 6739bca..c92c3c4 100644 --- a/views/pages/wifi.ejs +++ b/views/pages/wifi.ejs @@ -1,3 +1,6 @@ +<% layout('main') -%> + +

Wi-Fi

From c2b089e09194bc5d33ce878c9a93c7114c5bd34c Mon Sep 17 00:00:00 2001 From: Coll147 Date: Wed, 21 Jan 2026 11:53:27 +0100 Subject: [PATCH 08/19] edit titles --- server.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/server.js b/server.js index 39aae33..8c19d72 100644 --- a/server.js +++ b/server.js @@ -32,49 +32,52 @@ webserver.post('/api/hash', (req, res) => { // Web routes -webserver.get('/', (req, res) => { - res.redirect('/dashboard'); +webserver.get("/", (req, res) => { + res.render("dashboard", { + title: "OpenFi", + publicIP: "192.168.1.1" + }); }); webserver.get("/dashboard", (req, res) => { res.render("pages/dashboard", { - title: "Dashboard", + title: "OpenFi - Dashboard", publicIP: "192.168.1.1" }); }); webserver.get("/topology", (req, res) => { res.render("pages/topology", { - title: "topology", + title: "OpenFi - Topology", }); }); webserver.get("/devices", (req, res) => { res.render("pages/devices", { - title: "devices", + title: "OpenFi - Devices", }); }); webserver.get("/logs", (req, res) => { res.render("pages/logs", { - title: "logs", + title: "OpenFi - Logs", }); }); webserver.get("/wifi", (req, res) => { res.render("pages/wifi", { - title: "wifi", + title: "OpenFi - Wifi", }); }); webserver.get("/network", (req, res) => { res.render("pages/network", { - title: "network", + title: "OpenFi - Network", }); }); webserver.get("/settings", (req, res) => { res.render("pages/settings", { - title: "settings", + title: "OpenFi - Settings", }); }); webserver.get("/information", (req, res) => { res.render("pages/information", { - title: "information", + title: "OpenFi - Information", }); }); From 2c37c1c016a75db98c145de8ebd451b3263a2c9f Mon Sep 17 00:00:00 2001 From: Coll147 Date: Wed, 21 Jan 2026 11:53:35 +0100 Subject: [PATCH 09/19] add favicon --- views/main.ejs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/views/main.ejs b/views/main.ejs index 6ee8ddd..73aa420 100644 --- a/views/main.ejs +++ b/views/main.ejs @@ -4,6 +4,7 @@ <%= title %> + From 189b094a1c2d2897a333160401ae796dc0cd177d Mon Sep 17 00:00:00 2001 From: Coll147 Date: Wed, 21 Jan 2026 11:53:47 +0100 Subject: [PATCH 10/19] identation --- views/pages/devices.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/pages/devices.ejs b/views/pages/devices.ejs index 73d5928..8878bf0 100644 --- a/views/pages/devices.ejs +++ b/views/pages/devices.ejs @@ -43,4 +43,4 @@
-
\ No newline at end of file +
\ No newline at end of file From 342f3535affb9ac5b2899493531ce065290ca121 Mon Sep 17 00:00:00 2001 From: Coll147 Date: Wed, 21 Jan 2026 11:53:57 +0100 Subject: [PATCH 11/19] remove active class --- views/partials/navbar.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/partials/navbar.ejs b/views/partials/navbar.ejs index 5444ce3..80acb8e 100644 --- a/views/partials/navbar.ejs +++ b/views/partials/navbar.ejs @@ -2,7 +2,7 @@