Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Custom JSPs

To customize the presentation of the data of a CRIS entity other than rearranging the order of the data inside a box and deciding positioning, see “Group Metadata, aka boxes”, the system allow you to define your custom JSPs used instead of the out-of-box layout.

...

The snippet below show the default configuration for the Researcher Page components Service

...

Code Block
languagexml
themeEclipse
<!-- Components -->
<bean id="rpComponentsService" class="org.dspace.app.cris.integration.CrisComponentsService">
 <property name="components">
  <map>
   <entry key="dspaceitems" value-ref="publicationlist" />
   <entry key="projects" value-ref="projectlist" />
  </map>
 </property>
</bean>

...

Tip
For every components, a box with the same name and a custom JSP file must be defined. Placing such box in one or more Tab will enable the component execution and visualization.
Warning

Components are evaluated (executed) only when a tab including its associated box is requested. If the components is not associated to any box or the box is not included in a visualized tab the code used by the component is not executed and the additional information retrieved by the components

visualization.

are not available. If you need to extend the visualization of a CRIS entity and you need some extra code to be always executed you can use the processors (see below)

Out-of-box the system include configurable components to explore inverse relationship between a CRIS object and DSpace items and a CRIS object and other CRIS objects. This approach other than be time saving make also the data model more consistent avoiding the creation of wrong unilateral relationship. For example: if a researcher belongs to a department it has to be set up a pointer field via UI (see “Field Definition”). However, the OrgUnit entity not need a pointer to track the relationships between the department and all its researchers. The component executes the appropriate SOLR query to retrieve the referencing objects. The snippet below show the configuration of the publicationList component for the ResearcherPage

...

Code Block
languagexml
themeEclipse
<!-- Publication component for RP -->
<bean id="publicationlist"
 class="org.dspace.app.webui.cris.components.ItemsConfigurerComponent">
 <property name="relationConfiguration" ref="relationRPVSItemConfiguration" />
 <property name="commonFilter">
 <util:constant static-field="org.dspace.app.webui.cris.util.RelationPreferenceUtil.HIDDEN_FILTER"/>  </property>   
 <property name="target" value="org.dspace.app.cris.model.ResearcherPage" />
 <property name="types">
  <map>
   <entry key="selected" value-ref="selectedComponent" />
   <entry key="journal" value-ref="journalComponent" />
   <entry key="conference" value-ref="conferenceComponent" />
   <entry key="book" value-ref="bookComponent" />
   <entry key="patent" value-ref="patentComponent" />
   <entry key="other" value-ref="otherComponent" />
  </map>
 </property>
</bean>

...

The configuration of the clustering categories are done using spring beans. The snippet below show the default configuration for a “journal article” category applied to the publication list

 

Code Block
languagexml
themeEclipse
<bean id="journalComponent" class="org.dspace.app.webui.cris.components.BeanFacetComponent">
 <property name="componentIdentifier" value="journal" />
 <property name="facetQuery">
  <value>dc.type:Article -relationpreferences.crisrp.publications.selected:{1}</value>
 </property>
 <property name="order"><value>asc</value></property>
 <property name="rpp"><value>20</value></property>
 <property name="sortby"><value>1</value></property> 
</bean>

...

Tip

The default configuration exclude the selected publications from their native category (article, book, etc.) so to have not overlapping categories but it can easily be changed modified the facet query definition removing the

-relationpreferences.crisrp.publications.selected:{1}

CRIS Processors

A processor is a JAVA class that implements the interface org.dspace.app.cris.util.ICrisHomeProcessor<ACO extends ACrisObject> allowing the execution of extra code any times that a specific type of entity (Researcher Page, OrgUnits, etc.) is visualized. It has access to the request object so can provide additional information to a custom view to visualize more information maybe retrieved from external system or other dynamic behaviors.

It is the transposition to the CRIS entities of the DSpace Processor (Site, Item, Community, Collection in org.dspace.plugin).

Out of box it is provided the org.dspace.app.webui.cris.metrics.MetricsCrisHomeProcessor<ACO> that enable the retrieve and visualization of the metrics available for a specific object, it is defined as a spring bean in 

[dspace-installDir]/config/spring/cris/cris-processor.xml

Code Block
languagexml
themeEclipse
	<bean class="org.dspace.app.webui.cris.metrics.MetricsCrisHomeProcessor"
		id="rpHomeProcessor">
		<property name="configurator" ref="org.dspace.app.webui.cris.metrics.MetricsProcessorConfigurator"/>
		<property name="rankingLevels">
			<list>
				<value>1</value>
				<value>5</value>
				<value>10</value>
				<value>20</value>
				<value>50</value>
			</list>
		</property>
		<property name="metricTypes">
			<list>
				<value>view_aggregate</value>
				<value>download_aggregate</value>
				<value>scopus_aggregate</value>
				<value>scopus_count</value>
				<value>wos_aggregate</value>
				<value>wos_count</value>
				<value>pubmed_aggregate</value>
				<value>pubmed_count</value>
			</list>
		</property>
		<property name="clazz" value="org.dspace.app.cris.model.ResearcherPage" />
		<property name="searchService" ref="org.dspace.discovery.SearchService" />
	</bean>

Defining the site sections (Explore)

It is possible to highlight specific area of the database defining an entry page for each section. The sections are automatically defined as the entity types defined by the Global Search configuration but not all the entity types need to be included in the top navigation bar.

The section / entity type included in the navigation bar are defined by the following configuration

 

for each section it is possible to define which browses proposes, which indexes use for the advanced search and which dynamic components include