# \[LINK OUT & LINK CALL\] Usability Requests

**URL:** <https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361>\
**Category:** Feature Requests\
**Created:** [1 December 2023 19:04 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361 "2023-12-01T19:04:22Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![SynoUser-NL](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/synouser-nl/32/85195_2.png) [@SynoUser-NL](https://discourse.nodered.org/u/SynoUser-NL)\
**Post date:** [1 December 2023 19:04 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/1 "2023-12-01T19:04:22Z")

</div>

I'd like to request a change to both the LINK OUT & LINK CALL nodes:

1. (Add the possibility to) Display the available links in alphabetical order.  
Currently, available LINK IN's are displayed in the order they are created. Having them available alphabetically would make searching for a specific LINK much easier.  
Especially if you follow some type of name convention for LINKs.

2. Add the option to display only the currently checked conneections.  
Rather than having to scroll through the list of LINKS, this option would make it much easier to see where the LINK node is currently connected to.

3. A Disabled LINK IN will show up identical to an Enabled LINK IN now.  
It would come in very handy sometimes to see if a connection is made to a disabled link.

Hope these changes will make it to a (near) future version.

Thanks!  
DenW

---

<div class="post-metadata">

**Author:** ![ralphwetzel](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ralphwetzel/32/53713_2.png) [@ralphwetzel](https://discourse.nodered.org/u/ralphwetzel)\
**Post date:** [1 December 2023 19:35 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/2 "2023-12-01T19:35:17Z")

</div>

> [@SynoUser-NL](#):
>
> (Add the possibility to) Display the available links in alphabetical order.

That looks like a 1-liner - which makes a lot of sense (for me).

> [@SynoUser-NL](#):
>
> Add the option to display only the currently checked conneections.

How about a checkbox above or below the list of nodes, labeled "Filter for linked nodes" or "Show linked nodes only"? Implementation isn't that difficult either...

Any objections / alternative opinions?

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [1 December 2023 19:49 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/3 "2023-12-01T19:49:07Z")

</div>

I've asked for this too.

When you have a lot of these kind of links and want to check _who is connected to whom_ it is not easy with ALL the nodes shown.

The option to show `only connected nodes` would really be handy.

WRT sorting.  
Maybe good.  
But I think keeping the flow groups is better as if you are only looking for _links on this tab_ having them _ALL_ sorted could be painful.

---

<div class="post-metadata">

**Author:** ![SynoUser-NL](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/synouser-nl/32/85195_2.png) [@SynoUser-NL](https://discourse.nodered.org/u/SynoUser-NL)\
**Post date:** [1 December 2023 21:11 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/4 "2023-12-01T21:11:14Z")

</div>

No objections here.. 🙂

I agree with @Trying_to_learn that keeping flow groups as well is better. So if links can be sorted alphabetically per flow group that would be excellent!  
Or, if I'm really pressed for ideas, maybe have a sort toggle to alternate between 3 sorting options: original -\> alphabetical per flow -\> all alphabetical.

Sorry I can't do the work myself..  
Thanks! DenW

---

<div class="post-metadata">

**Author:** ![Trying\_to\_learn](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/trying_to_learn/32/28400_2.png) [@Trying\_to\_learn](https://discourse.nodered.org/u/Trying_to_learn)\
**Post date:** [1 December 2023 21:14 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/5 "2023-12-01T21:14:58Z")

</div>

I guess that _fell through the cracks_ about **HOW** they are sorted alphabetically.

On that maybe sort the GROUP names rather than having the order they are in the tab list.  
That is a grey area too - alas.

Sometimes I have all my _MAIN_ flows - say - at the left and the _play_ flows at the right. (New tabs etc)  
and so if I am searching for links _near by_ having them in tab order would be better.

But if you get down to the basics of names, then the tabs/groups should also be sorted.

(Another option in the sort type list?) 😉

Just saying.

---

<div class="post-metadata">

**Author:** ![SynoUser-NL](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/synouser-nl/32/85195_2.png) [@SynoUser-NL](https://discourse.nodered.org/u/SynoUser-NL)\
**Post date:** [1 December 2023 21:39 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/6 "2023-12-01T21:39:35Z")

</div>

Added a third request in OP.. I knew I forgot something..

The sorting thingy is slowly becoming a topic of itself, it appears..  
For me, having the links sorted alphbetically within the flows is more important than having the flows itself sorted. I'd suggest starting with that and see if this presents a (better) workable solution.

---

<div class="post-metadata">

**Author:** ![ralphwetzel](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ralphwetzel/32/53713_2.png) [@ralphwetzel](https://discourse.nodered.org/u/ralphwetzel)\
**Post date:** [2 December 2023 13:05 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/7 "2023-12-02T13:05:08Z")

</div>

Preview:

![LinkNodeTest](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/c/5/c5aafb0fca5d9d164c400c93e0c346ab55afa02e.gif)

- `Flows` are displayed in the order as they appear in the editor.
- `Link In` nodes are ordered alphabetically. Was thinking about sorting those with the default label `Link In ###` according to their trailing number. Opinions about this?
- Selection of `connected link nodes` by checkbox under the list.

Is there a standard style to depict labels of _disabled_ nodes? As you might have noticed, I applied greyish color and a dashed underline. Better ideas?

---

<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:** [2 December 2023 13:46 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/8 "2023-12-02T13:46:33Z")

</div>

Without wishing to push the scope too far, another slight annoyance I get with link nodes - especially link-in - is that, when copying a section of flow with a link-in, all of the links are also copied. It would be nice therefore to have a button/checkbox to disconnect all links at once.

---

<div class="post-metadata">

**Author:** ![SynoUser-NL](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/synouser-nl/32/85195_2.png) [@SynoUser-NL](https://discourse.nodered.org/u/SynoUser-NL)\
**Post date:** [2 December 2023 20:10 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/9 "2023-12-02T20:10:34Z")

</div>

That looks very usable to me!  
Great that you could do this on such short notice.

To my knowledge, there is no standard style for disabled nodes.  
The way you've done it here seems perfectly fine! 🙂

Thanks for your work on this, much appreciated.  
DenW

---

<div class="post-metadata">

**Author:** ![ralphwetzel](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ralphwetzel/32/53713_2.png) [@ralphwetzel](https://discourse.nodered.org/u/ralphwetzel)\
**Post date:** [2 December 2023 20:28 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/10 "2023-12-02T20:28:48Z")

</div>

Don't celebrate too early! 😉 So far, this is just a proposal.  
I'll wait another day or two, to collect further feedback. Subsequently I'd create a PR ... and then it's up to the core maintainers if they accept this - or reject. And even if they accept it, it's going to last some time until you see this in a NR release.

---

<div class="post-metadata">

**Author:** ![omrid](https://avatars.discourse-cdn.com/v4/letter/o/77aa72/32.png) [@omrid](https://discourse.nodered.org/u/omrid)\
**Post date:** [3 December 2023 10:31 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/11 "2023-12-03T10:31:36Z")

</div>

While we are at it... let me add another request.

One of the valuable latest improvements in the **link-call** node, was the ability to set a dynamic target ( **msg.target** ), as an alternative to selection from a list of link-in nodes. This increases the robustness, (specifically when calling a link-in node which is on another tab) as the link-in node Id may change in the other tab (e.g. via copy/paste, import etc.), and thus break the virtual wire.

My suggestion/request is to add the dynamic target functionality also to **link-out** nodes (today, when I set a one-way link out to another tab, I use a link-call with dynamic target, and discard the returning message).

---

<div class="post-metadata">

**Author:** ![ralphwetzel](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ralphwetzel/32/53713_2.png) [@ralphwetzel](https://discourse.nodered.org/u/ralphwetzel)\
**Post date:** [3 December 2023 20:17 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/12 "2023-12-03T20:17:13Z")

</div>

> [@omrid](#):
>
> This increases the robustness, (specifically when calling a link-in node which is on another tab) as the link-in node Id may change in the other tab (e.g. via copy/paste, import etc.), and thus break the virtual wire.

While I understand the request, I don't get the argument of robustness. If the `id` of the `link-in` node changes, you need to "reconnect" the wire\*. As such it doesn't matter if it's a static or a dynamic definition - the task is mandatory and the "workload" similar (or even slightly less in case of static wire).  
Where's the benefit now to use always dynamic definition wires?

EDIT: \* Or do you call the `link-in` by name & let NR figure out the `id` of the target node?

---

<div class="post-metadata">

**Author:** ![ralphwetzel](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ralphwetzel/32/53713_2.png) [@ralphwetzel](https://discourse.nodered.org/u/ralphwetzel)\
**Post date:** [4 December 2023 07:45 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/13 "2023-12-04T07:45:29Z")

</div>

**Update** to the sort order:

- Sort is always done `lowerCase()`.
- `link in` and `link out` nodes with a default label will be be ordered according to their trailing number:

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/e/2/e2468b9b13d230c8db7ac24270f882b58b3df09f.png)

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [4 December 2023 08:20 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/14 "2023-12-04T08:20:57Z")

</div>

> [@ralphwetzel](#):
>
> EDIT: \* Or do you call the `link-in` by name & let NR figure out the `id` of the target node?

That is kinda how link call works. From memory,:

- if there is single link-in matching the name in target found on any tab, it calls that.
- if there are multiple matching named link-in but only one of them is in the same tab, it calls that.
- Anything else, an error is thrown.

It was designed this way to permit copy and paste across tabs without having to rename links.

---

<div class="post-metadata">

**Author:** ![omrid](https://avatars.discourse-cdn.com/v4/letter/o/77aa72/32.png) [@omrid](https://discourse.nodered.org/u/omrid)\
**Post date:** [4 December 2023 11:49 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/15 "2023-12-04T11:49:09Z")

</div>

> [@ralphwetzel](#):
>
> EDIT: \* Or do you call the `link-in` by name & let NR figure out the `id` of the target node?

Exactly. The dynamic target serves as a "logical" node-id, resolved at runtime. Same as calling a server by hostname, not by IP or MAC address.  
In our implementations, we have multiple developers working on the same system, each on his own tabs. Hence you may not be aware of changes in other tabs, and your link-outs may be broken without you knowing about it.  
Moreover, a dynamic target can also serve as a "switch": instead of maintaining multiple links and routing through a switch node, you just specify a name and NR will take you to the target (you can even be forward-compatible by specifying a **future** target).

---

<div class="post-metadata">

**Author:** ![gregorius](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gregorius/32/73816_2.png) [@gregorius](https://discourse.nodered.org/u/gregorius)\
**Post date:** [4 December 2023 17:12 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/16 "2023-12-04T17:12:46Z")

</div>

Hi There,

is there anything against making a double-click in the link-call list jump to the corresponding link-in node? I've already asked about a [visual representation](https://discourse.nodered.org/t/link-call-nodes-visually-showing-the-connections-to-link-in-node/81396) but that is non-trivial so instead ...

There is this `treelistconfirm` event that represents a double-click and could be used to place force on the corresponding link-in node. I was looking through the code and my guestimate would be somewhere [here](https://github.com/node-red/node-red/blob/eff063a748f9a00ce0dc9603161d028141df728b/packages/node_modules/%40node-red/nodes/core/common/60-link.html#L60-L77) to add:

```auto
.on('treelistconfirm', function(event, item) {
     if ( item.node ) {
          RED.workspaces.show(item.node.z,false,false,true);
          let ndeid = item.node.id;
          setTimeout( () => {
            RED.view.reveal(ndeid, true);
            RED.view.redraw();
          }, 38);
     }
})

```

then double clicking on the entry would move to the link-in but _only_ for the link-call node.

---

<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:** [4 December 2023 21:18 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/17 "2023-12-04T21:18:44Z")

</div>

Seems like a cool idea to me and a potentially nice small enhancement.

---

<div class="post-metadata">

**Author:** ![gregorius](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/gregorius/32/73816_2.png) [@gregorius](https://discourse.nodered.org/u/gregorius)\
**Post date:** [5 December 2023 08:23 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/18 "2023-12-05T08:23:14Z")

</div>

> [@gregorius](#):
>
> There is this `treelistconfirm` event that represents a double-click and could be used to place force on the corresponding link-in node. I was looking through the code and my guestimate would be somewhere [here](https://github.com/node-red/node-red/blob/eff063a748f9a00ce0dc9603161d028141df728b/packages/node_modules/%40node-red/nodes/core/common/60-link.html#L60-L77) to add:

I tried this out and it doesn't work because the list-item has a radio field which means that the `treelistconfirm` event isn't triggered (see [here](https://github.com/node-red/node-red/blob/eff063a748f9a00ce0dc9603161d028141df728b/packages/node_modules/%40node-red/editor-client/src/js/ui/common/treeList.js#L139) and [here](https://github.com/node-red/node-red/blob/eff063a748f9a00ce0dc9603161d028141df728b/packages/node_modules/%40node-red/editor-client/src/js/ui/common/treeList.js#L734) in the treeList code).

Secondly using the double-click is actually bad design idea since it implies changing the target of the link-call node, i.e., when dblclicking a link-in target in the list causes it to be selected.

Oh well, it was nice while it was an idea!

---

<div class="post-metadata">

**Author:** ![ralphwetzel](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ralphwetzel/32/53713_2.png) [@ralphwetzel](https://discourse.nodered.org/u/ralphwetzel)\
**Post date:** [5 December 2023 09:17 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/19 "2023-12-05T09:17:47Z")

</div>

> [@gregorius](#):
>
> Oh well, it was nice while it was an idea!

To continue on this: The elements of the list may be customized. I can imagine a link (indicating) icon, displayed on hover, that - on click - triggers a jump to the connected node in one of the flows.  
Should be do-able...

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [5 December 2023 13:05 UTC](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361/20 "2023-12-05T13:05:54Z")

</div>

> Should be do-able...

Can I ask it is _not_ done as part of any initial PR to improve the sorting etc of the list? I have UX concerns over this bit and I wouldn't want to hold up progress on the other aspects.

[Next page](https://discourse.nodered.org/t/link-out-link-call-usability-requests/83361.md?page=2)
