# Unofficial mdasboard vs official dashboard

**URL:** <https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320>\
**Category:** Dashboard\
**Created:** [8 January 2022 17:11 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320 "2022-01-08T17:11:25Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![ThibautRuy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/thibautruy/32/28480_2.png) [@ThibautRuy](https://discourse.nodered.org/u/ThibautRuy)\
**Post date:** [8 January 2022 17:11 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/1 "2022-01-08T17:11:25Z")

</div>

Hi,

As I am facing issues with the mdashboard node (layout feature not working with node-red version 2.1.4), I am wondering if the below mdashboard specific feature is still only available in this contrib or also in the official dashboard (since the creation of mdashboard, it may have been included?):

[https://github.com/umasudhan/node-red-contrib-mdashboard](https://github.com/umasudhan/node-red-contrib-mdashboard)

> For example, if two users have the same dashboard open and one user types into a text input, the other user will not get the text update. This works well when a typical web form like behavior is needed- multiple users can use the same dashboard url as a form to submit data back to the flow.

---

<div class="post-metadata">

**Author:** ![jbudd](https://avatars.discourse-cdn.com/v4/letter/j/5f8ce5/32.png) [@jbudd](https://discourse.nodered.org/u/jbudd)\
**Post date:** [8 January 2022 19:17 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/2 "2022-01-08T19:17:54Z")

</div>

Using standard dashboard, two different browsers on the same PC, what one types in the text input field is visible on both.

---

<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:** [8 January 2022 21:15 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/3 "2022-01-08T21:15:52Z")

</div>

> [@ThibautRuy](#):
>
> mdashboard node

That node is no longer being maintained and hasn't been updated in 2 years.

I believe the main intent of the author was to enable multi-client support in the front-end and that may be the only real difference?

Of course, Dashboard has moved forward a LOT in the last two years thanks to the sterling efforts of @dceejay and the other folk who have provided extension nodes.

---

<div class="post-metadata">

**Author:** ![ThibautRuy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/thibautruy/32/28480_2.png) [@ThibautRuy](https://discourse.nodered.org/u/ThibautRuy)\
**Post date:** [9 January 2022 15:10 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/4 "2022-01-09T15:10:47Z")

</div>

Thanks but do you think it is possible now to achieve the same result with the standard dashboard and avoid multiple users to see the same ?

---

<div class="post-metadata">

**Author:** ![ThibautRuy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/thibautruy/32/28480_2.png) [@ThibautRuy](https://discourse.nodered.org/u/ThibautRuy)\
**Post date:** [9 January 2022 17:08 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/5 "2022-01-09T17:08:18Z")

</div>

Same issue with the Dashboard node, then it is not specific to mdashboard, I created an issue in github...

---

<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:** [10 January 2022 08:01 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/6 "2022-01-10T08:01:55Z")

</div>

Please provide a link to the issue.

---

<div class="post-metadata">

**Author:** ![ThibautRuy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/thibautruy/32/28480_2.png) [@ThibautRuy](https://discourse.nodered.org/u/ThibautRuy)\
**Post date:** [10 January 2022 21:53 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/7 "2022-01-10T21:53:38Z")

</div>

> <https://github.com/node-red/node-red-dashboard/issues/745>
>
> \<!--
> \## Before you hit that Submit button....
> 
> This issue tracker is for prob…lems with the Node-RED-Dashboard only.
> 
> If your issue is:
> - a general 'how-to' type question,
> - a feature request or suggestion for a change
> 
> please use the Dashboard category in the \[Node-RED Forum\](https://discourse.nodered.org) or \[slack team\](https://nodered.org/slack).
> 
> You could also consider asking a question on \[Stack Overflow\](https://stackoverflow.com/questions/tagged/node-red) and tag it \`node-red\`.
> 
> That way the whole Node-RED user community can help, rather than rely on the core development team.
> 
> \## So you have a real issue to raise...
> 
> To help us understand the issue, please fill in as much of the following information as you can:
> \--\>
> 
> \### Steps to reproduce
> I created tabs and groups and added some nodes like templates etc, then I try to use the nice layout feature to position and resize my widgets. I used to use this feature on previous versions of node-red without any issue.
> 
> \### What happens?
> The layout window does not show up, or it is displayed wrongly... after I double click on a node
> Javascript console of Chrome shows an error (probably the same in Safari but I do not know how to see it)
> 
> !\[image\](https://user-images.githubusercontent.com/14328511/148691582-b63f89a8-0d3e-40f2-b144-178ef4562391.png)
> !\[image\](https://user-images.githubusercontent.com/14328511/148691629-e9ecf83d-3cfe-49ba-8885-33b247535823.png)
> 
> 
> 
> \### What do you expect to happen?
> I would expect the layout feature to properly work, display the window and allow me to manage my widgets.
> 
> \### Please tell us about your environment:
> 
> \- \[\] Node-RED-Dashboard version: 3.1.3
> \- \[\] Node-RED version: 2.1.4
> \- \[\] node.js version: v12.22.8
> \- \[\] npm version:6.14.15
> \- \[\] Platform/OS: MacOS
> \- \[\] Browser: Chrome & Safari

---

<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:** [10 January 2022 22:27 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/8 "2022-01-10T22:27:45Z")

</div>

Do you have both dashboards installed at the same time? I believe that will cause some issues. Only have one installed at a time.

---

<div class="post-metadata">

**Author:** ![meeki007](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/meeki007/32/12499_2.png) [@meeki007](https://discourse.nodered.org/u/meeki007)\
**Post date:** [11 January 2022 20:22 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/9 "2022-01-11T20:22:48Z")

</div>

".... it is possible now to achieve the same result with the standard dashboard and avoid multiple users to see the same?"

It is ...but its best to not think of it as multi user. The solution achieved by mdashboard was '

```auto
disableFeedbackToAllSessions

```

It just keeps each user from seeing the update to the page from another user. This solution I worked on with @dceejay ... but it has issues with the state of switches (true/false) because if one user turns a button/switch from on to off (true to false) then no other users will see the state has changed.

Over time working on including disableFeedbackToAllSessions to the official dashboard I began to see things dcejay's way and realized what I was doing was stupid: quote from the msg I sent him:

> _" I've had a total paradigm shift in my thoughts on `disableFeedbackToAllSessions` idea._
> 
> _I'm sure I'm in the top 10% of people who push the dashboard to its limits without using a template node and now I'm having second thoughts on this path. I'm now thinking making dashboard have this functionality is like making a 11second 1/4 mile Reliant Robin. It's cool and all but a waste of time. Better/cheeper to buy a car made for the task. The amount of maintenance required is not worth it._
> 
> _The only reason I wanted `disableFeedbackToAllSessions` was overhead._
> 
> _Right now I use individual docker instances or individual linux users all running their own copy of node-red dashboard. Its real easy as I have a main admin page without access to the outside world spin up/down users as needed. Sure it costs me in ram(to be safe) but the old dell 620rx 20 core is never really burdened by it._
> 
> _I'm starting to wonder if I'm trying to solve a non problem for the sake of tinkering."_

I did complete most of the work needed however. If you wish to integrate it into dashboard see these links and have at it. But as dashboard is approaching end of life and both dceejay and I not wanting to include it you will be on your own.

> <https://github.com/node-red/node-red-dashboard/pull/721>
>
> If you wish to disable feedback to all sessions and allow multiple users input/t…rigger data without all clients getting
> notified of that change, you can edit your settings.js file to set the dashboard to disable feedback to all sessions:
> \`ui: {disableFeedbackToAllSessions: true}\`.
> When disableFeedbackToAllSessions is set to true the widget state is emitted only to the socket origin that caused the change.

Good luck.

---

<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 January 2022 22:56 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/10 "2022-01-11T22:56:09Z")

</div>

And of course, if you want complete freedom to do anything, maybe consider uibuilder 🙂

Not much handholding for the UI design but you get to use any (or no) framework and do whatever you like.

---

<div class="post-metadata">

**Author:** ![ThibautRuy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/thibautruy/32/28480_2.png) [@ThibautRuy](https://discourse.nodered.org/u/ThibautRuy)\
**Post date:** [16 January 2022 18:34 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/11 "2022-01-16T18:34:19Z")

</div>

Yes I have both, I will try to keep only one

---

<div class="post-metadata">

**Author:** ![ThibautRuy](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/thibautruy/32/28480_2.png) [@ThibautRuy](https://discourse.nodered.org/u/ThibautRuy)\
**Post date:** [16 January 2022 18:35 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/12 "2022-01-16T18:35:52Z")

</div>

I started testing uibuilder with bootstrap and vuejs, indeed nice, it is great also to start from the sample. I need to understand how to inject data first too…

---

<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:** [16 January 2022 20:27 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/13 "2022-01-16T20:27:31Z")

</div>

That is easy - at least for simple data. Try creating a div in your html:

```auto
<div>{{myvar}}</div>

```

And define that in your index.js file:

```auto
data() { return {
    myvar: '',
}),

```

also in the .js file,

```auto
mounted: function(){
    const app = this

    uibuilder.onChange('msg', function(msg){
        app.myvar = msg.payload
    })
},

```

Send some messages with msg.payload set to a string and see the UI change magically 😀

It can be slightly more complex if you have a complex object that you are dealing with - the trick there is to predefine the object as much as possible - with dummy values - in your `data` section so that VueJS understands that it needs to pay attention to the deep parts of the object. You can also force VueJS to take note as well if you need to but best to avoid that if you can.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [15 February 2022 20:28 UTC](https://discourse.nodered.org/t/unofficial-mdasboard-vs-official-dashboard/56320/14 "2022-02-15T20:28:24Z")

</div>

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