# Ui\_link node missing(?)

**URL:** <https://discourse.nodered.org/t/ui-link-node-missing/2011>\
**Category:** Dashboard\
**Created:** [2 August 2018 15:44 UTC](https://discourse.nodered.org/t/ui-link-node-missing/2011 "2018-08-02T15:44:26Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![gpriestland](https://avatars.discourse-cdn.com/v4/letter/g/3d9bf3/32.png) [@gpriestland](https://discourse.nodered.org/u/gpriestland)\
**Post date:** [2 August 2018 15:44 UTC](https://discourse.nodered.org/t/ui-link-node-missing/2011/1 "2018-08-02T15:44:26Z")

</div>

I am trying to create hyperlink on the Node-red dashboard that allows me to open a CSV files from a single click. I read that the ui\_link node can do this and went to test it, however I can't seem to find the ui\_link node in the dashboard nodes lost on the Left hand side of the screen. I can see it in the list of nodes if I go to Manage Palette, but it does not appear in the node picker on the left. I think node-red is on the latest version (0.17.5) and also node-red-dashboard (2.9.6).  
What am I doing wrong?

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

---

<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:** [2 August 2018 16:02 UTC](https://discourse.nodered.org/t/ui-link-node-missing/2011/2 "2018-08-02T16:02:34Z")

</div>

Latest version of NR is 0.18.7 - I suggest you run the bash script at [https://nodered.org/docs/hardware/raspberrypi](https://nodered.org/docs/hardware/raspberrypi)

However I do remember ever seeing the ui link node

---

<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:** [2 August 2018 16:19 UTC](https://discourse.nodered.org/t/ui-link-node-missing/2011/3 "2018-08-02T16:19:43Z")

</div>

I think that node is not from the standard node-red-dashboard. Did you have a different dashboard set installed? If so then I suspect may be left over from there somehow.  
Maybe first try re-starting node-RED.

---

<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:** [2 August 2018 17:51 UTC](https://discourse.nodered.org/t/ui-link-node-missing/2011/4 "2018-08-02T17:51:46Z")

</div>

Ui\_link is an internal node that can be added via the dashboard tab in the editor. But I don’t think it will do what you want. It is for linking/opening other web pages. I guess you could point it at a csv file but it would only try to view it wheras I suspect you want to load it in and process it.

---

<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:** [2 August 2018 18:14 UTC](https://discourse.nodered.org/t/ui-link-node-missing/2011/5 "2018-08-02T18:14:52Z")

</div>

@dceejay aren't you suppose to be on vacation? 😜

---

<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:** [2 August 2018 18:19 UTC](https://discourse.nodered.org/t/ui-link-node-missing/2011/6 "2018-08-02T18:19:57Z")

</div>

Yup 🍻 🏖

---

<div class="post-metadata">

**Author:** ![gpriestland](https://avatars.discourse-cdn.com/v4/letter/g/3d9bf3/32.png) [@gpriestland](https://discourse.nodered.org/u/gpriestland)\
**Post date:** [3 August 2018 07:38 UTC](https://discourse.nodered.org/t/ui-link-node-missing/2011/7 "2018-08-03T07:38:35Z")

</div>

@deecejay. Yep you are correct - I want the CSV file to automatically open up when I click on the hyperlink. So I will ignore the ui\_link node if it does not do that.

I initially tried making a text box on the UI and managed to create hyperlink to CSV file using html tags in the text field to file:///C:/folder/filename.csv

`<a href='" + msg.filename + "'>" + msg.filename + "</a>`

This appears to create a hyperlink with the correct link but clicking the link does nothing. If I right click and Copy Link Address the paste this into the web browser it will automatically download the file. If I paste the link into windows explorer then it opens the file as expected.

I guess node-red is in some sort of protected environment to stop me opening the link directly from the web page.

I perhaps should have said before that this is all running in a windows 10 environment...

PS if you are on holiday - enjoy it - this can wait a bit!!

---

<div class="post-metadata">

**Author:** ![gpriestland](https://avatars.discourse-cdn.com/v4/letter/g/3d9bf3/32.png) [@gpriestland](https://discourse.nodered.org/u/gpriestland)\
**Post date:** [3 August 2018 07:42 UTC](https://discourse.nodered.org/t/ui-link-node-missing/2011/8 "2018-08-03T07:42:05Z")

</div>

@zenofmud, you are correct. It is actually running on 0.18.7.

0.17.5 was what it was running on before I updated it. oops

---

<div class="post-metadata">

**Author:** ![shrickus](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/shrickus/32/517_2.png) [@shrickus](https://discourse.nodered.org/u/shrickus)\
**Post date:** [4 August 2018 12:48 UTC](https://discourse.nodered.org/t/ui-link-node-missing/2011/9 "2018-08-04T12:48:36Z")

</div>

A better way to serve this csv file to the browser is to use an `http in` node, effectively creating an http endpoint that retrieves the file contents and sends the data, along with the correct content-type, using the http protocol.

This should be fairly simple, since the data is in a known file location... a typical flow would be:  
`http in` -\> `change` -\> `file in` -\> `change` -\> `http response`

The first `change` node is used to "save" the `msg.payload` and/or `msg.res` fields (if necessary -- probably not for this example). The second `change` node sets up the response data and/or headers (like content-type). This may also not be necessary in your case, since you can set static headers right in the response node.
