# \[Announce\] Dashboard 2.23.0, 1, 2, 3, 4, 5

**URL:** <https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853>\
**Category:** Dashboard\
**Created:** [10 July 2020 14:05 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853 "2020-07-10T14:05:38Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [10 July 2020 14:05 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/1 "2020-07-10T14:05:38Z")

</div>

Been a while so just a few small fixes. mainly to include the underlying Angular security patch.

**Enhancements**

- Fix custom colour sidebar choice to actually work.
- Dropdown multi-select now allows select/deselect all. PR [#590](https://github.com/node-red/node-red-dashboard/pull/590)
- Add iconify- keyword to icon handling (still need to add the js file via cdn in template).
- Let notification node set timeout via msg.timeout property.

**Fixes**

- Block direct websocket connection attempts - only allow upgrades.
- Bump angular libs to 1.8.0 for security patch.
- Stop chart sending blank data payload on deploy.
- Ensure toast dialog cancel button defaults to on when in prompt with input mode. Issue [#596](https://github.com/node-red/node-red-dashboard/issues/596)
- Remove some hardcoded CSS to help themeing support of editor.

### 2.23.1: Maintenance Release

**Fixes**

- Fix date picker to return midnight on picked day. PR #600
- Add some validation to dropdown widget values to flag duplicates.
- Fix dropdown to only return valid options if options changed dynamically.
- Fix group spacings to align better.
- Fix wave gauge to also allow using random msg properties. Issue #607

### 2.23.2: Maintenance Release

**Fixes**

- Fix dropdown to correct return values not labels

### 2.23.3: Maintenance Release

**Fixes**

- Fix regression in dropdown returning 0 value. Issue #614
- Fix ui\_textinput-CR to allow any step so floats validate ok. Issue #609
- Ensure voice option picks a unique selector. Issue #613
- Update libraries to fix missing weather/moon icons

### 2.23.4: Maintenance Release

**Fixes**

- Truncate input data array if larger than number of points required. Issue #617
- Fix dropdown regression to handle objects
- PR to report correct IP address when using Nginx or proxy. PR #620

### 2.23.5: Maintenance Release

**Fixes**

- Set checkbox label to be full width. Issue #622
- Add CSS for ui-list menu select to match theme.
- Add node-id property to each md-card.
- Force time picker image to contrast with background.
- Let slider show status even if no nodes attached to output.
- Fix dropdown to return correct message type.

As usual - don't forget to flush browser caches to reload latest code.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [10 July 2020 20:25 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/2 "2020-07-10T20:25:00Z")

</div>

> [@dceejay](#):
>
> Block direct websocket connection attempts - only allow upgrades.

What's that one? Is it something that I should consider for uibuilder?

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [10 July 2020 22:24 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/3 "2020-07-10T22:24:37Z")

</div>

It’s an attempt to check that the web socket is actually an upgrade of an existing connection and not a direct ws request in order to grab data and possibly inject control.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [11 July 2020 00:28 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/4 "2020-07-11T00:28:32Z")

</div>

Thanks, I'll be checking out the code and I'll try to do something similar in uibuilder.

---

<div class="post-metadata">

**Author:** ![StrongTown](https://avatars.discourse-cdn.com/v4/letter/s/4bbf92/32.png) [@StrongTown](https://discourse.nodered.org/u/StrongTown)\
**Post date:** [11 July 2020 13:00 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/5 "2020-07-11T13:00:31Z")

</div>

Last couple of times I've tried to upgrade Dashboard I get the following errors (log):

```auto
-----------------------------------------------------------
2020-07-11T12:55:12.256Z Install : node-red-dashboard 2.23.0

2020-07-11T12:55:13.452Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix="~" --production node-red-dashboard@2.23.0
2020-07-11T12:55:48.487Z [err] npm WARN checkPermissions Missing write access to /home/pi/.node-red/node_modules/node-red-contrib-example-lower-case
2020-07-11T12:55:50.990Z [err] npm 
2020-07-11T12:55:50.992Z [err] npm WARN .node-red No description
2020-07-11T12:55:50.992Z [err] npm WARN .node-red No repository field.
2020-07-11T12:55:50.992Z [err] npm WARN .node-red No README data
2020-07-11T12:55:50.992Z [err] npm WARN .node-red No license field.
2020-07-11T12:55:50.998Z [err] 
2020-07-11T12:55:51.027Z [err] npm
2020-07-11T12:55:51.029Z [err] ERR! code ENOENT
2020-07-11T12:55:51.029Z [err] npm ERR! syscall access
2020-07-11T12:55:51.029Z [err] npm ERR! 
2020-07-11T12:55:51.030Z [err] path /home/pi/.node-red/node_modules/node-red-contrib-example-lower-case
2020-07-11T12:55:51.030Z [err] npm ERR! errno -2
2020-07-11T12:55:51.030Z [err] npm ERR! enoent ENOENT: no such file or directory, access '/home/pi/.node-red/node_modules/node-red-contrib-example-lower-case'
2020-07-11T12:55:51.030Z [err] npm ERR! 
2020-07-11T12:55:51.033Z [err] enoent This is related to npm not being able to find a file.
2020-07-11T12:55:51.033Z [err] npm ERR! enoent 
2020-07-11T12:55:51.201Z [err] 
2020-07-11T12:55:51.202Z [err] npm ERR! A complete log of this run can be found in:
2020-07-11T12:55:51.202Z [err] npm ERR! /home/pi/.npm/_logs/2020-07-11T12_55_51_052Z-debug.log
2020-07-11T12:55:51.228Z rc=254

```

I have never installed and do not now have a node named **node-red-contrib-example-lower-case**. There is almost no mention oif this node on the internet or github. This problem is affecting any node upgrade I attempt.

Any suggestions?

Thanks  
st

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [11 July 2020 14:15 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/6 "2020-07-11T14:15:35Z")

</div>

Does that node appear in your package.json? If not then also look in package-lock.json.  
If it does appear in package.json then delete that entry (watch the commas) and try again.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [11 July 2020 14:32 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/7 "2020-07-11T14:32:49Z")

</div>

> [@Colin](#):
>
> package-lock.json

You can simply delete that file.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [11 July 2020 15:20 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/8 "2020-07-11T15:20:51Z")

</div>

> [@TotallyInformation](#):
>
> You can simply delete that file.

That keeps information about which versions of nodes are currently installed. So unless you have a requirement to keep a particular version of something installed then yes. I think it most unlikely that this file is involved in this problem though. I just wanted the op to check there if the node is not referenced in package.lock.

---

<div class="post-metadata">

**Author:** ![TotallyInformation](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/totallyinformation/32/31_2.png) [@TotallyInformation](https://discourse.nodered.org/u/TotallyInformation)\
**Post date:** [11 July 2020 15:23 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/9 "2020-07-11T15:23:28Z")

</div>

I've had lots of issues with it so I regularly delete it. npm rebuilds it as needed anyway. I think that it is more to do with being able to replicate your installation with a fixed set of package versions. Something that is less likely to be required with Node-RED installations.

---

<div class="post-metadata">

**Author:** ![StrongTown](https://avatars.discourse-cdn.com/v4/letter/s/4bbf92/32.png) [@StrongTown](https://discourse.nodered.org/u/StrongTown)\
**Post date:** [11 July 2020 15:25 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/10 "2020-07-11T15:25:20Z")

</div>

Thanks Colin,  
I did find it in both files (no idea why), deleted in both, then stop-start NR. But the same ERR is still showing about that node when I try to upgrade (which still fails). Is there somewhere else I could check?

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [11 July 2020 15:33 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/11 "2020-07-11T15:33:38Z")

</div>

Make sure it has not come back to package.json, delete the lock file, then from your .node-red folder run  
`npm install`  
and post the result here if there are any errors.

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [11 July 2020 15:34 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/12 "2020-07-11T15:34:22Z")

</div>

> [@TotallyInformation](#):
>
> I think that it is more to do with being able to replicate your installation with a fixed set of package versions.

Yes, that is what it is for, it records the current versions of everything installed.

---

<div class="post-metadata">

**Author:** ![StrongTown](https://avatars.discourse-cdn.com/v4/letter/s/4bbf92/32.png) [@StrongTown](https://discourse.nodered.org/u/StrongTown)\
**Post date:** [11 July 2020 15:40 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/13 "2020-07-11T15:40:54Z")

</div>

Followed your recommendation, here are the results.

 ![Image001](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/5/e53c83025a647e0548e7e7fe06d6f0d01c75b1b9.jpeg)

---

<div class="post-metadata">

**Author:** ![zenofmud](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/zenofmud/32/316_2.png) [@zenofmud](https://discourse.nodered.org/u/zenofmud)\
**Post date:** [11 July 2020 15:54 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/14 "2020-07-11T15:54:24Z")

</div>

Do a change directory (cd .node-red) to the .node-red directory then  
npm remove node-red-contrib-example-lower-case

(Check the spelling I’m doing this from my phone)

---

<div class="post-metadata">

**Author:** ![StrongTown](https://avatars.discourse-cdn.com/v4/letter/s/4bbf92/32.png) [@StrongTown](https://discourse.nodered.org/u/StrongTown)\
**Post date:** [11 July 2020 19:26 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/15 "2020-07-11T19:26:43Z")

</div>

Tried that `zenofmud`, no joy, however, I did a search for anything related to "lower" and found in the node\_modules directory (at the very bottom of the quite long directory listing) a broken link named **node-red-contrib-example-lower-case**. I deleted that link and all is working properly now.

Thanks to each of you for your help, you gave me ideas that kept me trying things to correct this. I'd given up a couple of times before. I now have the latest Dashboard (thanks `dceejay`).

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [11 July 2020 20:26 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/16 "2020-07-11T20:26:52Z")

</div>

> [@StrongTown](#):
>
> a broken link named **node-red-contrib-example-lower-case**

Ah, so it was a link to a non-existent folder. I guess at some point someone using the machine followed the [Create you first node](https://nodered.org/docs/creating-nodes/first-node) example and when finished, instead of uninstalling the node just deleted the folder. npm maybe looks in there even when uninstalling it, and fails because the link is broken. That is worth remembering for the future.  
In case you didn't realise, this was nothing to do with the dashboard, any npm action would have failed similarly. Presumably this is the first time you have used npm since the folder went AWOL.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [7 August 2020 13:50 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/17 "2020-08-07T13:50:42Z")

</div>

A few small fixes in

### 2.23.1: Maintenance Release

**Fixes**

- Fix date picker to return midnight on picked day. PR #600
- Add some validation to dropdown widget values to flag duplicates.
- Fix dropdown to only return valid options if options changed dynamically.
- Fix group spacings to align better.
- Fix wave gauge to also allow using random msg properties. Issue #607

### 2.23.2: Maintenance Release

**Fixes**

- Fix dropdown to correct return values not labels

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [4 September 2020 08:28 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/18 "2020-09-04T08:28:47Z")

</div>

One regression plus a couple of nice finds by the community. Thanks

### 2.23.3: Maintenance Release

**Fixes**

- Fix regression in dropdown returning 0 value. Issue #614
- Fix ui\_textinput-CR to allow any step so floats validate ok. Issue #609
- Ensure voice option picks a unique selector. Issue #613
- Update libraries to fix missing weather/moon icons

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [25 September 2020 08:51 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/19 "2020-09-25T08:51:22Z")

</div>

### 2.23.4: Maintenance Release

**Fixes**

- Truncate input data array if larger than number of points required. Issue #617
- Fix dropdown regression to handle objects
- PR to report correct IP address when using Nginx or proxy. PR #620

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [25 October 2020 08:51 UTC](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853/20 "2020-10-25T08:51:23Z")

</div>

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

[Next page](https://discourse.nodered.org/t/announce-dashboard-2-23-0-1-2-3-4-5/29853.md?page=2)
