Trebuin
Senior Member
Reminds me of my plane. To close one window, you have to hit the close button on the screen. To close a different window, you need to select exit from the drop down menu. To close another window, you need to right click on the menu bar and select "close process." To close the comms window, you need to change something and select ok, not close. There are tons of different people doing things their own way.
Either that, or clicking on the error message will take you to the actual line in the code. That's how I usually debug things out, using Chrome's console.
There are a few things here and there in Asuswrt that uses Ajax to run code that needs to handle data at the DOM level, to prevent that kind of issue. I remember having to deal with that with the Sysinfo page (for the Ethernet switch data) and on some of the VPN pages.
If keeping in sync with Asus's code wasn't a priority, I would consider a MAJOR overhaul of the whole webui. It needs to be more robust than it currently is. That means, wall-to-wall escaping of special characters for anything inserted by httpd, an actual established way of handling bi-directional communication with the backend (right now we have a mixture of Javascript vars, arrays, and XML data structures). And all of that with a more unified set of UI design guidelines. Currently, Asuswrt has tabs (all pages), dropdown (VPN and traffic monitor pages), links (AiProtection and USB Apps pages). It's like there are three different persons working on the webui, each of them with his own personal set of design guidelines.
But, that's way beyond the scope of this project, so we'll have to make do with what we have...