In this chapter we consider various ways to extend the client side of ReportServer. Some of these extensions will be configured via configuration files and which allow, for example, to add further information tabs to the TeamView or add further links to the module bar. Other extensions need scripting. These include adding additional report exporters, displaying messages on login, or adding custom information to the status bar.
Via the configuration file /etc/ui/urlview.cf you can add links and tabs to various locations within ReportServer. For example, you can add a new link to the module bar and specify to which URL it should point. Additionally you can restrict what you want to add to certain users or groups. A typical configuration file could like
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<adminviews>
<view>
<!-- View Configuration -->
</view>
</adminviews>
<objectinfo>
<view>
<!-- View Configuration -->
</view>
<view>
<!-- View Configuration -->
</view>
</objectinfo>
<module>
<!-- View Configuration -->
</module>
</configuration>
The three scopes (adminviews, objectinfo and module) allow you to add additional information tabs to objects in the administration module (for example, add an additional tab to a user object displaying information on that particular user), additional tabs to objects in the teamspace and within module you can add additional links to the module bar. The documentation report within teamspaces is by default, for example, integrated via the an objectinfo view configuration.
View configurations all share the following configuration
<view>
<restrictTo><!-- can be used to restrict this to specific users/groups--></restrictTo>
<name>The display name</name>
<url>http://someUrl/</url>
</view>
Via restrictTo you can specify users by username or groups or OUs (organizational units, i.e., folders in the user tree) via IDs to include this view only for users that match one of the restrictions. The name is the name to be displayed on the tab or in the module bar. The URL denotes the URL to be loaded.
Restrictions are specified in the following form
<restrictTo>
<users>username1,username2</users>
<groups>123,234</groups>
<ous>876</ous>
</restrictTo>
For adminviews and objectinfo views you can further restrict the view to specific object types. This is done by adding a "types" tag which takes a comma separated list of fully qualified names of objects for which this view applies. For example the following restriction would restrict the (objectinfo) view to report objects within the teamspace.
<types>net.datenwerke.rs.tsreportarea.client.tsreportarea.dto.TsDiskReportReferenceDto</types>
The following types are available for objectinfo views
The following types are available for adminviews
Prefix: net.datenwerke.rs.core.client.reportmanager.dto.reports.
Type | Description |
AbstractReportManagerNodeDto | All objects in the report management tree. |
ReportDto | reports |
ReportFolderDto | folders |
Prefix net.datenwerke.security.client.usermanager.dto.
Type | Description |
AbstractUserManagerNodeDto | All objects in the user management tree. |
UserDto | users |
GroupDto | groups |
OrganisationalUnitDto | organisational units (folders) |
Prefix net.datenwerke.rs.fileserver.client.fileserver.dto.
Type | Description |
AbstractFileServerNodeDto | All objects in the file server. |
FileServerFolderDto | folders |
FileServerFileDto | files |
Prefix net.datenwerke.rs.core.client.datasourcemanager.dto.
Type | Description |
AbstractDatasourceManagerNodeDto | All objects in datasource management. |
DatasourceFolderDto | folders |
DatasourceDefinitionDto | datasources |
Prefix net.datenwerke.rs.dashboard.client.dashboard.dto.
Type | Description |
AbstractDashboardManagerNodeDto | All objects in the dashboard tree |
DashboardNodeDto | dashboards |
DashboardFolderDto | folders |
You can use replacements within the URL to generate dynamic URLs. The following replacements are available
Besides specifying a view via a URL ReportServer you can tell ReportServer to display the preview view of a report. For this, you need to define the URL as
where ID should be replaced by the id of the corresponding report or, for example, by the replacement ${reportId} when defining this view for report objects in the TeamSpace.
Note that, as with any configuration file you need to run config reload on the terminal for changes to take effect. Furthermore you need to reload your browser to see effects as the configuration is loaded onto the client on login.