Thank you for posting this. I really like the concept and its simplicity.
Great work! Thanks!
I had a very similar requirement and used the Chrome extension "revolver" to do this.
This worked out quite well, but I noticed that with both the revolver extension, and your solution above, the dashboard is loaded when the page is shown. If your dashboards take a little time to render, then you have a wall display with a loading spinner shown quite a lot of the time.
I have updated your code to double buffer the pages: load up the next one in the background while showing the current one in the foreground. When the timeout hits, instantly swap the iframes and start loading the next one in the background. Seems to work quite well for me, I don't see the loading spinner any more!
Thanks for posting the original code,
RotatingDisplay.html.zip 1.7 KB
Got this to work perfectly, however is there a way to login to tableau server in the script or bipass the login. That's the only issue I have is I have to manually login. We are using it the same way to show viz around the organization.
Sure, consider using Trusted Tickets. This would allow you to implement (silent) Single Sign on.
Are you aware if this solution is already been implemented somewhere? I have a client who have retail stores in various locations and they would like to see Tableau report on each of these locations through a TV monitor. I have tested the solution suggested by Jordan and it works well however I just wanted to check if there has been a successful implementation in a multi-location scenario.
If trying to do a rotating set of dashboards, try deck.js or reveal.js. They both are a great for this. All the visualizations load in order once the first page is displayed, in other words after page 2 is loaded then page 3 starts to load even if you are still on page 1, so they are ready by the time they are displayed. This works with Tableau Server or Tableau Public.
One word of caution. If you don't need real-time data to display, then images might be better so you aren't banging on the server constantly or set the rotation speed to be very slow.
Example using deck.js.
The code for auto rotating is in the presentation.
Example of reveal.js. It's very easy to auto rotate in reveal as well.
We have been successfully running the "RotatingDisplay.html". After updating to 9.1 yesterday, it no longer works. It appears a secure web site (https://) does not want to work with the iframe. We went back to 9.05 and all is well again. Can you see what is happening? Thanks.
Thank you for your solution. I have implemented this, but the data is not refreshing. Should this solution update for dashboards which have a live connection?
This code (RotatingDisplay and SampleURL) would work perfectly for me, for informational page rotations that we want to do on displays in our facility. I'm not much of an HTML or JS coder - what I would like to do is remove the manual elements and have the information hard-coded in the script for the .csv file I wish to use, and have rotation start automatically.
Someone with better skills want to tell me how to accomplish this?
I think you could piece this together with some blocks of JS code. Here's the general outline.
1.) Use some code to read the CSV file. Here's a few links that could help put that together.
2.) Use Reveal.JS as the platform for presenting the slides (auto rotate is a built-in function).
- GitHub - hakimel/reveal.js: The HTML Presentation Framework
3.) Dynamically build the section tags [probably the trickiest part of this]
- parse the CSV file content into an array (or use something like Papa Parse above)
- loop through from 1 to n (number of records in the CSV) and build the <section> portions of the slide content with the Tableau URL
- as it loops build the HTML to present
The final result is a list of Tableau Server/Public URLs in a CSV. The code reads it and creates a section tag for each one, which presents as HTML.
Hope this helps.
Several of the visualization didn't populate in your Reveal presentation.
Does this work with the Interactor named user License model of Tableau Server or the Core Server Licensing Model with the guest account?
For any scenario where unidentified and/or unknown numbers of users view Tableau vizzes across big displays, you need a Core license.
Is this stated clearly in the EULA?