In general, dashboards aren't all that well suited to data drill down, but I keep wanting to support some drill-down... What I mean by that is that the dashboard displays some data and I'd like to be able to click on it and get a page with more data. And ideally keep going...
To make it a bit more concrete, here is an example I just implemented. This is a site that manages a growing list of Raspberry Pis that are deployed out in the field (collecting radio pulses to track bird migrations):
I have a project drop-down that populates the table with systems. I can click on a row in the table and get teleported to the second "station" tab, which then displays more info:
So far so good, it actually works! Thanks to the new session management and msg._fd_socket
only my browser tab displays the data for the system I clicked on.
An alternative implementation would have been to pop-up a full-page grid with the information. That works too.
What's not so cool is that the URL shows nothing useful. I can't bookmark that page or email someone a link so they can go straight to the data for that specific system.
So the way it currently works is that:
- FlexDash assigns me some session ID (#1234) and sets
msg._fd_socket="#1234"
- when I click on the table in the first screen shot the command to move me to the second tab is only sent to my browser thanks to
_fd_socket
and the data to populate the charts is also only sent to my browser.
To make it work using the address bar like conventional sites work it would have to be done differently. The best I can come with right now is:
- Instead of
open tab 'station'
I would want to send FD a command likeopen /tab/station/station_id/D011RPI31F2B
- FlexDash would then put that into the address bar and send a request back of the form "send me the data for /tab/station/station_id/D011RPI31F2B"
- my flow would then get that message and send the same data as now and the charts would populate
So the difference is that instead of always just pushing the data this involves the browser and lets the browser (really just FlexDash) request the data. If done correctly, someone pasting the URL into the browser would immediately see the right page with the right data, which is not currently possible.
Something else this could enable is having multiple layouts per page. Right now I have to use two tabs for one task. The first tab has the selector, the second the details, and when the user clicks on the selector the browser is switched to the second tab when really what's expected is just for the page content to change. Hmmm, I could perhaps use grids for that content switching... The tab could be configured to show grid 1 for /tab/station
and grid 2 for /tab/station/station_id/*
...
Does this sound interesting? Am I just way off the deep end?