I would like to create some ui nodes on my own but first I'd like to ask if there are any plans to move away from angular v1 or altogether from angular? AFAIK, angular v1 is what the dashboard is based on and if I create my own ui nodes, I'll need to use that as well but will need to rewrite them if dashboard moves away from using it. So the question is kind of like: is there any roadmap for the dashboard based on which I can decide to wait or not with creating my own ui nodes?
Well Angular 1 does stop support later this year - so we will have to move somewhere... nothing has been decided as we are currently busy getting Core Node-RED v2 ready - there are some good on-going discussions with @TotallyInformation and @tve and others - but yes... something will have to be done.
What does the EOL really mean from a practical standpoint? It's not like the code ceases to work from one day to the next. I'm not at all familiar with AngularJS but looking at the commit log, not much has been done to it in the past year other than bumping versions of dependencies. So thought has to go into the situation, but it's not that dire?
In the context of FlexDash I've been looking at a couple of options. One is to iframe the std dashboard for simple migration purposes. Thanks to the fact that the std dashboard can be navigated using the URL hash (#!/1, #!/2, ... at the end of the URL) it's actually quite simple to create a combined web site that has some tabs filled by FlexDash and some filled by the std dashboard. The end result only has one instance of the old dashboard regardless of how many tabs there are.
I think the biggest hurdle in the end is custom UI components and custom uses of ui_template. A first step might be to push the iframe stuff a bit further. Could the std dashboard code be chopped down so only enough remains to support a panel of widgets stuck in an iframe? How heavy does that end up being? This could be a practical bridge for users that only have a couple of panels with difficult-to-port widgets.
Beyond that I wonder what it would take to emulate a few of the most common ng directives in whatever a new dashboard might be written (e.g. Vue in FlexDash's case). In addition to the directives I guess there are the CSS styles and specific dimensions of various things in the std dashboard.
If I had to make a decision (thankfully I don't ) I would set an EOL date on the current dashboard that is ~1-2 years out and make do WRT supporting that. If some magic happens WRT AngularJS, that date can always be extended. And then I'd work on an iframe solution to make a transition easier. At the end of the day the burden caused by the AngularJS EOL has to be borne by everyone, the NR team can't realistically do magic.
while it would be great to be able to promise EOL dates we are an unfunded project run by voluntary efforts. If there are any critical security vulnerabilities identified in angular 1 pasts it's EOL date then we are not in a position to patch them on their behalf and so Dashboard would be compromised.- as you point out we can't do magic. Of course some users would be happy to carry on regardless (see existing users of Windows XP etc...) but not something we could recommend.
I never intended to suggest that the NR team fix angularjs security issues. What I meant was that the NR team could consider saying that they'll do their best to keep the current dashboard alive for a certain period of time by applying any 3rd party fixes that may be necessary. That would remain an uncertain situation, but would explain a little what to expect and what not to expect.
Is it better to say nothing? What are the optics of that?
I'll shut up now 'cause evidently my brainstorming is viewed as trying to push work onto the NR team or something like that. I think it's a genuinely difficult situation. I'll just sit back and watch it unfold...
Hi @tve, no problem, and indeed we will do our best to keep it alive, but as it is currently tied to angular v1, then as soon as that stops getting support then there are by definition no further 3rd party fixes, so the only hard date we have is 31st Dec, 2021 when that happens. see - https://blog.angular.io/angularjs-lts-extended-in-response-to-covid-19-321b037212f5
In the meantime we are looking for alternatives for which we are very grateful to both yourself for your rapidly evolving flexdash project and Julian for his uibuilder project - both of which are possible ways forwards. We certainly don't expect a 1 for 1 migration of the existing dashboard - or any widgets.
Just another question came into my mind: are there plans to move into a direction where one can still develop ui nodes or will that concept be ditched with angular v1?
At the moment that is absolutely no roadmap for node-red-dashboard beyond angular v1.
There are community efforts (uibuilder, FlexDash and others) to create dashboards projects.
In terms of what happens to node-red-dashboard - we don't know.
There are simply so many directions it could take (as demonstrated by uibuild and FlexDash). Each has its pros and cons and there are still lessons to learn from node-red-dashboard. I don't know if we'd look to 'adopt' one of the emergent dashboards as the natural successor to node-red-dashboard, or just let the community choose for themselves what fits their needs.