This makes a number of changes to Dashboard Links, transforming them into something much more useful and iterable for dashboard authors.
DashboardLinks now run in-process (as opposed to in-an-iframe), which brings a number of significant technical gains. Links load much faster, have much lower overhead, and are noticeably more responsive. They have also been upgraded in status to being a framework feature- this will allow other sorts of parts to leverage DashboardLinks.
The most significant user-facing enhancement in this PR is "embedded" dashboards. Previously, DashboardLinks could only refer to a different dashboard (making them painful to iterate on, and especially painful to use in Jupyter). Now, DashboardLinks can also refer to a part of the dashboard they render in! This 'subregion' is treated as a template, and transformed into an independent model by DashboardSerializer.toJsonFromPartial. These subregions can be safely hidden away in the main dashboard, and need no network requests to load (unlike DashboardLinks relying on a separate file).
This makes a number of changes to Dashboard Links, transforming them into something much more useful and iterable for dashboard authors.
DashboardLinks now run in-process (as opposed to in-an-iframe), which brings a number of significant technical gains. Links load much faster, have much lower overhead, and are noticeably more responsive. They have also been upgraded in status to being a framework feature- this will allow other sorts of parts to leverage DashboardLinks.
The most significant user-facing enhancement in this PR is "embedded" dashboards. Previously, DashboardLinks could only refer to a different dashboard (making them painful to iterate on, and especially painful to use in Jupyter). Now, DashboardLinks can also refer to a part of the dashboard they render in! This 'subregion' is treated as a template, and transformed into an independent model by
DashboardSerializer.toJsonFromPartial
. These subregions can be safely hidden away in the main dashboard, and need no network requests to load (unlike DashboardLinks relying on a separate file).Here's a dashboard to test the feature:
EmbeddedHoverTest.dashboard.txt
And a screenshot of it in action (with the templated subregion shown on the left for clarity):
Fixes #69 Fixes #72 Fixes #73