I am building a risk/project/audit management app, with many pages - each page would contain risks, issues, dependencies, assumptions, audit findings, reports and so on. The intention here is to capture everything t across the company in one place, for all projects, audits, reviews etc, instead of hunting through a plethora of documents and spreadsheets.
But to make this work, I need a way for a user to be able to specify the project that they are interested in, so that as they jump around pages every page is already filtered to only show entries for that specified project. Sort a “master filter” for the whole app.
So my question to the brains trust here - does anyone have any thoughts on how that might be achieved? I was thinking of creating a field in the Accounts table that the user could set to specify the current project of interest, but then I need a way to apply that project as a filter across every page that they visit - for example to filter every grid, list, report, etc to only show records associated with that project.
Thoughts or suggestions?
OK, I almost think I should delete this thread because (a) I have subsequently found others have answered the same question before and (b) in the end the answer is so obvious and requires nothing custom at all. But I’ll leave this explanation in case it helps someone else.
(1) Create a field in ACCOUNTS called something like “Selected Projects”. Make it a many to many connection to PROJECTS (or whatever your universal filter is based on).
(2) Create a (modal) form that allow the user to update that field - they can select one or more projects, clear them out, etc. That allows them to set the universal filter.
(3) On every page (or whatever subset you wish) add a MENU button to launch the modal created in step 2 - that gives them access to that modal form from all the places it is needed.
(4) To make it clear to the user what the current universal filter selection is, I added a grid view to each page that shows the current contents of that field created in step 1. I used CSS to make it bigger, bolder, and positioned under the settings menu, something like below. When its empty then there is nothing to show here either:
(5) then on those same pages where the universal filter needs to apply, simply duplicate every list or grid or chart, and set one to have a source of ALL records, and the other with only the records connected to the logged in account, like so:

(6) Then on each of these pages, set up page rules that hide or show the appropriate one of the duplicated views based on whether the ACCOUNTS field from 1 above is BLANK or not, like this:
Works like a charm, simple, foolproof. I hope that helps someone else one day.