Skip to content

Commit f77ba47

Browse files
Updates
1 parent 8ca5013 commit f77ba47

File tree

1 file changed

+50
-27
lines changed

1 file changed

+50
-27
lines changed

CHANGELOG.md

+50-27
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,16 @@
11
---
22
typora-root-url: docs/images
33
created: 2017-04-18 16:53:00
4-
updated: 2024-03-30 15:56:52
4+
updated: 2024-04-03 17:16:00
55
---
66

77
# Changelog
88

99
Please see the documentation for archived changelogs - a new archive is produced for each major version. Check the [roadmap](./docs/roadmap.md) for future developments.
1010

11-
## v7 Planned Potentially Breaking Changes
12-
13-
* [ ] Will remove `serve-index` dependency if the `uib-file-*` nodes have been delivered.
14-
15-
I'm really not sure anyone uses this in any case and the new nodes will provide a richer and more controllable experience.
16-
17-
1811
## To Do
1912

20-
* [x] Add a sync version of spawn
21-
* [x] Try to merge pkgsQuickUpd with updateInstalledPackageDetails - https://github.com/TotallyInformation/node-red-contrib-uibuilder/issues/321
22-
* [ ] Process for showing outdated libraries isn't working.
23-
* [ ] Remove execa from gulpfile.js & remove from dev deps
24-
* [ ] Remove `writeJson` from package.mgt.js then remove `fs-extra` dependency
13+
* [ ] Add instance descriptions to the index pages
2514
* Update examples:
2615
* [ ] [started] Update text update example to include new `uib-topic` html attributes
2716
* [ ] **REMOVE** old client library example
@@ -35,6 +24,8 @@ Please see the documentation for archived changelogs - a new archive is produced
3524
* [ ] Document `.config/uibMiddleware.js`, also update `docs\how-to\server-side-views.md`.
3625
* [ ] Document a dashboard-like grid layout.
3726
* [ ] Document how to use `<instanceRoot>/routes/` properly. [Ref](https://totallyinformation.github.io/node-red-contrib-uibuilder/#/changelog?id=new-features)
27+
* [ ] Remove `writeJson` from package.mgt.js then remove `fs-extra` dependency
28+
* [ ] Remove execa from gulpfile.js & remove from dev deps
3829

3930
### `uibrouter` FE library
4031

@@ -77,8 +68,12 @@ Please see the documentation for archived changelogs - a new archive is produced
7768

7869
### FE `ui` library
7970

80-
* [ ] Check unique ID logic - use the new returnElementId in the uibuilder library
8171
* [ ] Allow Markdown-IT plugins ([list](https://www.npmjs.com/search?q=keywords:markdown-it-plugin)) & additional config. [ref](https://github.com/markdown-it/markdown-it?tab=readme-ov-file#plugins-load)
72+
* [x] ui.js
73+
* [ ] uib-router.js
74+
* [ ] document `ui-md-plugins` managed uib variable
75+
* [ ] document `ui-md-plugins` ui variable
76+
* [ ] document `ui-md-plugins` router variable
8277

8378
### `<uib-var>` custom HTML component
8479

@@ -119,6 +114,7 @@ Please see the documentation for archived changelogs - a new archive is produced
119114

120115
## Issues
121116

117+
* [ ] Process for showing outdated libraries ~~isn't working~~ is working sometimes.
122118
* [ ] `uibuilder` file Editor - sometimes on file change, we get:
123119
Uncaught Error: Illegal value for lineNumber
124120
Error: Illegal value for lineNumber
@@ -139,18 +135,12 @@ Please see the documentation for archived changelogs - a new archive is produced
139135

140136
### "Outdated" dependencies
141137

142-
Unfortunately, for various reasons, some of the package dependencies that UIBUILDER relies on cannot be updated to their latest versions. These are documented, with the reason, here.
138+
As of v7, all outdated dependencies have been removed or limited to uibuilder development only, not production use.
143139

144-
* `execa` - restricted to v5. Author sindresorhus decided that everyone HAS to use ESM even though his packages are widely used and he must know that it is often impossible to move from CommonJS without a complete rewrite. Node-RED is so complex, when would that be possible? Very annoying.
145-
* `jsdom` - restricted to v21. Later versions require node.js >v14 but Node-RED is still baselined at v14. Requires update to Node-RED to release this.
146-
* `nanoid` - restricted to v3. Another annoying sindresorhus node.
147-
148-
These are only used for developing UIBUILDER so somwhat less critical.
140+
The following are only used for developing UIBUILDER:
149141

150-
* `@types/node` - restricted to v14 to match Node-RED's current baseline.
151-
* ~~`gulp-debug` - restricted to v4. Another annoying sindresorhus node.~~ Removed in v6.8
152-
153-
I will be trying to eliminate packages that have enforced structural changes. The author's arrogance is palpable.
142+
* `execa` - restricted to v5. Author sindresorhus decided that everyone HAS to use ESM even though his packages are widely used and he must know that it is often impossible to move from CommonJS without a complete rewrite. Node-RED is so complex, when would that be possible? Very annoying.
143+
* `@types/node` - restricted to v18 to match Node-RED's current baseline.
154144

155145
## Ideas
156146

@@ -185,6 +175,8 @@ Most of these changes will *not* impact most people but you should check through
185175

186176
This brings them into line not only with W3C guidance but also with the Socket.IO library. It can be turned off in `settings.js` using property `uibuilder.serverOptions['case sensitive routing']` set to false.
187177

178+
Note that when using Node-RED's internal ExpressJS web engine, URLs are still case-insensitive because that's how Node-RED has been configured.
179+
188180
* **Minimum node.js now v18** - in line with the release of Node-RED v4, the minimum node.js version has moved from v14 to v18.
189181

190182
If you need to update your own servers, please remember to do an `npm rebuild` of all node.js packages afterwards.
@@ -225,23 +217,40 @@ Most of these changes will *not* impact most people but you should check through
225217

226218
* A `uibuilder` node cannot be given a URL name of `common` as this would clash with the built-in folder of the same name that holds resources that can be shared with all instances. This was an oversight in previous releases I'm afraid, now fixed.
227219

220+
* The `uibuilder` node, no longer has the "*Show web view of source files (deploy before you can use it)*" option. The supporting external library was also removed. It never looked that good anyway. Please use the new `uib-file-list` node to produce a custom folder/file list and send to your own custom page.
221+
228222
### 📌 Highlights
229223

230-
* You can now add a `uib-topic="mytopic"` attribute to _ANY_ HTML element. Doing so sets up a message listener. A matching msg.payload will replace the inner HTML of the element and msg.attributes will update corresponding attributes. Making this now one of the easiest ways to define dynamic updates in your UI.
224+
* You can now add a `uib-topic="mytopic"` attribute to _ANY_ HTML element. Doing so makes that element responsive to messages from Node-RED.
225+
226+
For a message with the correct `msg.topic`. The `msg.payload` will replace the inner HTML of the element. `msg.attributes` will update corresponding element attributes. Making this now one of the easiest ways to define dynamic updates in your UI.
231227

232228
* Lots of extensions and improvements to the `uibrouter` front-end routing library in this release:
233229

234230
* You can now define a set of external html files (that can include scripts and css just like routes) that are immediately loaded to the page. These can be defined in the initial router config when they will be loaded immediately (before routes) or can be manually loaded later. Use these for things like menu's or other fixed parts of the UI.
235231

236232
* You can now define route content as Markdown instead of HTML. This makes Notion/Obsidian-like applications feasible using UIBUILDER.
237233

234+
* Markdown improvements.
235+
236+
Both the main uibuilder node (via the `ui.js` library) and the `uibrouter` library both accept markdown content (via the external Markdown-IT library) and now they both support Markdown-IT plugins so that you can add features such as checkbox lists, GitHub style callouts, Mermaid diagrams and much more.
237+
238+
There is also a new documentation page dedicated to using Markdown.
239+
240+
And, the no-code example flow has been extended to demonstrate how to dynamically load all of the libraries, plugins and even how to set up responses back to Node-RED - for example when a checkbox is clicked.
241+
238242
* Wherever you can use no-/low-code features that accept HTML, you can now include `<script>` tags that will be executed on load.
239243

240244
* A new node is available. `uib-file-list` will produce a list of files from a uibuilder instance. It automatically adjusts to the currently served sub-folder and allows filtering. Use this for producing indexes and menus.
241245

246+
* Handling of forms and inputs continue to improve.
247+
248+
* Programmatic changes to input values or checked properties now trigger both the `input` and `changed` events - something that HTML normally doesn't do but can be important for data-driven web apps. For example, if using an `<output>` tag to show a combined or calculated input, changes via Node-RED will still update the values.
249+
* When using the `eventSend(event)` function on inputs whether inside or outside of a form, the returned values have been improved, especially for checkboxes and radio buttons.
250+
242251
* Security of the UIBUILDER repository on GitHub has been improved.
243252

244-
* The old `uibuilderfe` client library will now issue a user and a console alert on every load. The alert warns that the library will be removed when UIBUILDER v7 is released (which should happen once Node-RED v4 is also released). If you are still using the old client, please switch to the current client library ASAP. The new library has been available for nearly 2 years now, so time to move on.
253+
* On the `uibuilder` node's "Core" tab, the info buttons bar has changed slightly. The "Docs" button has gone (it is still on the top of panel bar anyway) and been replaced by a new "Apps" button which shows a page *listing ALL uibuilder node instances along with their descriptions where provided*.
245254

246255
### General Changes
247256

@@ -329,8 +338,14 @@ The `URL Output?` setting will change the output from a folder/file list to a re
329338
### `ui` library
330339

331340
* **FIXED** small inconsistency when handling a msg._ui who's top level was an object with a `mode` mode property instead of an array.
332-
* Improved Markdown handling. Should now be more efficient. Also HighlightJS code highlights should be better: Some unnecessary whitespace removed, code brought into line with the latest releases of the HighlightJS library, language guessing now only used if the language is not provided.
341+
* **NEW** Markdown-IT plugins can now be used. See the new "Using Markdown" documentation page for details.
342+
343+
* Improved Markdown handling.
344+
345+
Should now be more efficient. Also HighlightJS code highlights should be better: Some unnecessary whitespace removed, code brought into line with the latest releases of the HighlightJS library, language guessing now only used if the language is not provided.
346+
333347
* Slot HTML content can now contain `<script>` tags that will be executed on load.
348+
334349
* Programmatic changes to input values or checked properties now trigger both `input` and `changed` events. By default, the DOM will not trigger events except for actual user input. This makes it easy to use `<output>` tags for example that automatically update when inputs change.
335350

336351
### `uibrouter` front-end library
@@ -407,6 +422,14 @@ The `old-blank-client` template and all associated documentation has also been r
407422

408423
* **FIXED** A `uibuilder` node cannot be given a URL name of `common` as this would clash with the built-in folder of the same name that holds resources that can be shared with all instances. This was an oversight in previous releases I'm afraid, now fixed.
409424

425+
* Template settings made clearer. Now more obvious what is part of the template settings.
426+
427+
* The advanced option "Show web view of source files (deploy before you can use it)" has been removed. The supporting external library was also removed. It never looked that good anyway. Please use the `uib-file-list` node to produce a custom folder/file list and send to your own custom page.
428+
429+
* On the "Core" tab, the info buttons bar has changed slightly. The "Docs" button has gone (it is still on the top of panel bar anyway) and been replaced by a new "Apps" button which shows a page listing ALL uibuilder node instances along with their descriptions where provided. Also the "Full details" button has swapped position with the "Node details" button so that the instance-related buttons are on the left and the all-instances buttons are on the right.
430+
431+
* The help panel has been updated to better reflect the current configurations. Also some additional links added.
432+
410433
### `uib-list` node
411434

412435
**REMOVED** - this node was deprecated in UIBUILDER v6. It has now been removed. Use the `uib-element` node with one of the list element types.

0 commit comments

Comments
 (0)