Include Page | ||||
---|---|---|---|---|
|
Panel | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
These topics are discussed in the "Grouper UI" training series. |
...
It is possible to turn off the style sheets. This may be useful for testing the accessibility of the Grouper UI and any customisations you make (see the Remove CSS stylesheet references? form field in Determining How a Customising the Grouper UI Page Was Constructed.
Anchor | ||||
---|---|---|---|---|
|
Changing the Internet2 Logo
...
Currently, there is nowhere in the UI to select a different locale from the default, however, if a lang parameter is passed as part of the URL which invokes login, the value will be used as the locale for the current session.
See Determining How a Customising the Grouper UI Page Was Constructed for details of how to display which key / value pairs were used in an actual page in the UI.
...
Even if you don't need to change/add any actions, a Tiles plugin must be configured in order to make custom templates available (see Using Custom Templates instead of the standard templates):
No Format |
---|
<plug-in className="org.apache.struts.tiles.TilesPlugin">
<set-property property="moduleAware" value="true"/>
<set-property property="definitions-debug" value="0"/>
<set-property property="definitions-parser-details" value="0"/>
<set-property property="definitions-parser-validate" value="false"/>
<set-property property="definitions-config" value="/WEB-INF/tiles-def.xml,/WEB-INF/tiles-def-custom.xml"/>
</plug-in>
|
...
Note: The standard UI does not have a logout link, because it is not possible to safely logout of basic HTTP authentication. Other authentication schemes will generally work by setting an HttpSession attribute - which is cleared when an HttpSession is invalidated, so a logout link is provided.
See debug information in logs, edit log4j.properties
Code Block |
---|
log4j.logger.edu.internet2.middleware.grouper.ui.GrouperUiFilter = DEBUG |
Anchor | ||||
---|---|---|---|---|
|
...
As of v1.3.0 it is possible to override how the UI decides what the current user can do with a group. The primary motivation for this feature is to allow some UI features to be turned off i.e. when the feature should be maintained by a loader. Customization is achieved by implementing the UIGroupPrivilegeResolver interface, and configuring it through media.properties e.g.
No Format |
---|
edu.internet2.middleware.grouper.ui.UIGroupPrivilegeResolver=uk.ac.bris.is.grouper.ui.UoBUIGroupPrivilegeResolver
|
...
As of version 1.2.1 a new MenuFilter interface has been introduced to allow a more structured approach to customizing menus. Two implementations are provided, configured as:
No Format |
---|
menu.filters=edu.internet2.middleware.grouper.ui.RootMenuFilter edu.internet2.middleware.grouper.ui.GroupMembershipMenuFilter
|
...
As of Grouper v1.2.0 it is possible to configure a single arbitrary attribute to use when displaying a subject, group or stem. The default media.properties keys are:
No Format |
---|
#Default if an attribute is not configured for a specific subject source. 'description' is set for backwards compatability
subject.display.default=description
#used for subjects which are groups sourced by Grouper
subject.display.g\:gsa=displayExtension
#used for internal subjects i.e. GrouperSystem and GrouperAll
subject.display.g\:isa=name
#default attribute for groups (when not viewed as a subject)
group.display=displayExtension
#flat = context i.e. flat mode in the UI. Here the hierarchy is not shown and names displayExtension need not be unique across
#multiple stems.
group.display.flat=displayName
#default attribute for stems
stem.display=displayExtension
|
In the QuickStart the following key is also used:
No Format |
---|
subject.display.qsuob=name
|
When displaying search results sites can configure a default attribute to display:
No Format |
---|
search.group.result-field=name
search.stem.result-field=name
|
in addition sites can configure a set of attributes from which the user may select one to display:
No Format |
---|
search.group.result-field-choice=name displayExtension displayName
search.stem.result-field-choice=name displayExtension displayName
|
As of Grouper v1.2.1 it is possible, for the SubjectSummary page, to specify a subset of available attributes to display and the order in which to display them:
No Format |
---|
# subject.attributes.order.<SOURCE_ID>=comma separated list of case sensitive attribute names
subject.attributes.order.g\:gsa=displayExtension,displayName,name,extension,createTime,createSubjectId,createSubjectType,modifySubjectId,modifySubjectType,modifyTime,subjectType,id
#subject.attributes.order.qsuob=LOGINID,LFNAME,subjectType,id
|
The UI wraps API objects as specific subclasses of ObjectAsMap. As of v1.3.0 it is possible to configure your own implementations. Typically these would subclass the Grouper UI concrete subclasses and add/modify behaviour. Configuration is through media.properties e.g.
No Format |
---|
objectasmap.StemAsMap.impl=uk.ac.bris.is.grouper.ui.util.UOBStemAsMap
|
...
As of Grouper v1.2.1 you can sort subjects from the same source together by defining strings which are pre-pended to the usual sort string:
No Format |
---|
subject.pre-sort.g\:gsa=AAA
subject.pre-sort.qsuob=BBB
|
...
In the QuickStart import and export is 'activated' using:
No Format |
---|
membership-export.config=resources/custom/membership-export.xml
membership-import.config=resources/custom/membership-import.xml
|
...
As of Grouper v1.2.1 you can configure the UI to allow import of data from a text area:
No Format |
---|
membership-import.allow-textarea=true
|
...
The first web.xml fragment is grouper-qs/custom-grouper-ui/webapp/WEB-INF/web.custom.xml and it overrides the default action servlet definition to ensure that it loads the Struts config customisations - which in turn load the Tiles definition customisations.
No Format |
---|
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config-custom.xml,/WEB-INF/struts-config.xml,/WEB-INF/struts-config-custom.xml</param-value>
</init-param>
<init-param>
<param-name>config/i2mi</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<load-on-startup>2</load-on-startup>
</servlet>
|
...