Sync Module Scroll Bars on Dashboard


Hi team,


Wondering whether there is a way to sync the movement of the vertical Module scroll bars on Dashboards. My current situation is where I am displaying data from different modules side by side where the same List is used on the rows. I want to only display the List once on the far left but obviously if either module vertical scroll bar is moved then the list items are out of sync between the modules. This primarily is happening where I want do display some qualitative data about the list items and then display some quantitative Time Series data to the right of it


I can create a new list which has a clone version of the time periods required and also the other line items & then all the data could be forced into the 1 module but this is complicated and requires different formulas for list items which slows down the system and defeats the purpose of dimensionality


Any ideas on how I can present this data?








  • @MarkTurkenburg 

    I really like this question because I've faced this before myself.

    I think you already know you can't sync the vertical bars but there might be a better solution to the use case rather than trying to sync the bars.

    For a moment though, let's assume you could sync the vertical bars. Notice the employee name is so far away from the time series data that it's pretty hard to figure out which row an employee is on.


    A possible alternative to all this is to go ahead and widen the list column (employee name) on the time series. Remove the grid on the left. Instead, add a properties grid of the employee so that when someone clicks on the employee name of the time series, it will show the properties of the employee in the properties grid. You get the benefit of seeing which row is highlighted on the time series plus you get all the properties. 


    If seeing all the properties of the employees is important you could also set up a filter on each of the properties so when a user selects a property it only shows the employees that have that particular property.


    Hopefully this idea doesn't change your use case but it seems like you would get the same benefit.


    Just an idea for you.

  • I have not discovered a way to synch the scroll bar but you can remove the scroll bar entirely showing the full length and width of the modules.


    In the module edit side bar in design mode change the  height and width settings to -1 as shown here ;



    This will lock the view and enable modules sitting side by side to align ( assuming the line items are listed in the same order and styled identically )


    Where I have had to adopt this strategy I have used filters to limit the view to where the list of line items are long. 


    If you are looking to adopt a similar strategy please let me know and I will lay out the steps I took to achieve it.

  • A quick through after looking at the screenshot.

    Would a creating a time dimensioned module along with all relevant dimensions such as employee, department and role with expenses data not satisfy your requirement.
    You could achieve this with the use of SUM function to combine into a third module and then pivot the views to display the data in any way you wish.
    This would only be possible this this is an output only view and does not require any user defined inputs.
  • Thanks @JaredDolich 


    I'm not 100% sure on what you are referring regarding 'Employee Properties grid'? 


    Thanks for your help



  • Thanks @ChrisAHeathcote 


    I wasn't aware that you could lock the size of the modules on a dashboard. Handy tip!



  • @MarkTurkenburg 

    This will be fun! Let's build it out!

    Hopefully, this doesn't change your use case but I think you'll find this approach to be more efficient and more intuitive from a UX perspective.

    (plus, it uses best practices using the D.I.S.C.O. method!)


    Step 1: Anytime you build a list, you should go ahead and build a corresponding system module. In this case we'll build two system modules. One for employees and one for time.

    Here's the list.


    Here' the employee system module. It's a module that only has one list (employees). Note: I added a whole bunch more line items to show the advantage of doing it this way. You'll see in a bit.


    For the employee system module, also build a saved view that is in this configuration.


    We also need a time system module. Notice I hardcoded the Jul to Dec? Boolean. This is not best practice but I did it to match your use-case.



    Step 2: Build your input module. Here is where the expenses are imported or entered. Create a saved view like this one for your dashboard.

    I used a filter from the time system module to only show Jul through Dec.


    Step 3: Build your dashboard with the two views. Now, when you click on any row in the input module it is sync'd with your employee properties.

    And because we did it this way you can add lots more properties. Much easier than trying to sync two grids and seems to be a little more intuitive to the user.



    What do  you think? 

  • Nice work @JaredDolich !


    That is a smart resolution to my problem and is nicer UX. A problem I always have is allowing the end user all the data they require while not overloading the Dashboard with data but this sync with the Employee list property as a Page item is lovely as it allows for maximum data while minimum clutter (and the end user can retain their sanity!)





  • Unfortunately this was going to be a user input module & hence I didn't want to add all dimensions as it would become to large & confusing for the end user


    Thanks for the idea though @ChrisAHeathcote 

  • But what if the line items or items in the modules or grids are large, it will take more space and it's not good from in perspective of the user experience