Hiding the AsyncFsWebserver "setup" page

I've been happily using [AsyncFsWebserver](https://github.com/cotestatnt/async-esp-fs-webserver/tree/master/src) for a project, using its handleFormData.ino example as a starting point. The webserver automatically creates an /edit and a /setup page. Actually, that's a bit of a fib. The line server.enableFsCodeEditor(); causes the /edit page to show up, and the /setup page appears automatically.

Looking into the code, it appears that in AsyncFsWebServer.h (line 31), if ESP_FS_WS_SETUP is defined, then various other bits of code will be eliminated and no /setup page will be handled. (See AsyncFsWebServer.cpp, line 29, for example). Sadly, if I insert the line

#define ESP_FS_WS_SETUP 0

just before line 3 of handleFormData.ino, and adjust line 90 to use my local WiFi credentials, I get a jackpot of error messages ( which I'll paste below)

  • Am I misunderstanding the intent of that ESP_FS_WS_SETUP constant?
  • Can someone advise on how to make the /setup page not appear?

Compile errors:

In file included from /Users/jhughes/Documents/Projects/Them/AsyncFsExample/AsyncFsExample.ino:8:
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:135:5: error: 'SetupConfigurator' does not name a type
  135 |     SetupConfigurator* setup = nullptr;
      |     ^~~~~~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:299:79: error: 'MIN_F' was not declared in this scope
  299 |     void addOption(const char *lbl, T val, bool hidden = false,  double min = MIN_F,
      |                                                                               ^~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:300:20: error: 'MAX_F' was not declared in this scope
  300 |       double max = MAX_F, double st = 1.0) {
      |                    ^~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In constructor 'AsyncFsWebServer::AsyncFsWebServer(uint16_t, fs::FS&, const char*)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:142:19: error: expected type-specifier before 'SetupConfigurator'
  142 |       setup = new SetupConfigurator(m_filesystem);
      |                   ^~~~~~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'fs::File AsyncFsWebServer::getConfigFile(const char*)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:236:38: error: 'ESP_FS_WS_CONFIG_FILE' was not declared in this scope
  236 |       File file = m_filesystem->open(ESP_FS_WS_CONFIG_FILE, mode);
      |                                      ^~~~~~~~~~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'const char* AsyncFsWebServer::getConfiFileName()':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:244:14: error: 'ESP_FS_WS_CONFIG_FILE' was not declared in this scope
  244 |       return ESP_FS_WS_CONFIG_FILE;
      |              ^~~~~~~~~~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::setSetupPageTitle(const char*)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:285:56: error: request for member 'addOption' in '* setup', which is of non-class type 'void()'
  285 |     void setSetupPageTitle(const char* title) { setup->addOption("name-logo", title); }
      |                                                        ^~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addHTML(const char*, const char*, bool)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:286:77: error: request for member 'addHTML' in '* setup', which is of non-class type 'void()'
  286 |     void addHTML(const char* html, const char* id, bool ow = false) {setup->addHTML(html, id, ow);}
      |                                                                             ^~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addCSS(const char*, const char*, bool)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:287:74: error: request for member 'addCSS' in '* setup', which is of non-class type 'void()'
  287 |     void addCSS(const char* css, const char* id, bool ow = false){setup->addCSS(css, id, ow);}
      |                                                                          ^~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addJavascript(const char*, const char*, bool)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:288:85: error: request for member 'addJavascript' in '* setup', which is of non-class type 'void()'
  288 |     void addJavascript(const char* script, const char* id, bool ow = false) {setup->addJavascript(script, id, ow);}
      |                                                                                     ^~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addDropdownList(const char*, const char**, size_t)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:289:79: error: request for member 'addDropdownList' in '* setup', which is of non-class type 'void()'
  289 |     void addDropdownList(const char *lbl, const char** a, size_t size){setup->addDropdownList(lbl, a, size);}
      |                                                                               ^~~~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addOptionBox(const char*)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:290:51: error: request for member 'addOption' in '* setup', which is of non-class type 'void()'
  290 |     void addOptionBox(const char* title) { setup->addOption("param-box", title); }
      |                                                   ^~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::setLogoBase64(const char*, const char*, const char*, bool)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:292:14: error: request for member 'setLogoBase64' in '* setup', which is of non-class type 'void()'
  292 |       setup->setLogoBase64(logo, w, h, ow);
      |              ^~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addOption(const char*, T, double, double, double)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:296:14: error: request for member 'addOption' in 'setup->', which is of non-class type 'void()'
  296 |       setup->addOption(lbl, val, false, min, max, st);
      |              ^~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'void AsyncFsWebServer::addOption(const char*, T, bool, double, double, double)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:301:14: error: request for member 'addOption' in 'setup->', which is of non-class type 'void()'
  301 |       setup->addOption(lbl, val, hidden, min, max, st);
      |              ^~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'bool AsyncFsWebServer::getOptionValue(const char*, T&)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:304:66: error: request for member 'getOptionValue' in 'setup->', which is of non-class type 'void()'
  304 |     bool getOptionValue(const char *lbl, T &var) { return setup->getOptionValue(lbl, var);}
      |                                                                  ^~~~~~~~~~~~~~
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h: In member function 'bool AsyncFsWebServer::saveOptionValue(const char*, T)':
/Users/jhughes/Documents/Arduino/libraries/async-esp-fs-webserver-master/src/AsyncFsWebServer.h:306:66: error: request for member 'saveOptionValue' in 'setup->', which is of non-class type 'void()'
  306 |     bool saveOptionValue(const char *lbl, T val) { return setup->saveOptionValue(lbl, val);}
      |                                                                  ^~~~~~~~~~~~~~~

It appears, after some more experiments, that the ESP_FS_WS_SETUP isn't actually useful for doing this. The only way I figured out to address the problem was to reset the server and then add back the stuff I wanted from AsyncFsWebServer::init(AwsEventHandler wsHandle).

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.