Default detail view on the dashboard

When on a dashboard, the default entry on the detail view is normally the first row on the table (not appropriate).
Can I customize it to be blank or show a specific row?

2 Same issue on inline view table on the dashboard, it shows everything - Can it be blank pending selecting an item on another view on the dashboard?

0 9 1,650
  • UX
9 REPLIES 9

First thing that popped into my mind, Felix, was to have either your selection already selected (i.e. default in the selection form) to the most appropriate entry. Regarding the second, have an entry that actually is blank and use that as your default selection (your other data views would have to have a corresponding blank entry to which they connect).

If Iโ€™ve misunderstood the question, just let me know.

I have tried this workaround by creating a blank row at the top of every table, but still it doesnโ€™t solve the problem.
My case scenario, I have a parent table, detail view of the parent table, and child entry table(inline) and detail view of the child entry table. - Dashboard already set to interactive

  1. I want both detail views to be empty by default, pending selecting an item on a table
  2. I want the child entry table(inline) to be empty, pending selecting an item on the parent table

What is driving the selection? Is there a โ€œselection tableโ€ with a column that holds the selection? Is that the parent table? Or is the parent table actual data?

I have to manually select an entry in the parent table. The parent table has actual data, and the child entry table is connect to the parent table via refs

@Douglas_Thomโ€™s idea seems like something to try.

THIS RECIPE IS ENTIRELY UNTESTED. DO NOT IMPLEMENT IN A PRODUCTION APP!

  1. You probably already have a table identifying your appโ€™s users. If not, youโ€™ll need one, with one row per user, and a column containing the userโ€™s email. Iโ€™ll call this table Users and the email column Email. Weโ€™ll need to store the userโ€™s row choice somewhere user-specific.

  2. Iโ€™m going to call the table you want the user to choose from in the dashboard Choices.

  3. Add a normal column in Choices called ChosenBy, a Ref to Users, to temporarily identify the user that chose the row. This column should not be visible to the user. Because of the limitations of actions, we canโ€™t capture the userโ€™s row choice directly in a user-specific location directly. Instead, we capture it here first, have the choice noted in the user-specific location, then delete it from here.

  4. Create an action called NoteChoice for the Choices table of type Data: set the value of a column to set the Chosen column with the expression, ANY(FILTER("Users", AND(ISNOTBLANK([Email]), ([Email] = USEREMAIL())))), only if TRUE is true, and set prominence to Do not display. This sets the ChosenBy column of the chosen row in the Choices table to a Ref to the current userโ€™s row in the Users table. This both indicates which user chose this row, and gives us easy visibility to that userโ€™s row.

  5. Add a normal column in Users called ChosenRow, a Ref to Choices, to identify the row the user has chosen. This column should not be visible to the user. This column will capture the userโ€™s choice in a user-specific location that other users wonโ€™t use.

  6. Create an action called NoteChoice for the Users table of type Data: set the value of a column to set the ChosenRow column with the expression, ANY(FILTER("Choices", AND(ISNOTBLANK([ChosenBy]), ([ChosenBy] = [_THISROW])))), only if TRUE is true, and set prominence to Do not display. This sets the userโ€™s own ChosenRow column to a Ref to the chosen row in Choices.

  7. Create an action called NotifyUser for the Choices table of type Data: execute an action on a set of rows referencing Users table rows according to the expression, LIST([ChosenBy]), to perform the NoteChoice action, only if ISNOTBLANK([ChosenBy]) is true, and set prominence to Do not display. This allows the Choices table to notify the userโ€™s row in the Users table that a new choice has been made.

  8. Create an action called ClearChoice for the Choices table of type Data: set the value of a column to set the ChosenBy column with the expression, "", only if ISNOTBLANK([ChosenBy]) is true, and set prominence to Do not display. This clears the ChosenBy column value of the chosen row in the Choices table. We only need the column value long enough to make note of the choice in the user-specific location. We want to remove it from here because the Choices table is shared, so a value here might be exposed to other users inadvertently, which may be a privacy issue or may just cause confusion. Ideally, the entire ChosenBy column of the Choices table should be blank by the time the table is synced.

  9. Create an action called Choose for the Choices table of type Grouped: execute a series of actions to perform NoteChoice, NotifyUser, and ClearChoice, only if TRUE is true, and set prominence to Do not display. This pulls all of the individual steps together to capture the userโ€™s choice: note the userโ€™s choice in the Choices table (NoteChoice), notify the userโ€™s row that a new choice has been made (NotifyUser), which in turn prompts the userโ€™s row to itself note the new choice, then remove the notation (ClearChoice) from the Choices table.

  10. Create a view named Choose for the Choices table, of type deck, gallery, or table as desired, and set the Row selected event action to Choose. This displays all of the available choices in the desired format. When a choice is made, the Choose process weโ€™ve defined above will be performed to capture the choice in the userโ€™s row in the Users table.

  11. Create a slice named Chosen for the Choices table with the row filter condition of ISNOTBLANK(FILTER("Users", AND(ISNOTBLANK([ChosenRow]), ([ChosenRow] = [_THISROW]), ISNOTBLANK([Email]), ([Email] = USEREMAIL())))), with at least the key column and the ChosenBy column, any actions, and at least Updates allowed. This slice should end up with only at most one row: the row from Choices the user chose.

  12. Create a view named Chosen for the Chosen slice, of type detail. This view will display the row in the Chosen slice. If no row is chosen, the slice will be empty, and so will this view.

  13. Add the Choices and Chosen views to your dashboard. The dashboard should not be interactive.

THIS RECIPE IS ENTIRELY UNTESTED. DO NOT IMPLEMENT IN A PRODUCTION APP!

Ok, I see the challenge: since nothing is selected, everything is selected.

The cleverest idea I can come up with is to make an artificial table, something like โ€œUser Selectionโ€. In there would be a ref field to the parent table. You add that to the dashboard to be your driver. You set the field default to be blank which should then force every other view to select their blank record resulting in a clean dashboard. Then when the user selects an item from the driver, all others are updated.

If you want, you can not set the default, in which case the last selection from when the dashboard was last used will become the current selection and they can continue where they left off.

Hopefully someone has something cleaner, but I couldnโ€™t find anything on โ€œauto-selecting a rowโ€ or anything like that.

None of the solutions here are what is required. The dashboard view should simply have an option to designate one of the layouts you install into the dashboard as the โ€˜Parentโ€™ then, along with the Interactive Switch being set, simply show blank panes in the โ€˜Childrenโ€™ if no master record is selected.
That would solve it all elegantly from the backend rather than getting the app creator to jump through hoops to try and solve this.

Hey Scott, know of any means to show a default view when no parent is selected. From user perspective, Iโ€™d love having something like โ€œSelect from items to the left to populate detailed viewโ€

I donโ€™t know of any means to do this. Iโ€™ve actually stopped using Dashboard views for this very reason. There were too many orphaned records without the parent table key being transferred when users added records interactively.

Top Labels in this Space