aboutsummaryrefslogtreecommitdiffstats
path: root/web/js/nms-ui-switch.js
Commit message (Collapse)AuthorAgeLines
* Extenstive frontend work on box/type/switch editingKristian Lyngstol2019-01-06-44/+81
| | | | | | | | | | | | | | | | | | | | | | | Still not very visible, but the nmsModSwitch() class is starting to look very interesting. This introduces a big thing: A type system. So far it is "only" used to provide generic validation-services for all fields that will be edited, but the scope can extend further into other uses. The implementation as it is does shallow validation for IP addresses, JSON-input (tags,placement), durations/intervals (poll frequency), sysname references (checks that distro_name is a valid system), and networks (verifying that mgmt_vlan / traffic_vlan exists). This is expected to improve over time, and should eventually lead to things like "if it doesn't exist, then please make it." As the big comment in nms-ui-switch.js now suggests: This is still just a proof of concept and while the fundamental concepts of nmsBox seems to work well, I still feel like I have a lot to iron out in nmsModSwitch, which really should be generic for networks and switches at the very least. But we're getting there.
* Introduce nms-ui-boxes, a big step for GUIKristian Lyngstol2019-01-06-0/+126
nmsBox is a new class for generic HTML-based elements, and will eventually be used to replace nms-info-box. The idea is simple: a generic way to deal with containers that are usually represented in HTML too. To test it, I've re-implemented the GUI for the oplog. This rewrite didn't really utilize the new benefits of the framework, but was a small step. I've also added nms-ui-switch, which isn't exposed anywhere yet and isn't done, but is a good start. nms-ui-switch will be the new way to add and edit switches in the future, it will probably be made more generic over time and thus can be reused for networks too. Note how x = nmsUiSwitch() will allow you to do x.row["community"].value to both get and set the value, and setting will visually update and run any verifier that will be relevant, and alert the parent. This can then be used for simple stuff like json-verification, but also for stuff like auto-complete or whatnot. God only knows. Obviously I will continue to work on this over the next few days...