Oracle® Fusion Middleware Developer's Guide for Oracle Identity Manager 11g Release 1 (11.1.1) E14309-05 |
|
![]() Previous |
![]() Next |
This chapter explains how to customize various aspects of the user interfaces available in Oracle Identity Manager.
Note: Oracle Identity Manager 11g Release 1 (11.1.1) includes a number of UI pages based on earlier UI technologies known as transitional UIs. Due to technical differences, the transitional UIs are displayed in pop-up windows and have a different look and feel. These UIs are discussed in the relevant sections in this chapter. |
This chapter contains these sections:
There are three aspects to customizing the branding information: logo, logo mouser over text, and branding text. These can be customized in two ways. This section describes one way to achieve this. The other method is changing skins by using appropriate styleclasses, which is explained in "Style Sheet Modifications".
Branding customization can be done in any one of the following ways:
Editing files in each console as described in this section
Using stylesheets as described in "Style Sheet Modifications"
The advantage of using stylesheet changes and custom skins is that they are centralized changes and easier to manage.
Note that certain customizations such as branding logo mouseover text are easier to perform as described in this section.
Branding customizations can be a combination of both ways, which is using stylesheet changes and custom skins for most of the changes, and using specific file changes as described in this section for particular items such as branding logo mouseover text.
You can customize branding in the following sections:
Branding changes for Login page are configured in iam-consoles-faces.war/pages/Login.jspx.
Branding Text
Branding text can be changed by modifying the value of the resource bundle property 'branding_text'. Login.jspx refers to it in the following location:
<f:facet name="branding"> <af:outputText value="#{admin.model.resources.common.branding_text}" id="ot1"/> </f:facet>
The following resource bundle is used to refer to the property:
iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/Common_LOCALE.properties
Here, use the appropriate file by replacing LOCALE with the value of the locale, for example, Common_en.properties.
Tip:
|
Logo Image
To change the logo image:
Copy the new image, for example new-logo.png, in the oim.ear/iam-consoles-faces.war/images/ directory.
Add a stylesheet class after the following line in iam-consoles-faces.war/pages/Login.jspx:
<af:document title="#{admin.model.resources.common.title_login_page}" id="d1" theme="dark" maximized="true">
For example:
<af:document title="#{admin.model.resources.common.title_login_page}" id="d1" theme="dark" maximized="true"> <af:resource type="css"> .MyCustomBrandingLogo { background-image:url('/oim/images/new-logo.png'); background-position:center; background-repeat:repeat-n; display:block; height:3.5em; width:119px; } </af:resource> …
Add the attribute with the name "brandingLogoCls" and value as the CSS class name inside the line:
<af:pageTemplate viewId="/templates/IdmSignIn.jspx" value="#{bindings.pageTemplateBinding}" id="pt1">
For example:
<af:pageTemplate viewId="/templates/IdmSignIn.jspx" value="#{bindings.pageTemplateBinding}" id="pt1"> <f:attribute name="brandingLogoCls" value="MyCustomBrandingLogo"/> …
Logo Mouse Over Text
To change the logo mouse over text:
Extract the contents of the archive from the following location to a temporary folder.
ORACLE_HOME/modules/oracle.idm.uishell_11.1.1/oracle.idm.uishell.war
Create a backup of the original file.
Extract the contents of the /WEB-INF/lib/oracle-idm-uishell.jar file to a temporary location.
Edit the templates/IdmShell.jspx and templates/IdmSignIn.jspx files and put the required logo mouse over text (instead of the default 'Oracle') as the value of shortDesc at the following:
<af:panelBorderLayout styleClass="AFBrandingBar" id="ptpbl1"> <f:facet name="start"> <af:panelGroupLayout styleClass="AFBrandingBarItem" inlineStyle="background-color: white;" id="ptpgl2"> <af:spacer shortDesc="Oracle" styleClass="#{attrs.brandingLogoCls}" id="pts1"/> </af:panelGroupLayout> </f:facet>
The code example is to help identify the location to replace. The exact code might differ a bit from this. The text to replace is inside the panel that uses the AFBrandingBarItem styleclass.
Repackage the JAR file and place it in the /WEB-INF/lib/ directory of the extracted Web Archive (WAR) file.
Repackage the oracle.idm.uishell.war file and place it in the original location.
When you repackage the WAR file, you must not overwrite the MANIFEST.MF file. For example, use the following command:
jar –cmf META-INF\MANIFEST.MF oracle.idm.uishell.war *
Note: The MANIFEST.MF file is created whenever a WAR file is created. This file contains information about the WAR file, such as the file build number and version number.By entering m as an argument, you can force Java to retain the details that exist in the original MANIFEST.MF file. In other words, you are not overwriting the file. Oracle Identity Manager requires this information to use the contents in the oracle.idm.uishell.war file. |
Branding changes for Oracle Identity Administration are configured in admin.war/pages/Admin.jspx.
Branding Text
Branding text can be changed by modifying the value of the resource bundle property 'branding_text'. Admin.jspx refers to it in the following location:
<f:facet name="branding"> <af:outputText value="#{resUI.branding_text}" id="ot1"/> </f:facet>
Here, resUI
refers to the following resource bundle:
admin.war/WEB-INF/lib/IdentityTaskFlow.jar/oracle/iam/identitytaskflow/resources/IdentityUIBundle_LOCALE.properties.
The branding facet takes any ADF tags, providing flexibility for your branding needs.
Logo Image
To change the logo image:
Copy the new image, for example new-logo.png, in the oim.ear/iam-consoles-faces.war/images/ directory.
Add a stylesheet class after the following line in admin.war/pages/Admin.jspx:
<af:document title="#{resUI.window_title_text}" theme="dark" id="d1">
For example:
<af:document title="#{resUI.window_title_text}" theme="dark" id="d1"> <af:resource type="css"> .MyCustomBrandingLogo { background-image:url('/oim/images/new-logo.png'); background-position:center; background-repeat:repeat-n; display:block; height:3.5em; width:119px; } </af:resource> …
Add the attribute with the name "brandingLogoCls" and value as the CSS class name inside the line:
<af:pageTemplate viewId="/templates/IdmShell.jspx" value="#{bindings.pageTemplateBinding}" id="pt1">
For example:
<af:pageTemplate viewId="/templates/IdmShell.jspx" value="#{bindings.pageTemplateBinding}" id="pt1"> <f:attribute name="brandingLogoCls" value="MyCustomBrandingLogo"/> …
Logo Mouse Over Text
If you perform the steps to change the logo mouseover text for the login page as described in "Login Page", then you do not need to perform the steps in this section.
To change the logo mouseover text:
Extract the archive from the following location to a temporary folder:
ORACLE_HOME/modules/oracle.idm.uishell_11.1.1/oracle.idm.uishell.war
Create a backup of the original file.
Extract the WEB-INF/lib/oracle-idm-uishell.jar file to a temporary location.
Edit the templates/IdmShell.jspx and templates/IdmSignIn.jspx files and put the required logo mouse over text (instead of the default 'Oracle') as the value of shortDesc, as shown:
<af:panelBorderLayout styleClass="AFBrandingBar" id="ptpbl1"> <f:facet name="start"> <af:panelGroupLayout styleClass="AFBrandingBarItem" inlineStyle="background-color: white;" id="ptpgl2"> <af:spacer shortDesc="Oracle" styleClass="#{attrs.brandingLogoCls}" id="pts1"/> </af:panelGroupLayout> </f:facet>
Repackage the JAR file and put it in the WEB-INF/lib of the extracted WAR file.
Repackage the oracle.idm.uishell.war file and put it back in the original location.
Branding changes for the Unauthenticated Self Service UI are configured in iam-consoles-faces.war/pages/USelf.jspx.
Branding Facet
Branding text can be changed by modifying the value of the resource bundle property 'header_branding'. USelf.jspx refers to it in the following location:
<f:facet name="branding"> <af:outputText id="brandingTitle" value="#{uself.model.resources.uself.header_branding}"/> </f:facet>
The uself resource bundle is located in:
iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/USelf_LOCALE.properties
Logo Image
To change the logo image:
Copy the new image, for example new-logo.png, in the oim.ear/iam-consoles-faces.war/images/ directory.
Add a stylesheet class after the following line in iam-consoles-faces.war/pages/USelf.jspx:
<f:facet name="metaContainer">
For example:
<f:facet name="metaContainer"> <af:resource type="css"> .MyCustomBrandingLogo { background-image:url('/oim/images/new-logo.png'); background-position:center; background-repeat:repeat-n; display:block; height:3.5em; width:119px; } </af:resource> …
In the same file, add the attribute with the name "brandingLogoCls" and value as the CSS class name inside the following line:
<af:pageTemplate id="PANEL_PAGE" viewId="/templates/uself.jspx">
For example:
<af:pageTemplate id="PANEL_PAGE" viewId="/templates/uself.jspx"> <f:attribute name="brandingLogoCls" value="MyCustomBrandingLogo"/> …
Logo Mouse Over Text
To change the mouse over text for the branding logo image, perform one of the following steps in the iam-consoles-faces.war/pages/USelf.jspx file:
Inside the line <af:pageTemplate id="PANEL_PAGE" viewId="/templates/uself.jspx">, add as static text value:
<f:attribute name="brandingLogoText" value="My Company"/>
From the resource bundle, add the property, such as 'text_logo_mouseover', in the corresponding bundle (iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/USelf_LOCALE.properties) and use it as shown:
<f:attribute name="brandingLogoText" value="#{uself.model.resources.uself.text_logo_mouseover}"/>
Branding changes for the Oracle Identity Manager Self Service are configured in iam-consoles-faces.war/pages/Self.jspx.
Branding Facet
Branding text can be changed by modifying the value of the resource bundle property 'header_branding'. Self.jspx refers to it in the following location:
<f:facet name="branding"> <af:outputText id="brandingTitle" value="#{self.model.resources.self.header_branding}"/> </f:facet>
The self resource bundle is located in the iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/Self_LOCALE.properties.
Logo Image
To change the logo image:
Copy the new image, for example new-logo.png, in the oim.ear/iam-consoles-faces.war/images/ directory.
Add a stylesheet class after the following line in iam-consoles-faces.war/pages/Self.jspx:
<f:facet name="metaContainer">
For example:
<f:facet name="metaContainer"> <af:resource type="css"> .MyCustomBrandingLogo { background-image:url('/oim/images/new-logo.png'); background-position:center; background-repeat:repeat-n; display:block; height:3.5em; width:119px; } </af:resource> …
In the same file, add the attribute with the name "brandingLogoCls" and value as the CSS class name inside the following line:
<af:pageTemplate id="PANEL_PAGE" viewId="/templates/self.jspx">
For example:
<af:pageTemplate id="PANEL_PAGE" viewId="/templates/self.jspx"> <f:attribute name="brandingLogoCls" value="MyCustomBrandingLogo"/> …
Logo Mouse Over Text
To change the mouse over text for the branding logo image, perform one of the following steps in the iam-consoles-faces.war/pages/Self.jspx file:
Inside the line <af:pageTemplate id="PANEL_PAGE" viewId="/templates/self.jspx">, add as static text value:
<f:attribute name="brandingLogoText" value="My Company"/>
From the resource bundle, add the property, such as 'text_logo_mouseover', in the corresponding bundle (iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/Self_LOCALE.properties) and use it as shown:
<f:attribute name="brandingLogoText" value="#{self.model.resources.self.text_logo_mouseover}"/>
Branding changes for the Advanced Administration are configured in iam-consoles-faces.war/pages/Admin.jspx.
Branding Facet
Branding text can be changed by modifying the value of the resource bundle property 'header_branding_adv'. Admin.jspx refers to it in the following location:
<f:facet name="branding"> <af:outputText id="brandingTitle" value="#{admin.model.resources.admin.header_branding_adv}"/> </f:facet>
The admin resource bundle is located in iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/Admin_LOCALE.properties.
Logo Image
To change the logo image:
Copy the new image, for example new-logo.png, in the oim.ear/iam-consoles-faces.war/images/ directory.
Add a stylesheet class after the following line in iam-consoles-faces.war/pages/Admin.jspx:
<f:facet name="metaContainer">
For example:
<f:facet name="metaContainer"> <af:resource type="css"> .MyCustomBrandingLogo { background-image:url('/oim/images/new-logo.png'); background-position:center; background-repeat:repeat-n; display:block; height:3.5em; width:119px; } </af:resource> …
In the same file, add the attribute with the name "brandingLogoCls" and value as the CSS class name inside the following line:
<af:pageTemplate id="PANEL_PAGE" viewId="/templates/admin.jspx">
For example:
<af:pageTemplate id="PANEL_PAGE" viewId="/templates/admin.jspx"> <f:attribute name="brandingLogoCls" value="MyCustomBrandingLogo"/> …
Logo Mouse Over Text
To change the mouse over text for the branding logo image, perform one of the following steps in the iam-consoles-faces.war/pages/Admin.jspx file:
Inside the line <af:pageTemplate id="PANEL_PAGE" viewId="/templates/admin.jspx">, add as static text value:
<f:attribute name="brandingLogoText" value="My Company"/>
From the resource bundle, add the property, such as 'text_logo_mouseover', in the corresponding bundle (iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/Admin_LOCALE.properties) and use it as shown:
<f:attribute name="brandingLogoText" value="#{admin.model.resources.admin.text_logo_mouseover}"/>
This section provides instructions on style sheet updates. Topics include:
Oracle ADF uses skins along with styles to customize the appearance of an application. These concepts apply to all the Oracle Identity Manager interfaces, with the exception of the Transitional UI popups.
See Also: Before customizing style sheets, see Customizing the Appearance Using Styles and Skins in the Fusion Middleware Web User Interface Developer's Guide in the following URL:
Following URL gives a list of all the CSS style selectors that can be used to customize the style sheets:
|
You configure new skins in trinidad-config.xml. The default skin for Oracle Identity Manager is "fusion":
<?xml version="1.0" encoding='utf-8'?> <trinidad-config xmlns="http://myfaces.apache.org/trinidad/config"> <skin-family>fusion</skin-family> </trinidad-config>
There are two console-specific trinidad-config.xml files:
For Identity Administration: admin.war/WEB-INF/trinidad-config.xml
For Self Service, Unauthenticated, and Advanced Administration: iam-consoles-faces.war/WEB-INF/trinidad-config.xml
To keep the defaults coming from the "fusion" skin and override certain style sheet elements:
Create the skin in the trinidad-skins.xml file. Make a copy of the trinidad-skins.xml from the /iam-consoles-faces.war/WEB-INF/ directory to the admin.war/WEB-INF/ directory. For both the /admin.war/WEB-INF/trinidad-skins.xml file and the /iam-consoles-faces.war/WEB-INF/trinidad-skins.xml file, make following changes:
<?xml version="1.0" encoding='utf-8'?> <skins xmlns="http://myfaces.apache.org/trinidad/skin"> <skin> <id>myskin.desktop</id> <family>myskin</family> <extends>fusion.desktop</extends> <render-kit-id>org.apache.myfaces.trinidad.desktop</render-kit-id> <style-sheet-name>skins/myskin/myskin.css</style-sheet-name> <bundle-name>oracle.iam.consoles.faces.resources.AdfComponentsMessageBundle</bundle-name> </skin> </skins>
Register the new "myskin" in both the admin.war/WEB-INF/trinidad-config.xml file and the iam-consoles-faces.war/WEB-INF/trinidad-config.xml file, as shown:
<?xml version="1.0" encoding='utf-8'?> <trinidad-config xmlns="http://myfaces.apache.org/trinidad/config"> <skin-family>myskin</skin-family> </trinidad-config>
Create myskin.css at both the admin.war/skins/myskin/myskin.css and iam-consoles-faces.war/skins/myskin/myskin.css files.
Put stylesheet elements that are required to be overridden from the defaults. For example, to change the branding text color, add the following:
.AFBrandingBarTitle, .xdj { color:#800080; }
Redeploy (or update) the Oracle Identity Manager deployment through the Oracle WebLogic Server Administration Console.
To change the branding information as an alternative to the method in "Branding Customization", create a custom skin and use the appropriate style classes given in the URL in "Introduction to the Style Sheets".
This section describes how to customize the look and feel of the transitional UI in the Administrative and User Console. You do this by editing the cascading style sheets.
This section contains the following topics:
To customize colors, fonts, and alignments in the transitional UI, edit the /xlWebApp/css/Xellerate.css file or the locale-specific cascading style sheets.
The Xellerate.css style sheet defines the color, font, point size, and alignment of the transitional UI pages. After you determine how you want to edit the appearance of the transitional UI, perform the following steps:
View the source for the page.
Determine the style sheet class associated with the element on the page that you want to change.
Lookup the style sheet class name within the Xellerate.css file.
The Xellerate.css file contains context labels. Use these context labels to locate the class to edit when customizing a particular aspect of the transitional UI appearance. In addition, the classes within this file are organized according to the region of the screen, such as header, body, and footer, and the HTML elements they affect, such as links, tables, and check boxes.
This section describes how you can rename button labels in different consoles:
The Identity Administration is made up of four main feature areas, each with their own resource bundle:
User Management:
admin.war/WEB-INF/lib/IdentityTaskFlow.jar/oracle/iam/identitytaskflow/resources/IdentityUIBundle_LOCALE.properties
Organization Management:
admin.war/WEB-INF/lib/orgmgmtTF.jar/oracle/iam/consoles/orgmgmt/tf/resources/orgmgmt-ui_LOCALE.properties
Role Management:
admin.war/WEB-INF/lib/rolemgmtTF.jar/oracle/iam/consoles/rolemgmt/tf/resources/rolemgmt-ui_LOCALE.properties
Policy Management:
admin.war/WEB-INF/lib/OESOIMTaskFlows.jar/oracle/iam/consoles/oesoim/tf/resources/oes-oim-ui_LOCALE.properties
For example, for the Policy Management UI, the following properties are set for button labels in the corresponding properties file:
button.advanced=Advanced button.apply=Apply button.apply.accessKey=A button.back=Back button.back.accessKey=B button.cancel=Cancel button.cancel.accessKey=C button.edit_attribute=Edit Attributes button.edit_attribute.accessKey=E button.finish=Finish button.finish.accessKey=F button.next=Next button.next.accessKey=N button.ok=Ok button.ok.accessKey=O button.revert=Revert button.revert.accessKey=R button.save=Save button.save.accessKey=S
The common button labels for unauthenticated self service, authenticated Self Service, and Advanced Administration are set in the resource bundle
iam-consoles-faces.war/WEB-INF/lib/iam-consoles-faces.jar/oracle/iam/consoles/faces/resources/Common_LOCALE.properties
For example:
text_cancel = Cancel description_cancel = Cancel text_submit = Submit description_submit = Submit. text_reset = Reset description_reset = Reset text_previous = Back description_previous = Back text_next = Next description_next = Next text_refresh = Refresh description_refresh = Refresh text_perform = Perform description_perform = Perform text_confirm = OK description_confirm = Confirm
Some button labels on the Self Service are also used from the iam-consoles-faces.war/WEB-INF/lib/OIMUI.jar/oracle/iam/selfservice/self/agentry/resources/Agent_LOCALE.properties file.
In Advanced Administration, many button labels are used from the Agent_LOCALE.properties file of the respective feature. For example, for the buttons in request, the file to use is Agent_LOCALE.properties in the iam-consoles-faces.war/WEB-INF/lib/OIMUI.jar/oracle/iam/request/agentry/resources/ directory.
Some buttons in this file are as follows:
Intent[BACK].name =Back Intent[BACK].description =Back Intent[NEXT].name =Next Intent[NEXT].description =Next Intent[ADD].name=Add Intent[CANCEL].name=Cancel Intent[CLEAR].name=Clear Intent[SAVE].name=Save Intent[APPLY].name=Apply Intent[REVERT].name=Revert Intent[PREV_RES].name=Previous Resource Intent[NEXT_RES].name=Next Resource Intent[CLOSE_REQ].name=Close Request Intent[SEARCH_LKQ].name=Search Intent[REFRESH].name=Refresh
Following is a list of the Agent properties file locations within the OIMUI.jar for some of the main features:
System Configuration: oracle/iam/conf/agentry/resources
User Configuration: oracle/iam/configservice/agentry/resources
Scheduler: oracle/iam/features/scheduler/agentry/resources
Notification Templates: oracle/iam/features/notification/agentry/resources
Reconciliation: oracle/iam/reconciliation/agentry/resources
Request: oracle/iam/request/agentry/resources
Request Templates: oracle/iam/requesttemplate/agentry/resources
Authenticated Self Service: oracle/iam/selfservice/self/agentry/resources
Unauthenticated Self Service: oracle/iam/selfservice/uself/agentry/resources
Self Service Task List: oracle/iam/tasklist/agentry/resources
This section describes how to customize the descriptive text and labels that appear on the transitional UI pages of the Administrative and User Console. It also describes how to edit the error messages that appear under the specific conditions that generate them.
You can customize the following text:
Descriptions of procedures, such as instructional text
Labels for pages
Labels for fields within pages
Labels that appear on buttons
Labels for links to other pages
Copyright dates and information
This section contains the following topics:
To customize the text in the transitional UI pages of the Administrative and User Console, edit the xlWebApp\WEB-INF\classes\xlWebAdmin_LOCALE.properties file or the locale-specific properties file.
There are other properties files, for example xlRichClient.properties for Workflow Visualizer and Workflow Designer, and xlDefaultAdmin.properties that is used to include generic (not specific to locale) properties such as image references.
The text displayed in the console is stored in the xlWebAdmin_LOCALE.properties file. For any label, procedural instruction, or error message that you want to edit, perform the following steps:
Access the JSP page in which the text is displayed.
Reference the property associated with the text.
Lookup the property name in the xlWebAdmin_LOCALE.properties file.
Properties that control the text on more than one page, or that are associated with multiple product functionalities, are listed in one of the GLOBAL sections of the file, such as GLOBAL messages. These properties are also divided by type-specific labels, such as messages, buttons, and labels, to organize the groups of the properties.
The properties that control the text that is displayed in more specific contexts of the product functionality, such as create user and self-registration, are listed in sections labeled in a function-specific manner, such as MANAGE USER labels.
The width of the labels in the Workflow Visualizer are calculated by converting pixel lengths to character lengths. An incorrect conversion can result in truncated text or extra white space surrounding the label. The xlRichClient.properties file, or locale-specific file such as xlRichClient_jp.properties for Japanese, contains a property named global.workflowRenderer.labelWidthFactor. This property is used in the conversion of label text from pixel length to character length. To modify the width of labels in the Workflow Visualizer, modify the integer value that is assigned to this property. A higher integer will increase label widths, and a lower integer will decrease them.
This section explains how to add and update menus and tabs in the various sections of the Administrative and User Console.
The top level tabs, Administration and Policy, are configured in the IDM Shell configuration file: admin.war/WEB-INF/idmshell-config.xml. For information about IDM Shell, refer to the following URL:
http://www.oracle.com/technology/products/adf/patterns/11/uishell.html
The configuration file looks like this:
<taskflows> <taskflow id="_oes_oim_lhs" closeable="false" indialog="false" taskFlowId="/taskflows/brsr/BrowseSearch-TF.xml#BrowseSearch-TF"> <name>Browse And Search</name> <description>Browse And Search</description> </taskflow> <taskflow id="_oes_oim_rhs" closeable="false" indialog="false" taskFlowId="/taskflows/welcome/Welcome-TF.xml#Welcome-TF"> </taskflow> </taskflows> <modules> <module id="oes_oim_mgr" helpTopicId="oim_ia_policy"> <lhs-area> <taskflow refId="_oes_oim_lhs"/> </lhs-area> <default-taskflow-list> <taskflow refId="_oes_oim_rhs"/> </default-taskflow-list> </mLoading...odule> </modules>
The configuration inside the <taskflow> tabs represents ADF task flows. For additional information on ADF menus, see Using Menus, Toolbars, and Toolboxes in the Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework in the following URL:
http://download.oracle.com/docs/cd/E15523_01/web.1111/b31973/toc.htm
This example shows the steps needed to configure a new tab for the Identity Administration:
Open the OIM_INSTALL/middleware/Oracle_IDM1/server/apps/oim.ear/admin.war/WEB-INF/idmshell-config.xml file in a text editor.
In the <taskflows> tag, add a new taskflow to the list of configured task flows, giving it a unique ID. For illustration, this "new_tab" taskflow configuration will mimic that of the "Welcome" tab (admin_welcome):
<taskflow id="new_tab" closeable="false" indialog="false" taskFlowId="/taskflows/adminwelcome/AdminWelcome-taskflow.xml#AdminWelcome-taskflow"> </taskflow>
Scrolling down in the same file, locate the <modules> tag, and within that the <module> with ID of "admin".
To the <default-taskflow-list> add a new <taskflow>, setting its refID to the taskflow ID we added earlier, namely "new_tab".
<module id="admin"> <lhs-area> <taskflow refId="usr_lhs"/> </lhs-area> <default-taskflow-list> <taskflow refId="admin_welcome"/> <taskflow refId="new_tab"/> </default-taskflow-list> </module>
Note: Modules refer to top-level tabs, and Default-Taskflow-List entries refer to second-level tabs. |
Assign text for the new tab must in a properties file. Extract the file OIM_INSTALL/middleware/Oracle_IDM1/server/apps/oim.ear/admin.war/WEB-INF/lib/IdentityTaskFlow.jar to a temporary directory [WORK_DIR] using a tool such as unzip.
To change the header of the Identity Administration, edit the file WORK_DIR/oracle/iam/identitytaskflow/resources/IdentityUIBundle_en.properties (or other language-specific translation files as appropriate).
Add new property named "TaskFlow[new_tab].name" and assign it an appropriate name, such as "New Tab".
Add new property named "TaskFlow[new_tab].description" and assign it an appropriate description, such as "New Tab Description".
TaskFlow[new_tab].name=New Tab TaskFlow[new_tab].description=New Tab Description
Note: The value within the square brackets must match the taskflow id. This is how these property values are associated with the given tab and taskflow. |
Change directory to WORK_DIR and repackage the files and directories under WORK_DIR by using the jar syntax:
jar -cf IdentityTaskFlow.jar *
Place this new IdentityTaskFlow.jar file back in OIM_INSTALL/middleware/Oracle_IDM1/server/apps/oim.ear/admin.war/WEB-INF/lib/. Be sure to back up the original file before overwriting it.
Redeploy (or update) the Oracle Identity Manager deployment through the Oracle WebLogic Server Administration Console.
Self Service provides the ability to hide top-level tabs. In addition, Self Service UI also allows adding new custom tabs. The custom tabs can be associated with custom jsff page implementation. Hiding of the top level menus and tabs on Self Service is explained in "Disabling Features". Adding new tabs and associating custom jsff on Self Service is described in "Adding Custom ADF Tabs to Self Service".
This section explains the techniques by which features can be enabled or disabled in the different consoles and user interfaces:
Access to many of the Identity Administration, authenticated Self Service, and Advanced Administration features is controlled by leveraging the integration between Oracle Identity Manager and Oracle Entitlements Server (OES). For features and actions managed within OES, the recommended way to disable a feature/action is to remove access to the feature by controlling the policies available to a user.
See Also: "Managing Authorization Policies" in the Oracle Fusion Middleware User's Guide for Oracle Identity Manager for more details on creating and modifying authorization policies |
For example, the users with the IT Executive - Outbound Services role in the Customer Support organization must be allowed only to search for all users and view the contact information for each user. Therefore, the buttons for creating and modifying users or roles in the left pane of the Oracle Identity Manager Self Service must be hidden for these users.
You can modify the authorization policies to hide or disable a few action buttons on the left pane of the Administrative or User Console, for which the user does not have permissions. To do so:
Create an authorization policy for User Management. For details about creating an authorization policy, see "Creating an Authorization Policy for Role Management" in the Oracle Fusion Middleware User's Guide for Oracle Identity Manager.
Click the Permissions tab and set the Permissions as Search User and View User Detail.
For the View User Detail permission, select the attributes for contact information.
Click the Data Constraints tab and set the data constraints as member of the organization, for example, Customer Support.
Click the Assignment tab. This tab displays the roles that are assigned to this policy. Add the role, for example IT Executive - Outbound Services. For details about adding the role, see the step 10 of "Creating an Authorization Policy for Role Management" in the Oracle Fusion Middleware User's Guide for Oracle Identity Manager.
Click Apply to save changes.
Enforcement by using the authorization service API must be placed around the User Search and View Detail action menu, buttons, or links. If access for the operation is denied to the user, then the action is not displayed or is displayed as disabled.
If the feature cannot be disabled by using authorization policies, then another option is to disable the corresponding ADF action tag. Most ADF action tags can be disabled or rendered invisible.
For details, see:
The part titled Using ADF Faces Components in the Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework in the following URL:
http://download.oracle.com/docs/cd/E15523_01/web.1111/b31973/toc.htm
The ADF Tag Guide, which is available from the Oracle ADF Components Home Page.
Features from the Self Service can be removed by editing the iam-consoles-faces.war/WEB-INF/faces-config-self.xml file.
For example, to disable the Profile tab by hiding it in the Self Service, comment the following in the file:
The managed bean definition corresponding to this functionality:
<!--managed-bean> <managed-bean-name>myProfilePrimaryOperation</managed-bean-name> .... <managed-bean-->
The map entry corresponding to this functionality:
<!--map-entry> <key>#{myProfilePrimaryOperation.entityTypeId}</key> <value>#{myProfilePrimaryOperation}</value> </map-entry-->
This section explains how you can add or remove searchable columns in the UI. It contains these topics:
Tables in the Identity Administration use standard ADF features. Many Advanced Search pages in the UI have an Add Field button so that the user can select from additional searchable attributes. To allow searching for users, roles, and organizations, the attribute needs to be marked as searchable in the schema.
Table 25-1 lists the jsff files with corresponding code fragments that you can modify for customizing the tables in Identity Administration:
Table 25-1 Files to Modify For Customizing Tables in Identity Administration
jsff File | Code Fragment |
---|---|
admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/advsearch/AdvancedSearchview.jsff |
<af:table var="row" rowBandingInterval="0" id="t1" binding="#{pageFlowScope.userAdvancedSearchBean.table}" value="#{pageFlowScope.userAdvancedSearchBean.searchResult}" emptyText="#{resUI.empty_table_string}" columnStretching="none" rowSelection="multiple" fetchSize="#{pageFlowScope.userAdvancedSearchBean.fetchSize}" selectionListener="#{pageFlowScope.userAdvancedSearchBean.tableListener.processSelection}" sortListener="#{pageFlowScope.userAdvancedSearchBean.sortListener.processSort}" contextMenuId="::contextPopup2"> <af:forEach items="#{pageFlowScope.userAdvancedSearchBean.columns}" var="def" varStatus="defIndex"> <c:choose> <c:when test="${defIndex.index == 0}"> <af:column headerText="#{pageFlowScope.userAdvancedSearchBean.advancedSearchAttrsTranslation[def.name]}" sortable="true" id="c1" headerNoWrap="true" sortProperty="#{def.name}"> <af:commandLink text="#{row[def.name]}" id="ot2" actionListener="#{pageFlowScope.userAdvancedSearchBean.userLinkListener.processAction}"/> </af:column> </c:when> <c:otherwise> <af:column headerText="#{pageFlowScope.userAdvancedSearchBean.advancedSearchAttrsTranslation[def.name]}" sortable="true" id="c2" headerNoWrap="true" sortProperty="#{def.name}"> <af:outputText value="#{row[def.name]}" id="ot3"/> </af:column> </c:otherwise> </c:choose> </af:forEach> </af:table> The #{pageFlowScope.userAdvancedSearchBean.columns} returns the list of attributes that are configured for the advanced search results attributes. If you want to change the attributes in the advanced search table for users, then change the attributes from the Advanced Console, User Configuration, Search Configuration, Search Results Table Configuration. The first attribute in the Search Results Table Configuration will be displayed as a link. |
admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/modifyuser/ModifyUserview.jsff |
The Roles tab: <af:treeTable binding="#{pageFlowScope.modifyUserBean.roleTreeTable}" value="#{pageFlowScope.modifyUserBean.treeModel}" var="role" rowBandingInterval="1" id="ROLES_DATA" rowSelection="single" columnStretching="last" fetchSize="9" contentDelivery="immediate" selectionListener="#{pageFlowScope.modifyUserBean.roleSelected}" immediate="true" width="100%"> <f:facet name="nodeStamp"> <af:column sortable="true" width="350" sortProperty="roleDisplayName" headerText="#{resUI.role_display_name_text}" id="c1"> <!--<af:group>--> <!--<af:image source="/images/group_ena.png"/> --> <af:outputText value="#{role.roleDisplayName}" id="ot52"/> <!--</af:group>--> </af:column> </f:facet> <af:column sortable="false" width="250" headerText="#{resUI.role_name_text}" align="start" id="c72"> <af:outputText value="#{role.roleName}" id="ot12"/> </af:column> <af:column sortable="false" width="250" headerText="#{resUI.role_descripetion_text}" align="start" id="c7"> <af:outputText value="#{role.description}" id="ot11"/> </af:column> <af:column sortable="false" headerText="#{resUI.role_namespace_text}" align="start" id="c71"> <af:outputText value="#{role.roleNameSpace}" id="ot111"/> </af:column> <!--af:column sortable="false" headerText="#{resUI.role_assigned_on_text}" align="start" id="c6"> <af:outputText value="#{role.provisionedOn}" id="ot1"/> </af:column--> </af:treeTable> The Roles tab contains static columns that can be rearranged or removed based on your requirement. The role objects are instances of oracle.iam.identitytaskflow.common.model.vo.RoleDetailVO with the following methods: public String getRoleName() public String getProvisionedOn() public String getMembershipType() public String getDescription() public List<RoleDetailVO> getChildren() public String getRoleKey() public String getRoleDisplayName() public String getRoleNameSpace() |
admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/modifyuser/ModifyUserview.jsff |
The Resources tab: <af:table var="row" columnStretching="last" summary="#{resUI.resources_table_summary_text}" contentDelivery="immediate" binding="#{pageFlowScope.modifyUserBean.resourceTable}" fetchSize="60" id="t3" emptyText="#{resUI.empty_table_string}" value="#{pageFlowScope.modifyUserBean.resources}" rowSelection="single" selectionListener="#{pageFlowScope.modifyUserBean.showSelectedResourceDetailsAction}"> <af:column sortable="true" headerText="#{resUI.resource_name_text}" align="start" id="c6"> <af:commandLink id="com1" text="#{row.resourceName}" partialSubmit="true" actionListener="#{pageFlowScope.modifyUserBean.showResourceDetailsReadOnlyAction}" disabled="#{row.viewActionDisable}"/> </af:column> <af:column sortable="false" headerText="#{resUI.resource_type_text}" align="start" id="c3"> <af:outputText value="#{row.type}" id="ot6"/> </af:column> <af:column sortable="false" headerText="#{resUI.resource_status_text}" align="start" id="c4"> <af:outputText value="#{row.status}" id="ot7"/> </af:column> <af:column sortable="false" headerText="#{resUI.resource_provisioned_text}" align="start" id="c5"> <af:outputText value="#{row.provisionedOn}" id="ot8"/> </af:column> <af:column sortable="false" headerText="#{resUI.resource_request_key_text}" align="start" id="c52"> <af:outputText value="#{row.requestId}" id="ot82"/> </af:column> <af:column sortable="false" headerText="#{resUI.resource_service_account}" align="start" id="c53"> <af:outputText value="#{row.serviceAccount}" id="ot84"/> </af:column> <af:column sortable="false" headerText="#{resUI.resource_description_text}" align="start" id="c51"> <af:outputText value="#{row.descriptiveData}" id="ot81"/> </af:column> </af:table> The Resources tab contains static columns that can be rearranged or removed based on your requirement. The row objects are instances of oracle.iam.identitytaskflow.common.model.vo.ResourceDetailVO and the following methods: public String getResourceName() public String getStatus() public String getProvisionedOn() public String getType() public String getProcessInstanceKey() public String getResourceUserKey() public String getResourceKey() public String getObjectInstanceForUserKey() public String getTaskArchived() public String getDescriptiveData() public String getRequestId() public String getServiceAccount() |
admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/modifyuser/ModifyUserview.jsff |
The Proxy tab: <af:table var="row" rowBandingInterval="0" id="t5" contentDelivery="lazy" binding="#{pageFlowScope.modifyUserBean.proxyTable}" emptyText="#{resUI.empty_table_string}" value="#{pageFlowScope.modifyUserBean.proxyList}" selectionListener="#{pageFlowScope.modifyUserBean.proxySelectionAction}" columnStretching="last" rowSelection="single"> <af:column sortable="true" headerText="#{resUI.proxy_name_text}" id="c9" sortProperty="proxyName"> <af:commandLink text="#{row.proxyName}" id="ot4" actionListener="#{pageFlowScope.modifyUserBean.openProxyDetailPageAction}"/> </af:column> <af:column sortable="false" headerText="#{resUI.proxy_start_date_text}" id="c13"> <af:outputText value="#{row.startDate}" id="ot2"/> </af:column> <af:column sortable="false" headerText="#{resUI.proxy_end_date_text}" id="c10"> <af:outputText value="#{row.endDate}" id="ot14"/> </af:column> <af:column sortable="false" headerText="#{resUI.proxy_status_text}" id="c11"> <af:outputText value="#{row.status}" id="ot13"/> </af:column> <af:column sortable="false" headerText="#{resUI.proxy_relationship_text}" id="c12"> <af:outputText value="#{row.relationship}" id="ot15"/> </af:column> <af:column sortable="false" headerText="#{resUI.proxy_last_updated_text}" id="c8"> <af:outputText value="#{row.lastUpdated}" id="ot10"/> </af:column> </af:table> The Proxy tab contains static columns that can be rearranged or removed based on your requirement. The row objects are instances of oracle.iam.identitytaskflow.common.model.vo.ProxyDetailVO and the following methods: public String getStartDate() public String getEndDate() public String getStatus() public String getRelationship() public String getLastUpdated() public String getProxyName() public String getProxyKey() public String getProxyNameUserKey() public String getLoginUserKey() public String getLoginUserName() public String getRequestId() public String getServiceAccount() |
admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/modifyuser/ModifyUserview.jsff |
The Direct Reports tab: <af:table value="#{pageFlowScope.modifyUserBean.reportList}" var="row" fetchSize="60" binding="#{pageFlowScope.modifyUserBean.directReportiesTable}" emptyText="#{resUI.empty_table_string}" rowSelection="single" id="t6" selectionListener="#{pageFlowScope.modifyUserBean.directReportSelectedAction}" columnStretching="last"> <af:column sortProperty="Name" sortable="false" headerText="#{resUI.username_header_text}" id="column1"> <af:outputText value="#{row.userDisplayName}" id="outputText1"/> </af:column> <af:column sortProperty="Name" sortable="false" headerText="#{resUI.userlogin_header_text}" id="column2"> <af:outputText value="#{row.username}" id="outputText2"/> </af:column> <af:column sortProperty="Status" sortable="false" headerText="#{resUI.status_header_text}" id="column4"> <af:outputText value="#{row.identityStatus}" id="outputText3"/> </af:column> <af:column sortProperty="Org" sortable="false" headerText="#{resUI.organization_header_text}" id="column5"> <af:outputText value="#{row.organization}" id="outputText4"/> </af:column> </af:table> The Direct Reports tab contains static columns that can be rearranged or removed based on your requirement. The row objects are instances of oracle.iam.identitytaskflow.common.model.vo.ReportDetailVO and the following methods: public String getUsername() public String getFirstName() public String getLastName() public String getStatus() public String getOrganization() public String getEmail() public String getPhone() public String getGlobalID() public String getIdentityStatus() public String getAccountStatus() public String getUserDisplayName() |
admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/modifyuser/ModifyUserview.jsff |
The Requests tab: <af:table var="row" rowBandingInterval="1" id="t8" columnStretching="column:column7" rowSelection="single" emptyText="#{resUI.empty_table_string}" value="#{pageFlowScope.modifyUserBean.requestList}" binding="#{pageFlowScope.modifyUserBean.requestsTable}"> <af:column sortable="true" sortProperty="requestID" headerText="#{resUI.request_id_header_text}" id="c14"> <af:commandLink text="#{row.requestID}" id="cl1" actionListener="#{pageFlowScope.modifyUserBean.showSelectedRequestDetailsAction}"/> </af:column> <af:column sortable="true" sortProperty="modelName" headerText="#{resUI.request_model_name_header_text}" id="c17" noWrap="false"> <af:outputText value="#{row.modelName}" id="ot18"/> </af:column> <af:column id="c18" headerText="#{resUI.request_status_text}" noWrap="false"> <af:outputText value="#{row.status}" id="ot23"/> </af:column> <af:column sortable="true" sortProperty="requestedBy" headerText="#{resUI.request_requested_by_header_text}" id="c15"> <af:outputText value="#{row.requestedBy}" id="ot19"/> </af:column> <af:column sortable="false" headerText="#{resUI.request_parent_id_header_text}" id="c16"> <af:outputText value="#{row.parentID}" id="ot20"/> </af:column> <af:column sortable="false" headerText="#{resUI.request_date_requested_header_text}" id="column6"> <af:outputText value="#{row.dateRequested}" id="ot21"/> </af:column> </af:table> The Requests tab contains static columns that can be rearranged or removed based on your requirement. The row objects are instances of oracle.iam.identitytaskflow.common.model.vo.RequestDetailVO and the following methods: public String getRequestID() public String getRequestedBy() public String getParentID() public String getDateRequested() public String getModelName() public String getStatus() |
admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/rolepicker/RolePicker.jsff |
<af:table binding="#{pageFlowScope.rolePickerBean.table}" value="#{pageFlowScope.rolePickerBean.results}" var="row" emptyText="#{resUI.empty_table_string}" id="t1" inlineStyle="width:inherit;" rowSelection="multiple" columnBandingInterval="1" columnStretching="first" fetchSize="40" selectionListener="#{pageFlowScope.rolePickerBean.roleSelectAction}"> <af:column headerText="" id="c0" rowHeader="true" width="18px"/> <af:column headerText="#{resUI.role_display_name_text}" id="c3" headerNoWrap="true"> <af:outputText value="#{row.roleDisplayName}" id="ot5"/> </af:column> <af:column headerText="#{resUI.role_namespace_text}" id="c1" headerNoWrap="true"> <af:outputText value="#{row.roleNameSpace}" id="ot3"/> </af:column> <af:column headerText="#{resUI.role_name_text}" id="c2" headerNoWrap="true"> <af:outputText value="#{row.roleName}" id="ot4"/> </af:column> </af:table> The columns of the role picker popup can be rearranged or removed based on your requirement. The role objects are instances of oracle.iam.identitytaskflow.common.model.vo.RoleDetailVO with the following methods: public String getRoleName() public String getProvisionedOn() public String getMembershipType() public String getDescription() public List<RoleDetailVO> getChildren() public String getRoleKey() public String getRoleDisplayName() public String getRoleNameSpace() |
admin.war/WEB-INF/lib/IdentityTaskflow.jar/taskflows/search/SimpleSearchview.jsff |
<af:table var="row" rowBandingInterval="0" id="t4" binding="#{pageFlowScope.simpleSearchBean.table}" value="#{pageFlowScope.simpleSearchBean.searchResult}" emptyText="#{resUI.empty_table_string}" columnStretching="last" rowSelection="multiple" fetchSize="#{pageFlowScope.simpleSearchBean.tableFetchSize}" selectionListener="#{pageFlowScope.simpleSearchBean.processSelection}" sortListener="#{pageFlowScope.simpleSearchBean.tableSortListener.processSort}"> ....... <af:column headerText="#{pageFlowScope.simpleSearchBean.headerText}" sortable="true" id="c1" headerNoWrap="true" sortProperty="#{pageFlowScope.simpleSearchBean.sortProperty}"> <af:commandLink text="#{row[pageFlowScope.simpleSearchBean.sortProperty]}" id="ot2" actionListener="#{pageFlowScope.simpleSearchBean.userLinkListener.processAction}"/> </af:column> </af:table> The oracle.iam.identitytaskflow.backing.taskflows.search.SimpleSearchView getSearchResult() method returns a list of strings to display in the simple search table for users. The attribute whose value has to be displayed is determined in the following order from the attributes defined in the Advanced Administration, User Configuration, Search Configuration, Simple Search Attributes:
|
On the Authorization Policy tab, the advanced search feature is managed through the admin.war/WEB-INF/lib/OESOIMTaskFlows.jar/taskflows/advsrh/AdvancedSearch.jsff file. The contents of this file is as shown:
<af:table var="row" columnStretching="last" id="shTable" rowSelection="single" columnSelection="single" contentDelivery="immediate" summary="#{props['padvsrc.tabs.browse.columns.summary']}" binding="#{pageFlowScope.advancedSearchBean.searchTableBinding}" selectionListener="#{pageFlowScope.advancedSearchBean.selectSearchRow}" emptyText="#{props['brsr.tabs.advsrch.emptyText']}" shortDesc="#{props['brsr.tabs.advsrch.shortDesc']}" value="#{pageFlowScope.advancedSearchBean.searchResultsModel}" partialTriggers=":q2" columnBandingInterval="1"> ... <af:column sortable="true" sortProperty="authzPolicy.displayName" headerText="#{props['padvsrc.columns.policy_name.headerText']}" width="200" noWrap="false" align="start" id="c1"> <af:outputText value="#{row.authzPolicy.displayName}" id="ot2"/> </af:column>
The row objects are instances of oracle.iam.consoles.oesoim.tf.base.PolicyTableModel.SearchWrapper with getter methods:
public AuthzPolicy getAuthzPolicy() public boolean getHasAssignment() public boolean getHasAssignment() public String getAssignment() public boolean getHasPermissions() public String getFirstPermission() public String getPermissions()
In the transitional UI pages of the Administrative and User Console, when you click a menu item to perform tasks, such as managing access policies, a search page is displayed. For example, when you click the Manage link under the Access Policies menu item, the Manage Access Policies page is displayed with two drop-down menus for searching access policies. You can customize the number of drop-down menus, and what the items in the drop-down menus are.
When the search results display, you can determine the maximum number of rows in the results table displayed on each page. After a user selects an item from the results table, a detail page is displayed such as the Resource Detail page. The detail page contains an additional details menu. You can customize the items in these menus.
This section contains the following topics:
Use the Design Console to change the lookup codes for search pages and additional details. To customize drop-downs:
Log in to the Design Console.
Open the Lookup Definition form by navigating to Administration, then to Lookup Definition.
Search to locate the desired lookup definition.
Tip: For your search criteria, uselookup.webclient* search to find the search pages, or *additional_details to find the additional details. |
Make the desired changes to the lookup codes to set the options displayed in the drop-down menu for each search page.
The Code Key is the metadata for each column.
The Decode value is what is displayed in the Administrative and User Console.
The order the items appear in the Code Key list are the order they appear in the Administrative and User Console drop-down list. If you delete an entry and add it back, it is displayed last in the list.
Save your changes.
To change the number of drop-down menus, and the maximum number of search results on each page, edit the xlDefaultAdmin.properties file.
To set the number of drop-down menus:
Open the xlDefaultAdmin.properties file.
Locate the property from Table 25-2, and edit it as required.
To change the maximum number of search results on each page, change the value of the property global.displayrecordNum.value to the desired value. The default value is 10.
Save the file.
Restart Oracle Identity Manager.
This section explains how you can customize form templates in various consoles. It contains these topics:
You can modify request templates to customize the request attributes for self-registration and request forms.
For details, see "Managing Request Templates" in the Oracle Fusion Middleware User's Guide for Oracle Identity Manager.
You can customize the template used for self-registration by specifying template attributes in the SelfCreateUserDataSet.xml file. This both renders the attributes and also specifies the restrictions.
You can configure the user form to show or hide attributes from the My Profile page by means of the User Configuration UI.
The steps needed to display an attribute on the My Profile page are as follows:
Review the My Profile page to determine the desired customization.
Go to the Advanced Administration, and under Configuration, click User Configuration.
From the Actions menu, select User Attributes.
Select the attribute you want to show on the My Profile page, and from the Actions menu, select Modify Attribute.
Change the visibility to Yes, and click Save.
The My Profile page will now render this attribute.
Similar steps can be used to hide attributes on the page.
This section explains how to inject customized URLs into the consoles. Topics include:
The Identity Administration has been developed as ADF Task Flows. The .jsff files in the task flows can be modified to inject custom URLs. See the chapter titled Working with Navigation Components in the Oracle Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework in the following Web site:
http://download.oracle.com/docs/cd/E15523_01/web.1111/b31973/toc.htm
In the unauthenticated self service, authenticated Self Service, and Advanced Administration, there are two options for injection of custom URLs.
The pages in the unauthenticated Self Service, authenticated Self Service, and Advanced Administration allow adding any custom URLs by editing the corresponding .jspx files. This gives an option to put custom URLs by using ADF tags in places, such as the header.
The files are:
For unauthenticated Self Service:
iam-consoles-faces.war/pages/USelf.jspx
For authenticated Self Service:
iam-consoles-faces.war/pages/Self.jspx
For Advanced Administration:
iam-consoles-faces.war/pages/Admin.jspx
Note: The same files can be used to add additional static text at different locations as permitted by the .jspx files. For example, to add a static text in the header region, identify the appropriate adf facet in the file and use standard adf tags to put such information. |
The popups in unauthenticated Self Service, authenticated Self Service, and Advanced Administration can be modified to change the properties, such as turning resizing on or off. This can be done by modifying the corresponding .jspx file and making changes to the popup definition.
The files are:
For unauthenticated Self Service:
iam-consoles-faces.war/pages/USelf.jspx
For authenticated Self Service:
iam-consoles-faces.war/pages/Self.jspx
For Advanced Administration:
iam-consoles-faces.war/pages/Admin.jspx
For example, the operational popups, which means popups having some operation unlike confirmation or message popups, search for the definition of POPUP_FORM_0. Inside this definition, add resize="on"
to the contained <af:dialog /> definition, as shown:
<af:popup id="POPUP_FORM_0" clientComponent="true" contentDelivery="lazyUncached"> <af:dialog binding="#{admin.view.popupForms[0].dialog}" resize="on" clientComponent="true" cancelVisible="false" …
There are a number of properties that can be useful in customizing the Workflow Designer user interface based on what a particular locale demands. These properties files are in xlWebApp\WEB-INF\classes\xlRichClient_LOCALE.properties.
This section discusses some of the examples of Workflow Designer customization.
The label widths for the task names can be customized by using:
global.workflowRenderer.labelWidthFactor=7
If in a particular locale the text is seen to be truncated, then this property can be changed accordingly to modify the width of the labels.
Similarly, the width and height of the icons representing the tasks and responses can be controlled by:
workflowRenderer.referenceMarker.defaultHeight=22 workflowRenderer.referenceMarker.defaultWidth=22 workflowRenderer.referenceMarker.defaultDistance=6 workflowRenderer.referenceMarker.maxLabelLength=5 workflowRenderer.response.defaultHeight=20 workflowRenderer.response.defaultWidth=250 workflowRenderer.response.maxLabelLength=25 workflowRenderer.task.defaultHeight=38 workflowRenderer.task.defaultWidth=38 workflowRenderer.task.maxLabelLength=200
In the search functionality at different places in the designer implementation, the number of results could be high in cases where users and groups are searched. To control the number of results to be displayed, the following properties can be used.
workflowDesigner.label.limitUserSearchResults=200 workflowDesigner.label.limitGroupSearchResults=200 workflowDesigner.label.limitAdapterSearchResults=200 workflowDesigner.label.limitEmailTemplateSearchResults=200 workflowDesigner.label.limitRulesSearchResults=200 workflowDesigner.label.limitAssignTypeSearchResults=200 workflowDesigner.label.limitDependentDataTaskSearchResults=200 workflowDesigner.label.limitExistingTasksSearchResults=200
When the number of results returned are more than these numbers, a message is shown to narrow the search criteria.