From e2d1cce1bbb95cd7879ba36db47e7411a6b8a735 Mon Sep 17 00:00:00 2001 From: Jm Casler Date: Fri, 7 Jan 2022 20:20:47 -0800 Subject: [PATCH] Start of web admin --- src/mesh/http/ContentHandler.cpp | 31 +++++++++++++++++++++++-------- src/mesh/http/ContentHandler.h | 1 + 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/mesh/http/ContentHandler.cpp b/src/mesh/http/ContentHandler.cpp index 4799494ef..bd7e3d51e 100644 --- a/src/mesh/http/ContentHandler.cpp +++ b/src/mesh/http/ContentHandler.cpp @@ -124,9 +124,12 @@ void registerHandlers(HTTPServer *insecureServer, HTTPSServer *secureServer) ResourceNode *nodeHotspotApple = new ResourceNode("/hotspot-detect.html", "GET", &handleHotspot); ResourceNode *nodeHotspotAndroid = new ResourceNode("/generate_204", "GET", &handleHotspot); - ResourceNode *nodeSPIFFS = new ResourceNode("/spiffs", "GET", &handleSPIFFS); - ResourceNode *nodeUpdateSPIFFS = new ResourceNode("/spiffs/update", "POST", &handleUpdateSPIFFS); - ResourceNode *nodeDeleteSPIFFS = new ResourceNode("/spiffs/delete", "GET", &handleDeleteSPIFFSContent); + + ResourceNode *nodeAdmin = new ResourceNode("/admin", "GET", &handleAdmin); + // ResourceNode *nodeAdminSettings = new ResourceNode("/admin", "GET", &handleAdminSettings); + ResourceNode *nodeSPIFFS = new ResourceNode("/admin/spiffs", "GET", &handleSPIFFS); + ResourceNode *nodeUpdateSPIFFS = new ResourceNode("/admin/spiffs/update", "POST", &handleUpdateSPIFFS); + ResourceNode *nodeDeleteSPIFFS = new ResourceNode("/admin/spiffs/delete", "GET", &handleDeleteSPIFFSContent); ResourceNode *nodeRestart = new ResourceNode("/restart", "POST", &handleRestart); ResourceNode *nodeFormUpload = new ResourceNode("/upload", "POST", &handleFormUpload); @@ -155,6 +158,8 @@ void registerHandlers(HTTPServer *insecureServer, HTTPSServer *secureServer) secureServer->registerNode(nodeUpdateSPIFFS); secureServer->registerNode(nodeDeleteSPIFFS); secureServer->registerNode(nodeSPIFFS); + secureServer->registerNode(nodeAdmin); + secureServer->registerNode(nodeAdminSettings); secureServer->registerNode(nodeRoot); // This has to be last // Insecure nodes @@ -173,6 +178,8 @@ void registerHandlers(HTTPServer *insecureServer, HTTPSServer *secureServer) insecureServer->registerNode(nodeUpdateSPIFFS); insecureServer->registerNode(nodeDeleteSPIFFS); insecureServer->registerNode(nodeSPIFFS); + insecureServer->registerNode(nodeAdmin); + insecureServer->registerNode(nodeAdminSettings); insecureServer->registerNode(nodeRoot); // This has to be last } @@ -376,10 +383,7 @@ void handleStatic(HTTPRequest *req, HTTPResponse *res) DEBUG_MSG("File not available - %s\n", filenameGzip.c_str()); res->println( "Web server is running.

The content you are looking for can't be found. Please see: FAQ.

Experimental " - "Web Content OTA Update -- Click " - "this just once and wait. Be patient!
"); + "href=https://meshtastic.org/docs/getting-started/faq#wifi--web-browser>FAQ.

admin"); } else { res->setHeader("Content-Encoding", "gzip"); } @@ -800,13 +804,24 @@ void handleDeleteSPIFFSContent(HTTPRequest *req, HTTPResponse *res) } } +void handleAdmin(HTTPRequest *req, HTTPResponse *res) +{ + res->setHeader("Content-Type", "text/html"); + res->setHeader("Access-Control-Allow-Origin", "*"); + res->setHeader("Access-Control-Allow-Methods", "GET"); + + res->println("Manage Web Content
\n"); + res->println("Device Report
\n"); +} + + void handleSPIFFS(HTTPRequest *req, HTTPResponse *res) { res->setHeader("Content-Type", "text/html"); res->setHeader("Access-Control-Allow-Origin", "*"); res->setHeader("Access-Control-Allow-Methods", "GET"); - res->println("Delete Web Content

println("Delete Web Content

Be patient!"); } diff --git a/src/mesh/http/ContentHandler.h b/src/mesh/http/ContentHandler.h index 4dfb86944..811102748 100644 --- a/src/mesh/http/ContentHandler.h +++ b/src/mesh/http/ContentHandler.h @@ -18,6 +18,7 @@ void handleReport(HTTPRequest *req, HTTPResponse *res); void handleUpdateSPIFFS(HTTPRequest *req, HTTPResponse *res); void handleDeleteSPIFFSContent(HTTPRequest *req, HTTPResponse *res); void handleSPIFFS(HTTPRequest *req, HTTPResponse *res); +void handleAdmin(HTTPRequest *req, HTTPResponse *res); // Interface to the PhoneAPI to access the protobufs with messages