diff --git a/src/httpserver/http_fns.c b/src/httpserver/http_fns.c index 93f247947..933604baf 100644 --- a/src/httpserver/http_fns.c +++ b/src/httpserver/http_fns.c @@ -121,6 +121,21 @@ void postFormAction(http_request_t *request, char *action, char *value){ //"
" hprintf128(request,"
", action, value); } +/// @brief Generate a pair of label and field elements. +/// @param request +/// @param label +/// @param fieldId This also gets used as the field name +/// @param value +/// @param preContent +void add_label_field(http_request_t *request, char *label, char *fieldId, const char *value, char *preContent){ + if (strlen(preContent) > 0){ + poststr(request, preContent); + } + + //These individual strings should be less than 256 .. yes hprintf128 uses 256 char buffer + hprintf128(request, "
", fieldId, label); + hprintf128(request, "", fieldId, fieldId, value); +} int http_fn_testmsg(http_request_t *request) { poststr(request,"This is just a test msg\n\n"); @@ -140,63 +155,63 @@ 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); + http_setup(request, httpMimeTypeHTML); http_html_start(request, NULL); poststr(request, "
"); - if(http_getArg(request->url,"tgl",tmpA,sizeof(tmpA))) { - j = atoi(tmpA); - if(j == SPECIAL_CHANNEL_LEDPOWER) { - hprintf128(request,"

Toggled LED power!

",j); - } else { - hprintf128(request,"

Toggled %i!

",j); - } - CHANNEL_Toggle(j); - } - if(http_getArg(request->url,"on",tmpA,sizeof(tmpA))) { - j = atoi(tmpA); - hprintf128(request,"

Enabled %i!

",j); - CHANNEL_Set(j,255,1); - } - if(http_getArg(request->url,"rgb",tmpA,sizeof(tmpA))) { - hprintf128(request,"

Set RGB to %s!

",tmpA); - LED_SetBaseColor(0,"led_basecolor",tmpA,0); - } - - if(http_getArg(request->url,"off",tmpA,sizeof(tmpA))) { - j = atoi(tmpA); - hprintf128(request,"

Disabled %i!

",j); - CHANNEL_Set(j,0,1); - } - if(http_getArg(request->url,"pwm",tmpA,sizeof(tmpA))) { - int newPWMValue = atoi(tmpA); - http_getArg(request->url,"pwmIndex",tmpA,sizeof(tmpA)); - j = atoi(tmpA); - if(j == SPECIAL_CHANNEL_TEMPERATURE) { - hprintf128(request,"

Changed Temperature to %i!

",newPWMValue); - } else { - hprintf128(request,"

Changed pwm %i to %i!

",j,newPWMValue); - } - CHANNEL_Set(j,newPWMValue,1); - } - if(http_getArg(request->url,"dim",tmpA,sizeof(tmpA))) { - int newDimmerValue = atoi(tmpA); - http_getArg(request->url,"dimIndex",tmpA,sizeof(tmpA)); - j = atoi(tmpA); - if(j == SPECIAL_CHANNEL_BRIGHTNESS) { - hprintf128(request,"

Changed LED brightness to %i!

",newDimmerValue); - } else { - hprintf128(request,"

Changed dimmer %i to %i!

",j,newDimmerValue); - } - CHANNEL_Set(j,newDimmerValue,1); - } - if(http_getArg(request->url,"set",tmpA,sizeof(tmpA))) { - int newSetValue = atoi(tmpA); - http_getArg(request->url,"setIndex",tmpA,sizeof(tmpA)); - j = atoi(tmpA); - hprintf128(request,"

Changed channel %i to %i!

",j,newSetValue); - CHANNEL_Set(j,newSetValue,1); - } + if(http_getArg(request->url,"tgl",tmpA,sizeof(tmpA))) { + j = atoi(tmpA); + if(j == SPECIAL_CHANNEL_LEDPOWER) { + hprintf128(request,"

Toggled LED power!

",j); + } else { + hprintf128(request,"

Toggled %i!

",j); + } + CHANNEL_Toggle(j); + } + if(http_getArg(request->url,"on",tmpA,sizeof(tmpA))) { + j = atoi(tmpA); + hprintf128(request,"

Enabled %i!

",j); + CHANNEL_Set(j,255,1); + } + if(http_getArg(request->url,"rgb",tmpA,sizeof(tmpA))) { + hprintf128(request,"

Set RGB to %s!

",tmpA); + LED_SetBaseColor(0,"led_basecolor",tmpA,0); + } + + if(http_getArg(request->url,"off",tmpA,sizeof(tmpA))) { + j = atoi(tmpA); + hprintf128(request,"

Disabled %i!

",j); + CHANNEL_Set(j,0,1); + } + if(http_getArg(request->url,"pwm",tmpA,sizeof(tmpA))) { + int newPWMValue = atoi(tmpA); + http_getArg(request->url,"pwmIndex",tmpA,sizeof(tmpA)); + j = atoi(tmpA); + if(j == SPECIAL_CHANNEL_TEMPERATURE) { + hprintf128(request,"

Changed Temperature to %i!

",newPWMValue); + } else { + hprintf128(request,"

Changed pwm %i to %i!

",j,newPWMValue); + } + CHANNEL_Set(j,newPWMValue,1); + } + if(http_getArg(request->url,"dim",tmpA,sizeof(tmpA))) { + int newDimmerValue = atoi(tmpA); + http_getArg(request->url,"dimIndex",tmpA,sizeof(tmpA)); + j = atoi(tmpA); + if(j == SPECIAL_CHANNEL_BRIGHTNESS) { + hprintf128(request,"

Changed LED brightness to %i!

",newDimmerValue); + } else { + hprintf128(request,"

Changed dimmer %i to %i!

",j,newDimmerValue); + } + CHANNEL_Set(j,newDimmerValue,1); + } + if(http_getArg(request->url,"set",tmpA,sizeof(tmpA))) { + int newSetValue = atoi(tmpA); + http_getArg(request->url,"setIndex",tmpA,sizeof(tmpA)); + j = atoi(tmpA); + hprintf128(request,"

Changed channel %i to %i!

",j,newSetValue); + CHANNEL_Set(j,newSetValue,1); + } if(http_getArg(request->url,"restart",tmpA,sizeof(tmpA))) { poststr(request,"
Module will restart soon
"); RESET_ScheduleModuleReset(3); @@ -375,7 +390,7 @@ int http_fn_index(http_request_t *request) { hprintf128(request,"
",i); hprintf128(request,"",inputName,i,pwmValue); hprintf128(request,"",inputName,i); - hprintf128(request,"
",i); + hprintf128(request,"",i); poststr(request, ""); } } @@ -553,43 +568,28 @@ int http_fn_about(http_request_t *request){ return 0; } - - - int http_fn_cfg_mqtt(http_request_t *request) { - int i; http_setup(request, httpMimeTypeHTML); http_html_start(request, "MQTT"); - poststr(request,"

Use this to connect to your MQTT

"); - poststr(request,"
\ -
\ - Use this to connect to your MQTT"); + + add_label_field(request, "Host", "host", CFG_GetMQTTHost(), ""); - poststr(request,CFG_GetMQTTHost()); - poststr(request,"\">
\ -
\ -

\ -
\ - "); - poststr(request,CFG_GetMQTTClientId()); - poststr(request,"\">
\ -
\ -
\ -
\ -
\ + add_label_field(request, "Client", "client", CFG_GetMQTTBrokerName(), "

"); + add_label_field(request, "User", "user", CFG_GetMQTTUserName(), "
"); + add_label_field(request, "Password", "password", CFG_GetMQTTPass(), "
"); + + poststr(request,"
\ \
"); poststr(request,htmlFooterReturnToCfgLink); http_html_end(request); - poststr(request, NULL); + poststr(request, NULL); return 0; } @@ -1244,12 +1244,12 @@ int http_fn_cfg_quick(http_request_t *request) { void get_Relay_PWM_Count(int *relayCount, int *pwmCount){ (*relayCount) = 0; (*pwmCount) = 0; - + for(int i = 0; i < PLATFORM_GPIO_MAX; i++) { int role = PIN_GetPinRoleForPinIndex(i); if(role == IOR_Relay || role == IOR_Relay_n || role == IOR_LED || role == IOR_LED_n) { (*relayCount)++; - } +} else if(role == IOR_PWM || role == IOR_PWM_n) { (*pwmCount)++; } @@ -1262,8 +1262,8 @@ void get_Relay_PWM_Count(int *relayCount, int *pwmCount){ int http_fn_ha_discovery(http_request_t *request) { int i; char topic[32]; - int relayCount=0; - int pwmCount=0; + int relayCount = 0; + int pwmCount = 0; http_setup(request, httpMimeTypeText); get_Relay_PWM_Count(&relayCount, &pwmCount); @@ -1337,7 +1337,7 @@ int http_fn_ha_cfg(http_request_t *request) { poststr(request,"