In my series of experiments showing Grist pages inside Grist HTML widget by showing it as iFrames, I came up with an excellent use case: DASHBOARDS
Explanation… Grist does not allow your pages to be scrollable. You can have widgets that are scrollable, if their content is larger than their page space.
So you can NOT have daskboard pages with dozens of graphics, tables, etc.
Even with like 6 charts, they already get so small that they are somewhat unusable.
HOWEVER, widgets in a page occupy a proportion of a screen.
So if you have widgets each one occupying 10% of a 1000 pixels tall screen, you can´t see NOTHING.
But if the screen is 3000 pixels tall, the widgets will be resized…
So what is a solution? To fill a page with widgets, then show the page as an iframe inside a Grist HTML widget!!!
More than that, as the iframe URL can be created by record, and you can make the HTML read those records, you can have a table with a list of Dashboards, each one with the page URL of a dashboard full of widgets.
Then as you just change records in the page, you select a new dashboard, all of them SCROLLABLE, because they are pages being shown INSIDE widgets (which are scrollable, unlike pages)
In this new example, I filled a single page with 7 rows of charts. Basically, as you can see, you can´t see anything at all
that SAME PAGE above, without changing ANYTHING, seen in an HTML widget showing an iframe link to that page with height set to 300 vh
This is amazing! Thank you so much!
Thanks Anais. Maybe the same process could be made more straightforward somehow?
For example, one problem is that I can´t use this solution on our self hosted version. I must use HTML widget THROUGH an URL (custom widget) because the HTML Widget has a secure feature to not display iFrames.
I wish someone from the Grist team changed the HTML Widget to it would automatically allow iFrames if from the same host as the widget itself.
Another option would be to create a specific iFrame widget based on this solution (thus, based on the HTML widget).
Then the pages it would list would be based on the side panel configuration.
a lost of Grist pages could be set on the configuration panel, as well as their vertical and horizontal size in pixels.
The choice of page to display then being displayed from the widget itself, like a dropdown at the top left of the widget.
I will make a test with the HTML widget to enable a feature that I have asked some 3 times for Grist already : widgets inside widgets
I mean… I guess if I use an iframe widget in a page… then I display that page inside another iFrame… this would allow forms with inline tables showing child records for example