UNPKG

node-red-contrib-uibuilder

Version:

Easily create data-driven web UI's for Node-RED. Single- & Multi-page. Multiple UI's. Work with existing web development workflows or mix and match with no-code/low-code features.

120 lines (93 loc) 6.86 kB
--- title: Possible Future Features description: | What is being worked on for the next release. author: Julian Knight (Totally Information) created: 2025-01-05 12:34:47 updated: 2026-06-06 17:38:30 --- ## Possible issues/improvements * [ ] When using Node-RED projects, the `uibuilder` folder is not in the project folder as it should be. But rather in the user data folder. Need to investigate how to fix this. [ref](https://discourse.nodered.org/t/uibuilder-new-release-v7-7-1-new-features-and-bug-fixes-extra-bugfix/101164/7?u=totallyinformation). * [ ] Remove gulp dependencies once we are sure that the new build/watch script is working well and we have no need for the old gulp tasks. This will remove a bunch of audit failures. * [ ] Code smells: * [ ] this.uib, this.log, this.RED - should be using the global config module instead. * [ ] (uib) - passing uib object instead of using the module. * [ ] check that hooks are in uib? * [ ] Alter uibuilder where we have `JSON.stringify` to use saferSerialize instead. * [ ] Add app type to nr admin index page to make it easier to identify uibuilder and markweb nodes. * [ ] Add size trap to saferSerialize to prevent very large objects from being serialized and crashing the system. * [ ] Move `degit` dependency to a workplace package and use it for the template cloning process. Should allow us to move to the latest version. * [ ] Check out next release of `markdown-it-attrs` and use if possible in `uib-md-utils`. Also check out the npm version strings. * [ ] Update Markweb docs for the new collapse marker and the new folder hiding behaviour. * [ ] Add ability to turn off collapsible prose. Needs to be an option in the Markweb node and will need to generate slightly different HTML on rendering Markdown. * [ ] Find places in documentation (and maybe the readme) to document the Node-RED projects issues. ### Markweb * [_] Add Markweb instances to the list of uibuilder apps/urls. Started, needs app index page and the listApps function node utility updating to show them along with the new `type` property. * [ ] Reduce the chattiness of the markweb client library. ### Documentation * [ ] Document the CSP overrides and how to use them. * [_] Remove docsify-darklight-theme dependency as it is dated and not being used. Will remove a bunch of audit failures. JS already not used, needs consolidation of the CSS. ### uibuilder node * [ ] Deploy of new uibuilder node sometimes results in `🌐⚠️[uibuilder:web:setupInstanceStatic:nojs-charts] Cannot show default page, index.html does not exist in D:\src\uibRoot\nojs-charts\src.`. Likely because the reload option is on so as the default folders & files being created, the node tries to reload the page. Maybe suspend watcher for initial deployment somehow? ## In Progress * Make sure that Markweb nodes remove web routes and socket.io namespaces when deleted. ### Ongoing work * Document possible gotchas with Markweb and how to avoid them. * Deep url paths - need to adjust the page template's relative links. * Missing folder from navigation - must have at least a `index.md` page in the folder. * Change docs bundle to use an npm workspace * Force close socket.io connections on node-red close to prevent hanging connections and allow clean restarts. * If using a custom Express server, force close it on node-red close to prevent hanging connections and allow clean restarts. * [ ] Review all instances of `this.RED = RED` or `mod.RED = RED`. The reference is now created in the global config by the runtime plugin. It should not be needed anywhere else unless the global config cannot be required. * Background rework (may take several releases): * [ ] Changing `uib-brand.css` to use more modern CSS, leaving it up to LightningCSS to build for older browsers. In particular, using nested definitions. * [ ] Rename all .js node.js files to .cjs to avoid confusion with ESM modules. (libs now all done). * [ ] No need to pass uib var now it is in a module, can simply require it. (Except for libs/fs which is already used by the uib module). * Update library manager to use the same processes as the scripts tab. * [ ] More robust updates. * [ ] Show streamed output. * Update admin-api-v3: * [ ] Remove dependencies on fg (use fs.cjs instead). * [ ] Make more use of AsyncLocalStorage to allow async functions to be wrapped in sync callers. * [ ] Script run * [x] Retain at least the link to the run id so that the panel can be exited and returned to and still allow cancelling the script. * [ ] Consider also retaining the complete xhr request and streamed output. * Back-end * [ ] Failed rename of instance folder may get stuck. * [ ] Adjust gulp tasks to copy changed fe types file(s) (nb: src\front-end-module\tsconfig.json is different to templates\blank\tsconfig.json, don't copy it) * [ ] to `templates\blank\types` * [ ] to external template repo's * [ ] Find out how to create a uib fe @types package (and add to template devDependencies) * [ ] Find out how to automate updates to types when the fe module changes * [ ] Add either a link or at least a note to node help pointing to example flows. * [ ] Add example flows for each node. * [ ] Add remote command example flows. * [ ] Add `uib-var` example flows. * [ ] Add new example showing use of the TI Web Component library. * [ ] Add new classes for LAYOUTs. * [ ] Add SVGAnimate class to web components package. * [ ] `resources\uib-sidebar.js` - add markdown support using RED.utils.renderMarkdown(). ## Next * Client library: * Add `uibuilder.dataCheck(<time>)` function to the client library. If set, will check - when the browser indicated that the page is visible - whether data has been received from Node-RED within the specified time. If not, it will reload the page. This is to deal with computers going to sleep and then waking up with stale data. * Build/Watch script: * Switch to new build/watch script from gulp. * Add github new tag process to new build script. * Documentation: * The new build script and processes. * The CSP overrides and how to use them. * Markweb: * Video. * Allow `readme.md` or `README.md` to be used as folder default pages as well as `index.md`, `.index.md`, and `_index.md`. * Editor: * uib-sidebar - add markdown support. * router * Add icon support to the router menu system. * Add vertical support to the router menu system. ## Communications * Use IFTTT to cross-post: * New video - to Discord, Twitter * New Release - to Discord, Twitter, (NR Forum) Other possibles: Instagram, Blog, LinkedIn, NR Forum, BlueSky, Mastodon. ## Other Please see the [roadmap section of the UIBUILDER documentation](roadmap/readme.md) for the latest information on what is being worked on for the next release and beyond.