A common desire among organizations that adopt the Fluid user interface (UI) is the ability to keep the Classic UI for administrative users. The loudest argument backing the need for the Classic UI for admins is that the Fluid UI does not have breadcrumbs. The response to this argument is that the adoption of Fluid is more than just mobile-enabling the application, but it also entails leveraging the new Fluid navigation paradigm which means using homepages, tiles, navigation collections, search, etc., to give users an avenue to perform the transactions that they need to perform. A proper adoption of the Fluid UI means leveraging these tools to “create your own navigation” for not only self-service users, but admin users as well. While I don’t necessarily have a dog in this fight, I would like to provide a proof-of-concept example on how one can go about keeping administrative users Classic in a Fluid environment.
This solution is going to involve a couple of pieces: Role-Based Branding, and Event Mapping. The Role-Based Branding is going to be used to conditionally assign a Classic branding theme for users based on their PeopleSoft roles. The Event Mapping piece is to redirect admin users from the Fluid homepage to the Classic homepage. To get a rundown of each of these functionalities, then I suggest reading Sasank’s Role Based Theme Assignment/Override post as well as his Event Mapping Framework Introduction post.
First, we can tackle the Event Mapping piece of this solution. This will entail writing a simple piece of Application Class PeopleCode to redirect admin users to the Classic homepage.
import PT_RCF:ServiceInterface; class ClassicHomeAdmin implements PT_RCF:ServiceInterface method execute(); end-class; method execute /+ Extends/implements PT_RCF:ServiceInterface.execute +/ /* Take admin users to classic home */ If IsUserInRole("PAPP_SYSTEM_ADMIN") Then Local string &cUrl = GenerateScriptContentURL(%Portal, %Node, Record.WEBLIB_PTBR, Field.ISCRIPT1, "FieldFormula", "IScript_StartPage"); %Response.RedirectURL(&cUrl | "?HPTYPE=C"); End-If; end-method;
This code checks if the user has an admin-type role using the isUserInRole function and then redirects the user to the start page IScript. The URL parameter HPTYPE with the value of “C” will tell the start page IScript to load the Classic homepage for the user. This code will need to be mapped to the Fluid Homepage component (PT_LANDINGPAGE) using Event Mapping. Note: I am using the PAPP_SYSTEM_ADMIN role to signify an admin user. You can use any role name(s) that you want to signify admin users in your system. Be sure to keep track of the role names that you are using here because you will need to reference them later.
To use Event Mapping to map the Application Class PeopleCode, then a Related Content Service definition must be created. Head over to the Define Related Content Service page and add a new Service by providing an arbitrary Service ID.
Populate the required fields and be sure to select Application Class for the URL Type field and input the reference to the Package, Path, and Class Name to the Application Class PeopleCode that was written in the previous step.
Now navigate to the Manage Related Content Service page, click on the Event Mapping tab, and select the “Map the event of the Application pages” link.
This will bring up a list of the Content References for the Portal. Be sure to check the “include hidden Crefs” checkbox and drill down to the “Fluid Home” Content Reference. This should be found under: Fluid Structure Content > Fluid Pages > PeopleSoft Applications > Fluid Home.
Clicking the Fluid Home link will bring up the page to map a Related Content Service to the component level events of the Fluid Homepage (PT_LANDINGPAGE component). We are going to want to select Pre Build for the Event Name, the newly created Service ID for the Service ID, and Pre Process for the Processing Sequence. Save the Component.
At this point if an admin user (a user with the PAPP_SYSTEM_ADMIN role) logs in or clicks the home button, then they will be taken to the Classic homepage.
However, the admin user still does not have access to the Classic style theme that has the drop-down, breadcrumb navigation. We can use the User Attribute Based Theme Assignments in the Branding Framework to enable a Classic theme for admin users.
Head over to the Assign Themes page to assign a theme for the Portal that you are logged in on. On this page, there is a section where we can override the default theme that is applied to the Portal for a given role-based audience.
Since I want a Classic theme to show for admin users, I will specify a theme assignment for the role name PAPP_SYSTEM_ADMIN. You will want to specify the same role name(s) that you are using to identify admin users in the redirection PeopleCode. For this assignment, I specified the Classic style theme named DEFAULT_THEME_TANGERINE, but you can specify any Classic theme that you want. You will also want to ensure that the value you specify for the Priority # field for the assignment is set so that it is the highest priority, unless you want other theme assignment to take precedence.
A browser cache clear and web server restart/cache clear might be needed for these changes to work. Now when an admin logs in or clicks the home link, they are presented with the Classic homepage with the drop-down, breadcrumb navigation. The breadcrumb navigation header will stay with the admin user as they navigate around the system.
This is all of the setup that is needed to enable admin users to use the Classic UI in a Fluid environment.
It is worth mentioning that the choice of implementing this sort of solution will most likely bear support implications as it goes against Oracle’s intended usage of the application. Organizations that want to adopt Fluid need to first consider how the delivered Fluid navigation techniques can be leveraged to support all of the navigation use cases before resorting to a custom solution.