You can thank @smanjunath211 for having a bonus release so soon after v7.3.0.
They were kind enough to highlight a hidden bug in the uib-cache node which is now fixed. Thanks also go to Callum Macdonald for a PR fixing a typo in the documentation.
The main user-facing feature is that, when passing a message to the front-end targetting an html element using uibuilder's uib-topic custom attribute, not only can you update the text/html content and the attributes of the element but now also the dataset.
There are some updated "Creating UI's" documents as well.
Other than that, many of the updates in this release relate to diagnostics with a new front-end variable that lets you know what Socket.IO transport you are using and a new machine-readable diagnostics admin API for those rare occasions when things go awry and need some additional digging.
uibuilder client library
-
New variable
uibuilder.get('currentTransport')Will either be
websocketorpolling. This is set when the connection is established and may change if the connection is lost and re-established. Should generally bewebsocketafter a few ms. If still set topolling, then either there are network issues or there is a poorly configured proxy server in the way. If you are using a proxy server, it should be configured to allow WebSocket connections. Even withpolling, the connection should still work but it will be slower and less efficient.A console error message will be logged if the transport is not
websocketafter a few seconds. -
When using the custom HTML attribute
uib-topic:msg.datasetis now processed along withmsg.attributesandmsg.payload.msg.datasetmust be an object, each key becomes adata-*attribute on the element.
uib-cache node
- FIXED Setting the "# messages" to zero should have retained unlimited messages for each "Cache by" property. It wasn't working correctly. Now fixed. Many thanks to Manjunath Satyamurthy in the Node-RED Forum for reporting this issue.
uib-brand.css front-end styles
- Amended
.status-gridclass to use 3 variables:--status-grid-min,--status-grid-max, and--status-grid-gap. This allows the grid to be more flexible and responsive. The default values have not changed but you can now override them in your own CSS.
Documentation
- Creating UIs:
- Grid Layouts - Now a more complete article on how to create responsive, content-heavy grid layouts.
- CSS Best Practice - Some simple guidelines and good practices for creating flexible layouts using CSS.
- Charts - A new article on how to create charts using the uibuilder client library. This is a work in progress and will be updated as more information becomes available.
- Form Handling - A new article on how to handle user input using forms and other input elements. This is a work in progress and will be updated as more information becomes available.
- Creating Web Apps - How to create data-driven web applications using UIBUILDER. Article updated.
- Several other articles are still awaiting content. Lists, Maps, Tables, Dashboard Layouts, Cards, Articles.
Node-RED Admin endpoints
<nrAdminURL>/uibuilder/uibindex?type=diagnosticsis a new variation on theuibindexendpoint. It returns diagnostics information in JSON format that shows uibuilder detailed diagnostic information. You must have an active Node-RED Editor session to be able to access this endpoint.
[!WARNING]
Please take care with the use of this endpoint as it contains sensitive information about your uibuilder instances.
Server library: admin-api-v2.js
- FIX
/uibindexroute incorrectly assumed the presence ofreq.headers.referer. - NEW
/uibindex?type=diagnosticsadded. Returns diagnostics information in JSON format that shows uibuilder detailed diagnostic information. You must have an active Node-RED Editor session to be able to access this endpoint. - Switched from passing the uib master variable to use the
uibGlobalConfigmodule. This is a step towards a more modular codebase.
Devlopment processes
- Rebuilt the gump build process for the front end client library. Now simplified and more robust.