Skip to content

Commit

Permalink
changed devicecombobox handling to save a lot of memory on device page.
Browse files Browse the repository at this point in the history
fixes #654 #676 and could be triggered by #683 in some cases.
  • Loading branch information
psy0rz committed Jan 10, 2018
1 parent ec18e5c commit fe19449
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 6 deletions.
4 changes: 2 additions & 2 deletions .atom-build.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
cmd: "platformio"
name: "Build with error highlighting (dev_4096)"
name: "Build with error highlighting (dev_ESP8266_4096)"
args:
- run --environment dev_4096
- run --environment dev_ESP8266_4096
sh: true,
cwd: .
# env:
Expand Down
56 changes: 52 additions & 4 deletions src/WebServer.ino
Original file line number Diff line number Diff line change
Expand Up @@ -1216,7 +1216,14 @@ void handle_devices() {
struct EventStruct TempEvent;

// String taskindex = WebServer.arg(F("index"));
byte taskdevicenumber = WebServer.arg(F("TDNUM")).toInt();

byte taskdevicenumber;
if (WebServer.hasArg(F("del")))
taskdevicenumber=0;
else
taskdevicenumber = WebServer.arg(F("TDNUM")).toInt();


unsigned long taskdevicetimer = WebServer.arg(F("TDT")).toInt();
// String taskdeviceid[CONTROLLER_MAX];
// String taskdevicepin1 = WebServer.arg(F("taskdevicepin1")); // "taskdevicepin*" should not be changed because it is uses by plugins and expected to be saved by this code
Expand Down Expand Up @@ -1267,6 +1274,9 @@ void handle_devices() {
// }

String edit = WebServer.arg(F("edit"));



byte page = WebServer.arg(F("page")).toInt();
if (page == 0)
page = 1;
Expand Down Expand Up @@ -1302,7 +1312,7 @@ void handle_devices() {
PluginCall(PLUGIN_GET_DEVICEVALUENAMES, &TempEvent, dummyString);
}
}
else if (taskdevicenumber != 0)
else if (taskdevicenumber != 0) //save settings
{
Settings.TaskDeviceNumber[index - 1] = taskdevicenumber;
DeviceIndex = getDeviceIndex(Settings.TaskDeviceNumber[index - 1]);
Expand Down Expand Up @@ -1552,11 +1562,30 @@ void handle_devices() {
reply += F("<form name='frmselect' method='post'><table>");
addFormHeader(reply, F("Task Settings"));


reply += F("<TR><TD>Device:<TD>");
addDeviceSelect(reply, "TDNUM", Settings.TaskDeviceNumber[index - 1]); //="taskdevicenumber"

if (Settings.TaskDeviceNumber[index - 1] != 0 ) //any device selected?
//no device selected
if (Settings.TaskDeviceNumber[index - 1] == 0 )
{
//takes lots of memory/time so call this only when needed.
addDeviceSelect(reply, "TDNUM", Settings.TaskDeviceNumber[index - 1]); //="taskdevicenumber"

}
// device selected
else
{
//remember selected device number
reply += F("<input type='hidden' name='TDNUM' value='");
reply += Settings.TaskDeviceNumber[index - 1];
reply += F("'>");

//show selected device name and delete button
String deviceName;
Plugin_ptr[Settings.TaskDeviceNumber[index - 1]](PLUGIN_GET_DEVICENAME, 0, deviceName);
reply += deviceName;


addHelpButton(reply, String(F("Plugin")) + Settings.TaskDeviceNumber[index - 1]);

addFormTextBox(reply, F("Name"), F("TDN"), ExtraTaskSettings.TaskDeviceName, 40); //="taskdevicename"
Expand Down Expand Up @@ -1706,6 +1735,13 @@ void handle_devices() {
addSubmitButton(reply);
reply += F("<input type='hidden' name='edit' value='1'>");
reply += F("<input type='hidden' name='page' value='1'>");

//if user selected a device, add the delete button
if (Settings.TaskDeviceNumber[index - 1] != 0 )
addSubmitButton(reply, F("Delete"), F("del"));



reply += F("</table></form>");
}

Expand Down Expand Up @@ -2099,6 +2135,18 @@ void addSubmitButton(String& str)
str += F("<input class='button link' type='submit' value='Submit'>");
}

//add submit button with different label and name
void addSubmitButton(String& str, const String &value, const String &name)
{
str += F("<input class='button link' type='submit' value='");
str += value;
str += F("' name='");
str += name;
str += F("'>");
}



//********************************************************************************
// Add a header
//********************************************************************************
Expand Down

0 comments on commit fe19449

Please sign in to comment.