diff --git a/src/httpserver/http_fns.c b/src/httpserver/http_fns.c
index 7b0ad36cf..c90d03a05 100644
--- a/src/httpserver/http_fns.c
+++ b/src/httpserver/http_fns.c
@@ -105,6 +105,7 @@ int http_fn_testmsg(http_request_t *request) {
return 0;
}
+
int http_fn_index(http_request_t *request) {
int j, i;
char tmpA[128];
@@ -117,9 +118,7 @@ int http_fn_index(http_request_t *request) {
// use ?state URL parameter to only request current state
if(!http_getArg(request->url, "state", tmpA, sizeof(tmpA))) {
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- //poststr(request,"");
- HTTP_AddHeader(request);
+ http_html_start(request, NULL);
poststr(request, "
"); // replaceable content follows
}
@@ -486,18 +485,18 @@ int http_fn_index(http_request_t *request) {
poststr(request, "
"); // end id=statediv
// Shared UI elements
- poststr(request,"");
+ poststr(request, "");
- poststr(request," ");
+ poststr(request, "");
- poststr(request," ");
- poststr(request,"");
+ poststr(request, " ");
+ poststr(request, "");
- poststr(request,htmlRefresh);
- HTTP_AddBuildFooter(request);
+ poststr(request, htmlFooterRefreshLink);
+ http_html_end(request);
// refresh status section every 3 seconds
poststr(
@@ -525,8 +524,6 @@ int http_fn_index(http_request_t *request) {
"window.addEventListener('load', showState);"
""
);
-
- poststr(request,htmlEnd);
}
poststr(request, NULL);
@@ -535,12 +532,10 @@ int http_fn_index(http_request_t *request) {
int http_fn_about(http_request_t *request){
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "About");
poststr(request,"Open source firmware for BK7231N, BK7231T, XR809 and BL602 by OpenSHWProjects ");
- poststr(request,htmlReturnToMenu);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
+ poststr(request,htmlFooterReturnToMenu);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -551,8 +546,7 @@ int http_fn_about(http_request_t *request){
int http_fn_cfg_mqtt(http_request_t *request) {
int i;
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "MQTT");
poststr(request," Use this to connect to your MQTT ");
poststr(request," ");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -590,8 +583,7 @@ int http_fn_cfg_mqtt(http_request_t *request) {
int http_fn_cfg_mqtt_set(http_request_t *request) {
char tmpA[128];
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Saving MQTT");
if(http_getArg(request->url,"host",tmpA,sizeof(tmpA))) {
CFG_SetMQTTHost(tmpA);
@@ -616,21 +608,15 @@ int http_fn_cfg_mqtt_set(http_request_t *request) {
poststr(request," ");
poststr(request,"Return to MQTT settings ");
poststr(request," ");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
-
-
-
int http_fn_cfg_webapp(http_request_t *request) {
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Set Webapp");
poststr(request," Use this to set the URL of the Webapp ");
poststr(request," ");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -649,8 +634,7 @@ int http_fn_cfg_webapp(http_request_t *request) {
int http_fn_cfg_webapp_set(http_request_t *request) {
char tmpA[128];
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Saving Webapp");
if(http_getArg(request->url,"url",tmpA,sizeof(tmpA))) {
if(CFG_SetWebappRoot(tmpA)) {
@@ -663,9 +647,8 @@ int http_fn_cfg_webapp_set(http_request_t *request) {
}
poststr(request," ");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -681,8 +664,7 @@ int http_fn_cfg_ping(http_request_t *request) {
int bChanged;
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Set Watchdog");
bChanged = 0;
poststr(request," Ping watchdog (backup reconnect mechanism) ");
poststr(request," By default, all OpenBeken devices automatically tries to reconnect to WiFi when a connection is lost.");
@@ -742,10 +724,8 @@ int http_fn_cfg_ping(http_request_t *request) {
poststr(request,"\"> \
\
");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -755,8 +735,7 @@ int http_fn_cfg_wifi(http_request_t *request) {
char tmpA[128];
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Set Wifi");
/*bChanged = 0;
if(http_getArg(recvbuf,"ssid",tmpA,sizeof(tmpA))) {
CFG_SetWiFiSSID(tmpA);
@@ -839,10 +818,8 @@ int http_fn_cfg_wifi(http_request_t *request) {
poststr(request,"\"> \
\
");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -853,8 +830,7 @@ int http_fn_cfg_name(http_request_t *request) {
char tmpA[128];
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Set name");
poststr(request,"
Change device names for display. Remember that short name is used by MQTT. ");
if(http_getArg(request->url,"shortName",tmpA,sizeof(tmpA))) {
@@ -879,20 +855,18 @@ int http_fn_cfg_name(http_request_t *request) {
poststr(request,"\"> \
\
");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
+
int http_fn_cfg_wifi_set(http_request_t *request) {
char tmpA[128];
addLogAdv(LOG_INFO, LOG_FEATURE_HTTP,"HTTP_ProcessPacket: generating cfg_wifi_set \r\n");
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Saving Wifi");
if(http_getArg(request->url,"open",tmpA,sizeof(tmpA))) {
CFG_SetWiFiSSID("");
CFG_SetWiFiPass("");
@@ -914,24 +888,18 @@ int http_fn_cfg_wifi_set(http_request_t *request) {
poststr(request," ");
poststr(request,"Return to WiFi settings ");
poststr(request," ");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
-
-
-
int http_fn_cfg_loglevel_set(http_request_t *request) {
char tmpA[128];
addLogAdv(LOG_INFO, LOG_FEATURE_HTTP,"HTTP_ProcessPacket: generating cfg_loglevel_set \r\n");
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Set log level");
if(http_getArg(request->url,"loglevel",tmpA,sizeof(tmpA))) {
#if WINDOWS
#else
@@ -954,9 +922,8 @@ int http_fn_cfg_loglevel_set(http_request_t *request) {
poststr(request," ");
poststr(request,"Return to config settings ");
poststr(request," ");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -969,8 +936,7 @@ int http_fn_cfg_mac(http_request_t *request) {
int i;
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Set MAC address");
if(http_getArg(request->url,"mac",tmpA,sizeof(tmpA))) {
for( i = 0; i < 6; i++ )
@@ -988,7 +954,6 @@ int http_fn_cfg_mac(http_request_t *request) {
WiFI_GetMacAddress((char *)mac);
-
poststr(request," Here you can change MAC address. ");
poststr(request," ");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -1018,8 +981,7 @@ int http_fn_flash_read_tool(http_request_t *request) {
char tmpB[64];
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Flash read");
poststr(request,"Flash Read Tool ");
if( http_getArg(request->url,"hex",tmpA,sizeof(tmpA))){
hex = atoi(tmpA);
@@ -1093,11 +1055,8 @@ int http_fn_flash_read_tool(http_request_t *request) {
\
");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -1113,8 +1072,7 @@ int http_fn_cmd_tool(http_request_t *request) {
//char tmpB[64];
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Command tool");
poststr(request,"Command Tool ");
if( http_getArg(request->url,"cmd",tmpA,sizeof(tmpA))) {
@@ -1135,11 +1093,8 @@ int http_fn_cmd_tool(http_request_t *request) {
\
");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -1148,8 +1103,7 @@ int http_fn_startup_command(http_request_t *request) {
char tmpA[512];
const char *cmd;
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Set startup command");
poststr(request,"Set/Change/Clear startup command line ");
poststr(request,"Startup command is a shorter, smaller alternative to LittleFS autoexec.bat."
"The startup commands are ran at device startup."
@@ -1178,11 +1132,8 @@ int http_fn_startup_command(http_request_t *request) {
\
");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -1190,12 +1141,9 @@ int http_fn_uart_tool(http_request_t *request) {
char tmpA[256];
int resultLen = 0;
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "UART tool");
poststr(request,"UART Tool ");
-
-
if(http_getArg(request->url,"data",tmpA,sizeof(tmpA))) {
#ifndef OBK_DISABLE_ALL_DRIVERS
byte results[128];
@@ -1231,25 +1179,19 @@ int http_fn_uart_tool(http_request_t *request) {
\
");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
int http_fn_config_dump_table(http_request_t *request) {
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
-
+ http_html_start(request, "Dump config");
poststr(request,"Not implemented ");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -1261,8 +1203,7 @@ int http_fn_cfg_quick(http_request_t *request) {
char tmpA[128];
int j;
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Quick Config");
poststr(request,"Quick Config ");
if(http_getArg(request->url,"dev",tmpA,sizeof(tmpA))) {
@@ -1278,10 +1219,8 @@ int http_fn_cfg_quick(http_request_t *request) {
poststr(request,"");
poststr(request," ");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -1311,8 +1250,7 @@ int http_fn_cfg_ha(http_request_t *request) {
baseName = CFG_GetShortDeviceName();
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Home Assistant Setup");
poststr(request,"Home Assistant Cfg ");
hprintf128(request,"Note that your short device name is: %s ",baseName);
poststr(request,"Paste this to configuration yaml ");
@@ -1395,10 +1333,8 @@ int http_fn_cfg_ha(http_request_t *request) {
poststr(request,"");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -1536,8 +1472,7 @@ int http_fn_cm(http_request_t *request) {
int http_fn_cfg(http_request_t *request) {
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Config");
poststr(request," ");
poststr(request,"");
poststr(request,"");
@@ -1569,9 +1504,8 @@ int http_fn_cfg(http_request_t *request) {
}
#endif
#endif
- poststr(request,htmlReturnToMenu);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
+ poststr(request,htmlFooterReturnToMenu);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -1584,8 +1518,7 @@ int http_fn_cfg_pins(http_request_t *request) {
char tmpB[64];
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Pin config");
poststr(request," First textfield is used to enter channel index (relay index), used to support multiple relays and buttons ");
poststr(request," (so, first button and first relay should have channel 1, second button and second relay have channel 2, etc) ");
poststr(request," Second textfield (only for buttons) is used to enter channel to toggle when doing double click ");
@@ -1696,10 +1629,8 @@ int http_fn_cfg_pins(http_request_t *request) {
}
poststr(request," ");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -1727,8 +1658,7 @@ int http_fn_cfg_generic(http_request_t *request) {
char tmpB[64];
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Generic config");
if( http_getArg(request->url,"boot_ok_delay",tmpA,sizeof(tmpA))) {
i = atoi(tmpA);
@@ -1784,10 +1714,8 @@ int http_fn_cfg_generic(http_request_t *request) {
poststr(request,"\"> ");
poststr(request," ");
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -1798,9 +1726,7 @@ int http_fn_cfg_startup(http_request_t *request) {
char tmpA[128];
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
-
+ http_html_start(request, "Config startup");
hprintf128(request,"Here you can set pin start values");
hprintf128(request,"For relays, simply use 1 or 0 ");
hprintf128(request,"For 'remember last power state', use -1 as a special value ");
@@ -1844,10 +1770,8 @@ int http_fn_cfg_startup(http_request_t *request) {
}
}
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -1856,8 +1780,7 @@ int http_fn_cfg_dgr(http_request_t *request) {
char tmpA[128];
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Device groups");
hprintf128(request,"Here you can configure Tasmota Device Groups");
@@ -1936,10 +1859,8 @@ int http_fn_cfg_dgr(http_request_t *request) {
poststr(request," ");
}
- poststr(request,htmlReturnToCfg);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToCfgLink);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
@@ -1951,7 +1872,7 @@ int http_fn_ota_exec(http_request_t *request) {
//char tmpB[64];
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
+ http_html_start(request, "OTA request");
if(http_getArg(request->url,"host",tmpA,sizeof(tmpA))) {
hprintf128(request,"OTA requested for %s! ",tmpA);
addLogAdv(LOG_INFO, LOG_FEATURE_HTTP,"http_fn_ota_exec: will try to do OTA for %s \r\n",tmpA);
@@ -1967,17 +1888,15 @@ int http_fn_ota_exec(http_request_t *request) {
otarequest(tmpA);
#endif
}
- poststr(request,htmlReturnToMenu);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToMenu);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
int http_fn_ota(http_request_t *request) {
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
+ http_html_start(request, "OTA system");
poststr(request," Simple OTA system (you should rather use the OTA from App panel where you can drag and drop file easily without setting up server). Use RBL file for OTA. In the OTA below, you should paste link to RBL file (you need HTTP server).
");
poststr(request," ");
- poststr(request,htmlReturnToMenu);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
-
+ poststr(request,htmlFooterReturnToMenu);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
int http_fn_other(http_request_t *request) {
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- HTTP_AddHeader(request);
+ http_html_start(request, "Not found");
poststr(request,"Not found. ");
- poststr(request,htmlReturnToMenu);
- HTTP_AddBuildFooter(request);
- poststr(request,htmlEnd);
+ poststr(request,htmlFooterReturnToMenu);
+ http_html_end(request);
poststr(request, NULL);
return 0;
}
diff --git a/src/httpserver/new_http.c b/src/httpserver/new_http.c
index 8cdc64cca..4c174da0e 100644
--- a/src/httpserver/new_http.c
+++ b/src/httpserver/new_http.c
@@ -19,12 +19,71 @@ const char httpMimeTypeHTML[] = "text/html" ; // HTML MIME type
const char httpMimeTypeText[] = "text/plain" ; // TEXT MIME type
const char httpMimeTypeJson[] = "application/json" ; // TEXT MIME type
const char httpMimeTypeBinary[] = "application/octet-stream" ; // binary/file MIME type
-const char htmlHeader[] = "" ;
-//const char htmlHeader[] = "" ;
-const char htmlEnd[] = "
" ;
-const char htmlReturnToMenu[] = "Return to menu ";
-const char htmlRefresh[] = "Refresh ";
-const char htmlReturnToCfg[] = "Return to cfg ";
+const char htmlDoctype[] =
+ "";
+// "OpenBK7231T " // todo: add device name to title
+const char htmlHeadMain[] =
+ " "
+ " "
+ " ";
+const char htmlHeadStyle[] =
+ "";
+const char htmlBodyStart[] =
+ ""
+ "To use this device, please enable JavaScript. "
+ ""
+ "
";
+const char htmlBodyEnd[] = "
" ;
+
+const char htmlFooterReturnToMenu[] = "Return to menu ";
+const char htmlFooterRefreshLink[] = "Refresh ";
+const char htmlFooterReturnToCfgLink[] = "Return to cfg ";
+
+const char htmlFooterInfo[] =
+ "Read more | "
+ "Support project ";
// make sure that USER_SW_VER is set on all platforms
#ifndef USER_SW_VER
@@ -142,6 +201,46 @@ void http_setup(http_request_t *request, const char *type){
poststr(request,"\r\n");
}
+void http_html_start(http_request_t *request, const char *pagename) {
+// void HTTP_AddHeader(http_request_t *request) {
+ poststr(request, htmlDoctype);
+ poststr(request, "");
+ poststr(request, CFG_GetDeviceName()); // todo: check escaping
+ if (pagename) {
+ poststr(request, " - ");
+ poststr(request, pagename);
+ }
+ poststr(request, " ");
+ poststr(request, htmlHeadMain);
+ poststr(request, htmlHeadStyle);
+ poststr(request, htmlBodyStart);
+ poststr(request, CFG_GetDeviceName()); // todo: check escaping
+ poststr(request, htmlBodyStart2);
+}
+
+void http_html_end(http_request_t *request) {
+// was void HTTP_AddBuildFooter(http_request_t *request) {
+ char upTimeStr[128];
+ unsigned char mac[32];
+
+ poststr(request, " | ");
+ poststr(request, htmlFooterInfo);
+ poststr(request, " ");
+ poststr(request, g_build_str);
+ poststr(request, " Online for ");
+ misc_formatUpTimeString(Time_getUpTimeSeconds(), upTimeStr);
+ poststr(request, upTimeStr);
+
+ WiFI_GetMacAddress((char *)mac);
+
+ sprintf(upTimeStr, " Device MAC: %02X:%02X:%02X:%02X:%02X:%02X",mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);
+ poststr(request, upTimeStr);
+ sprintf(upTimeStr, " Short name: %s, Chipset %s",CFG_GetShortDeviceName(),PLATFORM_MCU_NAME);
+ poststr(request, upTimeStr);
+
+ poststr(request, htmlBodyEnd);
+}
+
const char *http_checkArg(const char *p, const char *n) {
while(1) {
if(*n == 0 && (*p == 0 || *p == '='))
@@ -295,44 +394,6 @@ void setupAllWB2SPinsAsButtons() {
PIN_SetPinChannelForPinIndex(27,1);
}
-const char *g_header_start =
- "To use this device, please enable JavaScript. "
- "";
-const char *g_footer_info =
- "Read more | "
- "Support project ";
-
-void HTTP_AddHeader(http_request_t *request) {
- poststr(request,g_header_start);
- poststr(request,CFG_GetDeviceName());
- poststr(request,g_header_end);
-}
-
-void HTTP_AddBuildFooter(http_request_t *request) {
- char upTimeStr[128];
- unsigned char mac[32];
-
- poststr(request, " | ");
- poststr(request, g_footer_info);
- poststr(request," ");
- poststr(request,g_build_str);
- poststr(request," Online for ");
- misc_formatUpTimeString(Time_getUpTimeSeconds(), upTimeStr);
- poststr(request,upTimeStr);
-
- WiFI_GetMacAddress((char *)mac);
-
- sprintf(upTimeStr," Device MAC: %02X:%02X:%02X:%02X:%02X:%02X",mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);
- poststr(request,upTimeStr);
- sprintf(upTimeStr," Short name: %s, Chipset %s",CFG_GetShortDeviceName(),PLATFORM_MCU_NAME);
- poststr(request,upTimeStr);
-}
-
// add some more output safely, sending if necessary.
// call with str == NULL to force send. - can be binary.
// supply length
diff --git a/src/httpserver/new_http.h b/src/httpserver/new_http.h
index 3819ac480..310447fe8 100644
--- a/src/httpserver/new_http.h
+++ b/src/httpserver/new_http.h
@@ -7,11 +7,10 @@ extern const char httpMimeTypeHTML[]; // HTML MIME type
extern const char httpMimeTypeText[]; // TEXT MIME type
extern const char httpMimeTypeJson[];
extern const char httpMimeTypeBinary[];
-extern const char htmlHeader[];
-extern const char htmlEnd[];
-extern const char htmlReturnToMenu[];
-extern const char htmlRefresh[];
-extern const char htmlReturnToCfg[];
+
+extern const char htmlFooterReturnToMenu[];
+extern const char htmlFooterRefreshLink[];
+extern const char htmlFooterReturnToCfgLink[];
extern const char *htmlPinRoleNames[];
@@ -21,8 +20,6 @@ extern const char *g_build_str;
#define HTTP_RESPONSE_NOT_FOUND 404
#define HTTP_RESPONSE_SERVER_ERROR 500
-
-
#define MAX_QUERY 16
#define MAX_HEADERS 16
typedef struct http_request_tag {
@@ -53,11 +50,13 @@ typedef struct http_request_tag {
int HTTP_ProcessPacket(http_request_t *request);
void http_setup(http_request_t *request, const char *type);
+void http_html_start(http_request_t *request, const char *pagename);
+void http_html_end(http_request_t *request);
int poststr(http_request_t *request, const char *str);
int postany(http_request_t *request, const char *str, int len);
void misc_formatUpTimeString(int totalSeconds, char *o);
-void HTTP_AddBuildFooter(http_request_t *request);
-void HTTP_AddHeader(http_request_t *request);
+// void HTTP_AddBuildFooter(http_request_t *request);
+// void HTTP_AddHeader(http_request_t *request);
int http_getArg(const char *base, const char *name, char *o, int maxSize);
int http_getArgInteger(const char *base, const char *name);
diff --git a/src/httpserver/rest_interface.c b/src/httpserver/rest_interface.c
index 81f1672dc..285e38572 100644
--- a/src/httpserver/rest_interface.c
+++ b/src/httpserver/rest_interface.c
@@ -179,7 +179,6 @@ static int http_rest_get(http_request_t *request){
return http_rest_get_flash_advanced(request);
}
-
if (!strcmp(request->url, "api/dumpconfig")){
return http_rest_get_dumpconfig(request);
}
@@ -192,13 +191,11 @@ static int http_rest_get(http_request_t *request){
return http_rest_get_flash_vars_test(request);
}
-
-
-
http_setup(request, httpMimeTypeHTML);
+ http_html_start(request, "GET REST API");
poststr(request, "GET of ");
poststr(request, request->url);
- poststr(request, htmlEnd);
+ http_html_end(request);
poststr(request,NULL);
return 0;
}
@@ -257,6 +254,7 @@ static int http_rest_post(http_request_t *request){
#endif
http_setup(request, httpMimeTypeHTML);
+ http_html_start(request, "POST REST API");
poststr(request, "POST to ");
poststr(request, request->url);
poststr(request, " Content Length:");
@@ -265,16 +263,11 @@ static int http_rest_post(http_request_t *request){
poststr(request, " Content:[");
poststr(request, request->bodystart);
poststr(request, "] ");
- poststr(request, htmlEnd);
+ http_html_end(request);
poststr(request,NULL);
return 0;
}
-
-
-
-
-
static int http_rest_app(http_request_t *request){
const char *webhost = CFG_GetWebappRoot();
const char *ourip = HAL_GetMyIPString(); //CFG_GetOurIP();
@@ -288,9 +281,10 @@ static int http_rest_app(http_request_t *request){
poststr(request, webhost);
poststr(request, apppage4);
} else {
- poststr(request,htmlHeader);
- poststr(request,htmlReturnToMenu);
- poststr(request,"no APP available ");
+ http_html_start(request, "Not available");
+ poststr(request, htmlFooterReturnToMenu);
+ poststr(request, "no APP available ");
+ http_html_end(request);
}
poststr(request,NULL);
return 0;
diff --git a/src/logging/logging.c b/src/logging/logging.c
index 703421d68..5d47dbbc0 100644
--- a/src/logging/logging.c
+++ b/src/logging/logging.c
@@ -481,8 +481,8 @@ static int http_getlograw(http_request_t *request){
static int http_getlog(http_request_t *request){
http_setup(request, httpMimeTypeHTML);
- poststr(request,htmlHeader);
- poststr(request,htmlReturnToMenu);
+ http_html_start(request, "Log");
+ poststr(request,htmlFooterReturnToMenu);
poststr(request, "");
char *post = " ";
@@ -490,7 +490,7 @@ static int http_getlog(http_request_t *request){
http_getlograw(request);
poststr(request, post);
- poststr(request, htmlEnd);
+ http_html_end(request);
poststr(request, NULL);
return 0;