There is something there, The most complex part of creating a new no-code node is dealing with the settings - especially if you want to use typed inputs. I have a standard function that makes it easier in the runtime but I'm wondering if there is something I could do to make the Editor side easier. That is actually one of the worst aspects of Node-RED in my view, creating the edit panels is rather more complex than desirable.
So this has got me thinking as to whether some kind of standard support library for creating node edit panels might be even more useful. I've already started moving some common processing in uibuilder nodes to a common library. Maybe some simple web components to simplify the actual panel HTML, they could possibly even do some of the processing in the component.
If we could make it easier to create edit panels that have flexible typed inputs, that would be a nice addition to Node-RED as a whole, not just UIBUILDER.
Well, you don't just have to use a function node of course, the advantage of having a standardised data schema is that ANYTHING in Node-RED that can work on a msg
can manipulate (improve/change/add-to) a msg._ui
that another node has created. This is incredibly powerful without being too complex.
But here, perhaps might be another approach. A node that can easily be used to manipulate certain aspects of a msg containing a _ui
property. Specifically, one that can add/change the top-level parent. At the moment, the uib-update
node is designed to update at the front-end, not in Node-RED. So another node that can work on the _ui
property in Node-RED would indeed be very useful.
Nodes that create _ui
properties could then not only send direct to the front-end but could instead (or as well as) use standard Node-RED capabilities for storing and reuse as templates. (a vague thought occurs about a node designed to manage templates - need to think about that a bit more).
So that is something interesting I could fairly easily add to uibuilder. Not sure if uib-integrate
would still be the right name though?
Anyway, thoughts on this?