I’m trying to build a “Favorites” view for my solution and am having issues with a filtered portal. I’ve given my users the ability to “favorite” pretty much every record type in the database. Every time a user marks a record as favorite, a record is created in the Favorites table with the username, record type (ie: contact, project, etc), and the record id. The user can view a list of favorites and jump to the appropriate record. All of this works fine.
By default the user’s Favorites list shows all favorites. There is a global pop-up menu with all record types that triggers a Find if the user wants to focus on a specific type (ie: all favorite contacts only). No problems here.
I then decided to try something different. Instead of the Favorites list being a list view of the Favorites table, I decided to make it a portal via a relationship from User to Favorite, matching username to username. I’m trying to create a left-side source panel style interface, so I have a list of all record types on the left and a portal showing all favorites on the right.
Since the favorites list could potentially be open in more than one window at a time, I wanted to see if it was possible to filter on a dynamically created variable. When the user opens the favorites list (changes layout, via a script), a variable is created called $$favorite_WINDOWNAME. Since the window names in my solution are always unique, I figured I could store my portal filter key here. And since each window receives its own unique variable, I should be able to have different filters engaged in each window.
So everything works, except the portal filter. The portal is filtered via an Evaluate function:
Evaluate ( "$$favorites_" & Substitute ( Get ( WindowName ); " "; "" ) ) = "showall"; 1;
Evaluate ( "$$favorites_" & Substitute ( Get ( WindowName ); " "; "" ) ) ≠ "showall" and
Evaluate ( "$$favorites_" & Substitute ( Get ( WindowName ); " "; "" ) ) = user_favorites::favorite_item_record_type; 1;
And when I say the portal filter does not work, that’s not entirely true. It works, but every window’s portal is updated when a selection is made in any window, despite the fact that each window’s portal should be filtered via a different, unique variable. I wanted to try to make this work using filters and unique variables rather than a global field since I knew that would update every view. Has anyone tried to do something like this? I’m assuming it’s not possible?
What I find interesting is that the object hiding function works fine using the above Evaluate statement. I can view the same Favorites layout in multiple windows and have different objects hide in each window based on the value in the unique $$_favorites_WINDOWNAME variable.
Any and all thoughts appreciated. Thanks!