Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
User Interface
Customization Guide
Release 6.7.1 Service Pack 1
© 1999-2007 Interwoven, Inc. All rights reserved.
No part of this publication (hardcopy or electronic form) may be reproduced or transmitted, in any form
or by any means, electronic, mechanical, photocopying, recording, or otherwise, without the prior
written consent of Interwoven. Information in this manual is furnished under license by Interwoven, Inc.
and may only be used in accordance with the terms of the license agreement. If this software or
documentation directs you to copy materials, you must first have permission from the copyright owner
of the materials to avoid violating the law which could result in damages or other remedies.
Interwoven, Inc.
160 East Tasman Drive
San Jose, CA 95134
http://www.interwoven.com
Interwoven, Inc. 4
Contents
Interwoven, Inc. 6
Contents
Interwoven, Inc. 8
List of Figures
Figure 1 ContentCenter Standard before Customization . . . . . . . . . . . . . . . . . . . . .15
Figure 2 ContentCenter Standard after Customization . . . . . . . . . . . . . . . . . . . . . . .16
Figure 3 ContentCenter Professional before Customization. . . . . . . . . . . . . . . . . . .17
Figure 4 ContentCenter Professional after Customization . . . . . . . . . . . . . . . . . . . .17
Figure 5 Customization Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23
Figure 6 Customer and Reference Toolkit Directory Structure . . . . . . . . . . . . . . . .30
Figure 7 Customization Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
Figure 8 TeamSite Online Help System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
Figure 9 TeamSite Wizard Help Topics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
Figure 10 TeamSite Customized Online Help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .88
Interwoven, Inc. 10
About This Book
The TeamSite User Interface Customization Guide describes how to customize the
ContentCenter Standard and ContentCenter Professional user interfaces in Interwoven
6, allowing you to customize—without programming—their look and feel, display
behavior, and online help content; to extend their capabilities by invoking custom Java
code from custom menu items, tabs, and home page components; and to access portions
of ContentCenter functionality via URL commands embedded within email messages,
web pages, or custom JSPs.
These user interfaces, as well as the FormsPublisher user interface, are built upon
Interwoven’s User Interface Toolkit (UITK) technology, part of the ContentServices
series of developer tools and interfaces. Other products shipped with Interwoven 6,
such TeamSite Front Office, do not currently use this technology.
The older TeamSite WebDesk Pro user interface is no longer supported. This guide
contains a migration appendix to assist those customers who have existing WebDesk Pro
customizations who wish to migrate them to the new Interwoven ContentCenter
products.
In the future, Interwoven intends to expose the underlying UITK technology as a set of
Java interfaces and libraries. Currently, such programmatic use of the UITK is not
supported. Any UITK calls visible in the JSPs that are part of the ContentCenter
products are for internal Interwoven use only. Such calls are not supported and are
subject to change. This book is not intended to be the UITK developer’s guide.
Intended Audience
The target audience for this book varies depending on the types of customizations being
done. It includes Interwoven Administrators and IT developers. Broadly speaking,
customizers can be divided by tasks and skill sets as follows:
Designers: edit product look and feel, co-branding, and online help content.
Interwoven Integrators: as above, plus adding custom menu items and integrating
with workflow by embedding ContentCenter functionality within auto-generated
emails.
Java Developers: writing custom code accessed from within the ContentCenter web
application from custom menu items, tabs, or custom home page components.
All customizers should understand HTML, CSS (HTML cascading style sheets), some XML,
and JavaScript. Interwoven integrators should also understand TeamSite Workflow.
Java developers should be generally familiar with how J2EE web applications are built.
Organization
To support this range of skill sets, this manual presents its topics in order of increasing
complexity:
Chapter 1, “Customization Overview.” Briefly describes what ContentCenter GUI
features can be customized, how customizations are specified and made, and how
they are preserved across new Interwoven releases.
Chapter 2, “Toolkit Organization.” Outlines the organization of the customer toolkit,
in which customizations are made and preserved.
Chapter 3, “Building the Web Application.” Details how to speed up and extend
rebuilding the ContentCenter web application after specifying customizations.
Chapter 4, “Customizing GUI Behavior.” Details how to customize the behavior and
layout of the GUIs by customizing XML configuration files.
Chapter 5, “Customizing GUI Appearance.” Details how to customize the
appearance of the GUIs by extending or customizing their cascading style sheets.
Chapter 6, “Customizing Online Help.” Describes how to customize the online help
associated with the GUIs.
Chapter 7, “Extending GUI Functionality.” Describes how to extend the functionality
of the GUIs by adding custom menu items, tabs, and home page components
(portlets).
Chapter 8, “Adding Custom Java Code.” Describes how to extend the functionality
of the GUIs by adding custom Java code to the ContentCenter web application,
accessed through custom menu items, tabs, or home page components (portlets).
Chapter 9, “Using URL Commands.” Discusses how portions of ContentCenter
functionality can be accessed by URL command links embedded within
automatically generated e-mails, web pages, and custom JSPs.
Interwoven, Inc. 12
About This Book
Notation Conventions
This manual uses the following notation conventions:
Path names are listed using “/” as the separator, for example:
iw-home/iwportal/portal.cfg. On Windows machines, substitute “\” as needed, such
as: iw-home\iwportal\portal.cfg.
Interwoven, Inc. 14
Chapter 1
Customization Overview
The TeamSite User Interface Customization Guide describes how to customize the
ContentCenter Standard and ContentCenter Professional user interfaces.
Custom UI
Component
(dynamic content)
New ColorScheme
Custom UI
Component
(web site)
Custom UI
Component
(static content)
Interwoven, Inc. 16
Chapter 1: Customization Overview
New Color
Scheme
Custom Attribute
Among the items that can be customized using Interwoven’s UITK technology are:
Look and Feel
Type styles (fonts, sizes, and colors)
Colors and images (background images and icons)
Co-branded logos
Display Behavior
Default page size for lists
Column presence in lists
Column order
Custom variables shown in detail areas
UI component (portlet) presence on the home page
UI component (portlet) sizing and placement order
Menu item order
Accessing Custom Functionality
Custom UI components (portlets) in ContentCenter Standard
Custom menu items
Custom tabs in ContentCenter Professional
Restricting access to custom items by TeamSite roles
Online Help
Online help content
Online help system indexing and navigation
ContentCenter Standard wizard help topics
ContentCenter Standard introductory How Do I component (portlet)
NOTE
Internally, ContentCenter Standard’s “components” (what you see on the screen) are
referred to as “portlets” within the UITK, as their framework behaves similarly to, but is
not, a portal framework (nor is it compliant with the JSR 168 standard).
Interwoven, Inc. 18
Chapter 1: Customization Overview
In addition to these toolkits, each web application has a special customer toolkit in
which the Interwoven toolkits’ configuration files, HTML styles, and online help can be
overwritten or extended. All customizations within this customer toolkit are applied
whenever the web application is rebuilt. This customer toolkit is not overwritten when a
new version of the web application is installed, ensuring that customizations are
preserved across releases.
In the current Interwoven release, there is only one UITK web application, the
ContentCenter web application.
Customizations can be undone by removing them from the customer toolkit and then
rebuilding the web application.
Customizations are processed in the customer toolkit before being merged with the
internal toolkits. In the customer toolkit, the customer_out directory contains the
output directories for custom Java code (JSPs and Servlets) and supporting
files—including their copies of the configuration and style sheet files—whose source is
placed in the customer_src directories.
A reference toolkit is supplied, containing the style sheets, exposed XML configurations,
and help files used by Interwoven internally, so that these can be examined and, where
appropriate, copied into the corresponding customer_src directories in the customer
toolkit to be extended or modified. Customizations should not be made in the reference
toolkit (and will have no effect if attempted, as the reference toolkit is not applied when
the web application is rebuilt).
NOTE
Some changes in a new release of the underlying Interwoven-supplied software may be
“masked” by customer customizations, such as an updated Interwoven-supplied online
help screen whose older version was customized. In these cases, the customer will need
to merge their customizations with Interwoven’s updates (contained within the updated
reference toolkit).
The exact mechanism by which a customization is applied when the web application is
rebuilt varies depending on the type of file it is specified in, as described in more detail
in the next sections. Essentially, though, when the web application is rebuilt:
Style sheets are applied in cascading order.
Corresponding XML configuration files are merged together.
Custom online help files replace the corresponding Interwoven-supplied files.
Some Interwoven internal toolkits have associated custom style sheets located within
the customer toolkit in the corresponding toolkit subdirectory. These initially contain
no entries. In the web application, these custom style sheets are each applied after the
corresponding Interwoven style sheet. Thus, any HTML style change made to a custom
style sheet will automatically take precedence over the same named style specified in its
corresponding internal style sheet.
By choosing which customer style sheet to make a style change in, the scope of a
customization can be controlled.
For example, by specifying different colors in the custom base toolkit style sheet and a
custom logo in the base/images directory, all ContentCenter interfaces will be affected.
Then, by specifying different font styles in the ContentCenter Standard custom style
sheet, only the fonts in that interface will change while fonts in the ContentCenter
Professional interface will remain unchanged.
This is useful because many styles can look nice in one interface but not in another
interface.
Interwoven, Inc. 20
Chapter 1: Customization Overview
When the web application is rebuilt, these configuration files are read in a specified
order and merged to build a master internal structure of all display elements. Within a
set of files with the same prefix, if several XML entries have the same configuration id,
the last entry read supersedes any earlier ones in this structure.
For each set of configuration files with a given prefix, the customer toolkit contains a
similarly named file in the customer_src/etc/conf/customer directory, such as
portal_custom.xml, which initially contains an empty element that serves as a
placeholder for customizations.
Because configuration files in the customer toolkit are read last when rebuilding the web
application, any entries in them automatically modify or, in the case of conflicts,
supersede the Interwoven-supplied entries.
For example, to redefine one aspect of how ContentCenter Standard lays out its UI
components on its home page—the widths of each column displayed on the home page
as a percentage of the home page’s total width—an entry with different column
percentages is placed in the file portal_custom.xml, replacing the initially empty
element pair <iwov-portal></iwov-portal> with:
<iwov-portal>
<portal-page id="iw.ccstd.home.portal-page">
<portlet-group id="iw.ccstd.home.column1.portal-group" width="50%">
</portlet-group>
<portlet-group id="iw.ccstd.home.column2.portal-group" width="50%">
</portlet-group>
</portal-page>
</iwov-portal>
To do so, copy the relevant help file into the customer toolkit and edit it as needed.
When the web application is rebuilt, any help files in the customer toolkit will
automatically overwrite the corresponding Interwoven help files. Thus, any existing
links within the help system will now automatically take the user to the customized help
file.
If many new files are added to a help system, it may be useful to update its table of
contents and index files as well, as described in Chapter 6, “Customizing Online Help.”
NOTE
This script must be invoked from within the customer_src directory.
Interwoven, Inc. 22
Chapter 1: Customization Overview
4. Test the customization (if unexpected behavior results, remove the customization
from the customer_src directory and rebuild the ContentCenter web application).
If necessary, the make_toolkit script automatically stops the servlet container before
rebuilding the web application and restarts it when it is done.
NOTE
If you are using a different application server than the Apache Tomcat supplied by
Interwoven, such as IBM WebSphere or BEA WebLogic, you will also have to perform
certain additional manual steps as discussed in “Deploying Customizations to other
Application Servers” on page 38.
Because this script stops and restarts services (Windows) or daemons (Unix), you must
be Administrator (Windows) or root (Unix) to execute it. You must also have write
permission in the customer_out directories in the customer toolkit.
Using development servers to prototype and test customizations before rolling them out
in a production environment may be required if UI developers are not generally granted
Administrator (Windows) or root (Unix) privileges on your production systems.
Interwoven, Inc. 24
Chapter 2
Toolkit Organization
This chapter describes the User Interface Toolkit (UITK) technology and the format and
naming conventions used within it.
The UITK consists of a series of internal toolkits, plus a customer toolkit, reference
toolkit (though this is not part of the final package), and a sample toolkit. Their output,
when deployed and built, is packaged as a Java web application .WAR (web archive) file.
Web Application
The ContentCenter web application normally runs inside the Interwoven-supplied
Apache Tomcat application server. Manual steps are provided for customers who wish
to use either the IBM WebSphere or BEA WebLogic application servers instead of
Apache Tomcat.
Deployed Toolkits
Each ContentCenter toolkit corresponds to a ContentCenter user interface subsystem.
The base toolkit defines the fundamental functionality of the UITK. Each application
or subsystem with either online help or custom style sheets has a corresponding toolkit
that is visible within the customer_src toolkit:
ccstd for ContentCenter Standard.
ccpro for ContentCenter Professional.
formspub for FormsPublisher.
Once the web application is installed, these toolkits, along with other internal toolkits
corresponding to subsystems (such as VisualPreview) without online help or custom
style sheets, will appear in the deployed web application under
iw-home/httpd/webapps/content_center.
Do not modify any files in the merged and deployed web application in this location.
Any modifications made to these files are not only unsupported but will also be
overwritten the next time the web application is rebuilt.
Important!
Do not rely on any internal Interwoven information exposed in this merged and
deployed web application.
While internal files, being part of a deployed web application, are necessarily exposed
here and can therefore be examined by customers, the information in these files that is
not exposed externally through the customer toolkit is not supported nor guaranteed to
remain in its current form in future versions of the UITK. This especially pertains to all
internal Java calls and commands. Customers are strongly discouraged from relying on
or making use of any information visible in the merged and deployed ContentCenter
web application.
Customer Toolkit
The customer toolkit is where customizations are placed, to be merged into the rebuilt
web application. Initially, it is an empty framework. It consists of several directories
and “skeletal” files ready to be merged into the expanded ContentCenter web
application.
Directory Structure
The customer toolkit resides under iw-home/local/config/lib/content_center. It
consists of two top level directories:
customer_src, where customizations are specified and the source files for custom
Java code development, including custom configuration files, style sheets, and
online help files, are placed.
customer_out, where the processed and ready to merge custom configuration files,
style sheets, and modified online help files are automatically placed before
rebuilding the ContentCenter web application. Files in this directory should not be
modified.
Configuration Files
Custom XML configuration files placed in the customer_src/etc/conf/customer
directory must begin with the same prefixes as the internal configuration files that they
will each be merged with. There are seven custom configuration files:
application_custom.xml
file_template_custom.xml
portal_custom.xml
search_custom.xml
ui_custom.xml
Interwoven, Inc. 26
Chapter 2: Toolkit Organization
userops_custom.xml
workflow_custom.xml
NOTE
This is true for new TeamSite 6.7 installations; it is true for migrations of TeamSite 6.x
to TeamSite 6.7 only after the files in customer_src_new/etc/conf/customer have
either been merged with the files in customer_src/etc/conf/customer, as described in
Appendix B, “Migrating Existing Customizations.”
These files are initially empty, except for their two first lines (as in
portal_custom.xml):
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE iwov-portal
PUBLIC "-//Interwoven, Inc.//DTD Portal Customizations 1.0//EN"
"../../../../reference/etc/conf/portal_custom.dtd">
These files list the externally exposed XML used within internal Interwoven configuration
files (the ones that the customer toolkit customizations are merged with) so that the XML
entries and ids used by Interwoven are available to be referenced or modified within
customizations.
Each reference file’s name includes the internal toolkit (teamsite, ccstd, ccpro, and so
on) it comes from and the type of customization entries it contains (application,
portal, workflow, or ui).
Also present in this directory is the file README_base_config_types which details the
XML structure used in most of the reference files (plus other README files for more
specialized customizations).
Also present are DTDs corresponding to the XML custom configuration files. As the
custom configuration files contain only the externally exposed portions of the final
merged XML files that result from rebuilding the web application, they cannot be
validated against the final internal merged file schema. The DTDs supplied apply only
to the custom configuration files and are closely, though not absolutely, accurate (erring
on the side of strictness). They are provided so that customer customizations can be
validated before attempting to rebuild the ContentCenter application, as described in
“Customization Format” on page 42.
The Interwoven internal styles that are exposed to be modified, replaced, or extended by
customers are in style sheets within the reference toolkit, one for each internal toolkit
with the name /toolkit/styles/iw.css (such as /base/styles/iw.css).
These reference style sheets contain all the Interwoven defined style names and
definitions for that toolkit. The base.css style sheet include styles used by all
applications.
During customization, only the styles being customized—and only the portions of a
style being customized—are copied from the reference toolkit into the appropriate
custom.css style sheet and then edited, as discussed further in Chapter 5, “Customizing
GUI Appearance.”
For example, customized versions of the English help files for ContentCenter
Professional would be placed in customer_src/web/ccpro/help/en.
In the reference toolkit there is a /toolkit/help/locale directory for each toolkit with
a help system, such as /ccstd/help/en for the ContentCenter Standard English help
system, that contains reference copies of the Interwoven-supplied help files.
When customizing online help pages, copy the online help files you are modifying from
the relevant reference toolkit directory to the corresponding
/web/toolkit/help/locale directory in customer_src and then edit them as needed.
Interwoven, Inc. 28
Chapter 2: Toolkit Organization
Do not copy any files you will not be modifying, as discussed further in Chapter 6,
“Customizing Online Help.”
The ContentCenter online help system has its own style sheets in order to have a look
and feel distinct from the actual ContentCenter GUIs.
Its structure is that of a source tree for a Java J2EE application, with etc, lib, src, and
web directories, as discussed in Chapter 8, “Adding Custom Java Code.”
The XML configuration files and custom style sheets located here are also part of a
custom Java program’s supporting files.
Summary
The following diagram illustrates the customer and reference toolkit structure.
Interwoven, Inc. 30
Chapter 2: Toolkit Organization
To remove them, remove their entries from the customer toolkit and then rebuild the
web application.
Alternatively, you can apply all the sample changes at once by appending the sample
toolkit to the end of the toolkit list in:
iw-home/local/config/lib/content_center/toolkits.xml
Add the following element just before the closing element </toolkits>:
<toolkit id="customer_samples"
path="iw-home/local/config/lib/content_center/customer_samples_out/customer_samples.tk.war"/>
substituting for iw-home appropriately, and save this file. Change directory to:
iw-home/local/config/lib/content_center/customer_samples_src
The resulting user interfaces should have all the sample customizations shown earlier.
NOTES
A customer_samples_out directory will automatically be created by this process.
Before doing this, consider performing, if you have not already done so, the steps
described in “Faster Web Application Builds” on page 35, because rebuilding the
ContentCenter web application can be dramatically sped up for most customizations
by turning off JSP precompilation.
To remove these customizations, comment out the customer_samples toolkit line from
toolkits.xml and then rebuild the web application (from customer_src) by issuing:
iw-home/iw-perl/bin/iwperl iw-home/install/install_webapps.ipl -i
-f content_center
NOTES
This is not the normal ContentCenter web application rebuild command.
Do not rename nor remove the file toolkits.xml. Renaming or removing the file
toolkits.xml and then rebuilding the web application will recreate this file with
entries for both the customer and customer_samples toolkits. If you accidently do
so, comment out the custom_samples entry.
Interwoven, Inc. 32
Chapter 3
Overview
As described earlier, the standard customization process is to:
5. Identify the feature being customized and the relevant file(s) to edit.
6. Edit the corresponding file(s) in the customer_src directories.
7. Generate the output files, placing them in the customer_out directory, and rebuild
the ContentCenter web application by:
c. changing to iw-home/local/config/lib/content_center/customer_src
d. and issuing iw-home/iw-perl/bin/iwperl iw-home/bin/make_toolkit.ipl
NOTE
While make_toolkit does its work in two phases, as illustrated by this diagram,
make_toolkit is invoked only once by the developer doing the customization.
Most customers will follow this process for the majority of their customizations.
Due to the default caching of static portions of the ContentCenter GUIs, customizations
may not be immediately visible after they are made. The section “Disabling Browser
Caching” describes how to turn off this caching, if desired on development machines.
The customization process can be dramatically speeded up in most cases by turning off
JSP precompilation and rebuilding the web application once before starting the normal
iterative customization process. This is especially useful on development machines, as
described in the section “Faster Web Application Builds”.
The make_toolkit script uses a version of Jakarta Ant installed with TeamSite to
perform XML validation of customizations as part of this build process, as described in
the section “Validating XML Customizations during the Build Process”.
The make_toolkit script, in its standard usage, attempts to compile only those portions
of the ContentCenter web application that it needs to, based on the new customizations
that have been specified since the web application was last built. Occasionally, this may
be inappropriate and other methods may be needed, as described in the section
“Troubleshooting Web Application Builds”.
The ContentCenter web application can run in other application servers, as described in
the TeamSite Installation Guide. The section “Deploying Customizations to other
Application Servers” details the manual steps needed to redeploy the ContentCenter web
application after making customizations.
NOTE
The make_toolkit script is the standard way to apply a GUI customization. The
make_toolkit script uses an underlying installation and deployment script,
install_webapps. Occasionally, you may need to invoke the underlying
install_webapps script directly, as detailed in the appropriate sections.
However, this can result in developers customizing the ContentCenter GUIs being
unable to view the changes they make. There are two options to deal with this. One
option is for developers to either disable browser caching entirely in their own browsers
Interwoven, Inc. 34
Chapter 3: Building the Web Application
(whether they are viewing ContentCenter GUIs or not) or continuously delete their
browser cache.
To turn off the caching of ContentCenter GUIs, if this was not done as a post-installation
step after installing TeamSite (see the TeamSite Installation Guide), comment out the
following lines in iw-home/iw-webd/conf/httpd.conf.template and then issue
iwreset -ui:
<Location "/iw-cc">
ExpiresActive On
</Location>
<LocationMatch "^\/iw-cc\/.*\.(gif|jpe?g|png|js|css)$">
ExpiresDefault "access plus 2 hours"
</LocationMatch>
<Location "/iw-icons">
ExpiresActive On
</Location>
<LocationMatch "^\/iw-icons\/.*\.(gif|jpg)$">
ExpiresDefault "access plus 2 hours"
</LocationMatch>
JSP precompilation will detect syntax errors in JSP pages and can greatly improve the
performance of the very first request for each JSP page, as well as all subsequent
requests on production systems with many concurrent users. Thus, JSP precompilation
is strongly recommended when building the ContentCenter web application on a
production machine.
To switch JSP precompilation off when building the ContentCenter web application,
issue:
iw-home/iw-perl/bin/iwperl iw-home/bin/make_toolkit.ipl -nojsp_precompile
from iw-home/local/config/lib/content_center/customer_src.
NOTE
If you are running the ContentCenter web application in other application servers than
Tomcat, JSP precompilation should have been manually turned off as a post installation
step after installing TeamSite, as described in the TeamSite Installation Guide.
Once JSP precompilation has been switched off, it will continue to be off in future
rebuilds of the ContentCenter web application until it is explicitly switched on.
To do this:
1. Stop the TeamSite server by issuing: iwreset -ui stop
2. Delete all folders and files under iw-home/servletd/work/
NOTE
Stopping TeamSite and removing the files underneath iw-home/servletd/work/will
prevent TomCat from possibly attempting to recompile outdated JSPs, instead of
serving up the newly precompiled JSPs.
3. Issue:
iw-home/iw-perl/bin/iwperl iw-home/bin/make_toolkit.ipl -jsp_precompile
from iw-home/local/config/lib/content_center/customer_src.
NOTE
The TeamSite server will be automatically restarted as a result of the last command.
Once JSP precompilation has been switched on, it will continue to be on in future
rebuilds of the ContentCenter web application until it is explicitly switched off again.
NOTE
JSP precompilation for the ContentCenter web application can also be switched off and
on with -nojsp_precompile and -jsp_precompile flags when invoking the install
script iw-home/install/install_webapps.ipl. These two scripts, make_toolkit.ipl
and install_webapps.ipl will both, when invoked without one of these flags, respect
the current setting of JSP precompilation (on or off), regardless of which script last set
it.
Interwoven, Inc. 36
Chapter 3: Building the Web Application
If one or more of the custom configuration files does not contain well-formed XML,
then the ContentCenter web application will not be updated with the latest changes from
the customer toolkit. If any invalid XML, not conforming to the DTDs, is detected, a
warning will be issued but the ContentCenter web application will be updated with the
latest changes from the customer toolkit
Under certain circumstances, such as when a source file has been replaced by an older
version of the same file, the make_toolkit script may be unable to detect all the changes
that have been made.
Another example, which normally does not create any problems in practice, is that the
class file and web.xml entry for a deleted custom JSP are not deleted from the
ContentCenter web application when the custom JSP is deleted.
NOTE
The TeamSite server will be automatically restarted as a result of the last command.
NOTE
The steps described in this section assume that you have successfully performed the
configuration procedure described in Appendix A of the TeamSite Installation Guide.
Customization Steps
To customize the ContentCenter web application when it is running on another
application server, you will need to perform the following manual steps each time you
make a customization:
1. Specify the desired customizations within the directory:
iw-home/local/config/lib/content_center/customer_src
2. Shut down the web application server (WebSphere or WebLogic).
3. In the directory iw-home/httpd/webapps/content_center/WEB-INF:
a. Copy the file web.xml to web_no_jsp.xml.
b. Copy the file web.xml.save to web.xml.
4. In iw-home/local/config/lib/content_center/customer_src, issue:
iw-home/iw-perl/bin/iwperl iw-home/bin/make_toolkit.ipl
5. The make_toolkit script may attempt to restart the Apache Tomcat web application
server (servletd), so—under UNIX—shut down servletd:
UNIX: As root, determine the process ID of servletd and kill the process:
ps -aef | grep servletd
kill process_id
Under Windows, if servletd was disabled (as described in the TeamSite Installation
Guide) then this step can be omitted. Otherwise, from the Services control panel,
select the Interwoven Servlet Engine service and stop it.
6. In the directory iw-home/httpd/webapps/content_center/WEB-INF:
Interwoven, Inc. 38
Chapter 3: Building the Web Application
Automate steps 3-7 of this process in a custom script (substituting the particular
locations of Interwoven files and the web application server deployment directory as
appropriate for your system).
Interwoven, Inc. 40
Chapter 4
This chapter describes how to customize the behavior and appearance of ContentCenter
GUIs by editing UITK XML configuration files.
Configuration Files
As described in the Chapter 2, “Toolkit Organization,” there are seven custom
configuration files located in the customer_src directory tree:
iw-home/local/config/lib/content_center/customer_src/etc/conf/customer
NOTE
This is true for new TeamSite 6.7 installations; it is true for migrations of TeamSite 6.x
to TeamSite 6.7 only after the files in customer_src_new/etc/conf/customer have
either been merged with the files in customer_src/etc/conf/customer, as described in
Appendix B, “Migrating Existing Customizations.”
When making customizations, place each custom configuration entry in one of these
files, depending on the type of customization:
If it has to do with the visual layout of UI components (portlets) on ContentCenter
Standard’s home page, edit portal_custom.xml.
If it has to do with the overall behavior of either or both of the ContentCenter GUIs,
edit application_custom.xml.
To enable and configure ContentCenter Professional’s file template feature, edit
file_template_custom.xml.
Adding custom elements, such as custom portlets, tabs, menu items or additional
separators, columns, and fields.
Configuring the search subsystem and advanced search screen as to how many
fields and what languages, content types, and extended attributes can be searched
on.
Specifying whether user invocation of custom menu items and ContentCenter
Professional custom tabs will be enforced by the TeamSite server.
Customizing attributes of Interwoven-supplied GUI elements, altering their widths,
labels, whether a portlet’s title bar is displayed, default sort behavior, what action is
invoked by a menu item, and so on.
Reordering Interwoven-supplied GUI elements, altering portlet placement and the
display order of existing columns, headings, menu items, and attributes.
Deleting certain Interwoven-supplied GUI elements, such as portlets, menu items,
columns, and fields.
Controlling the overall behavior of the ContentCenter GUIs, such as customizing
how workarea names are displayed in ContentCenter Standard, whether the final
tagging step occurs for wizards that create content, and whether the user is prompted
after modifying a form in ContentCenter Professional to associated it with a
workflow.
Customization Format
All UITK configuration files must begin with the following first line:
<?xml version="1.0" encoding="utf-8"?>
Their second line points to its XML data definition (DTD) file, used to validate XML placed
within it. For example, the file portal_custom.xml has the following second line:
<!DOCTYPE iwov-portal
PUBLIC "-//Interwoven, Inc.//DTD Portal Customizations 1.0//EN"
"../../../../reference/etc/conf/portal_custom.dtd">
The remaining lines consist of elements that follow typical XML syntax, with an element
start tag—possibly including a series of attribute-value pairs—and a matching end tag.
Interwoven, Inc. 42
Chapter 4: Customizing GUI Behavior
The iwov-portal element has no attributes and contains the portal-page element.
This element has one attribute, id, and contains two portlet-group elements, each
with two attributes: id and width.
The iwov-portal element is the placeholder element for this file. Each XML
configuration has only one outermost placeholder element.
The customization does not include the reference file’s inner portlet elements, as they
are not being modified and will be automatically merged in when the web application is
rebuilt.
The customization does include the elements iwov-portal and portal-page, even
though they are not being modified, as they are contain the customized portlet-group
element.
The possible elements, attributes, and containing relationships for XML configurations
are all described in README_base_config_types, except for the TeamSite Workflow
custom attribute element and file template feature enabling and configuration described
in README_teamsite_config_types and the Search elements described in
README_search_config_types. These files are located in the same directory as the XML
reference files and DTDs:
iw-home/local/config/lib/content_center/reference/etc/conf
For convenience, slightly reformatted copies of these files are provided in Appendix C,
“README files.”
The label and url attributes are described primarily for adding custom portlets. They
do not appear in the ref_ccstd_portal.xml reference file as they are not exposed for
the Interwoven-supplied portlets for two different reasons:
The url attribute cannot be modified for the Interwoven-supplied portlets.
The label attribute’s value for an Interwoven-supplied portlet contains information
that is not publicly exposed (an internal property string id), although the label
attributes of Interwoven-supplied portlets can be customized.
Do not customize attributes for Interwoven-supplied elements if they are not listed in
the appropriate reference files, unless the attribute is documented elsewhere as
customizable.
XML customizations are automatically validated against the provided DTDs when the
ContentCenter web application is rebuilt, as described in “Deploying Customizations to
other Application Servers” on page 38.
Configuration IDs
All UITK elements have a unique id that identifies them.
Interwoven, Inc. 44
Chapter 4: Customizing GUI Behavior
All ids within Interwoven internal elements are prefixed with “iw”, “iwov”, or “_iw”.
Do not use these prefixes in ids when creating new elements, such as those defining a
custom menu item or portlet.
Order Considerations
The order in which elements are listed is important. Elements in lists are processed in
the order they appear. (If two elements have the same ids, the last element encountered
takes precedence if there are any conflicting attribute values or containing
relationships.)
To move elements and insert custom elements, so that the order of Interwoven-supplied
elements and custom elements can be customized, use the operations described in the
section “Element Operations” on page 53.
Elements
This section relates the XML element names to visual elements displayed in
ContentCenter GUIs and describes their containing relationships.
Exact details on how to specify each element and its possible attributes can be found in
README_base_config_types (and the other READMEs) located in:
iw-home/local/config/lib/content_center/reference/etc/conf
Possible customizations include the width, as a percentage of the home page, that a
portlet group’s column occupies; whether a portlet’s title bar is rendered and, if so, its
textual label; as well as moving and deleting existing portlets and adding custom
portlets.
<listview>
<column>
</column>
</listview>
Both list types support designating a default column to sort on and a default sort
direction (these can be overridden by the end user working within the application).
The TeamSite Workflow related job and task paged lists, and the lists associated with
the file system (files, directories, branches, workareas, and so on), but not the the search
results list, can be customized for column display and order. All paged lists, including
the search results lists, can be customized for the default page size.
Interwoven, Inc. 46
Chapter 4: Customizing GUI Behavior
A column’s label, icon, width, alignment, wrapping behavior, underlying property, and
display format can be customized. Existing columns can be moved or deleted.
Custom job and task list columns can be created, based on TeamSite Workflow job or
task properties or file properties, as exposed through ContentServices SDK objects:
CSWorkFlow for jobs, CSTasks for tasks, and CSSimpleFile for files. Custom columns
can be inserted before or after existing columns.
NOTE
Custom columns cannot be created based on stores, branches, or workareas.
Column widths must sum to 100% of page width. By default, the Name column is 30%
and the Actions column is 20%.
Displayed either in separate screens or, in the case of jobs and tasks in ContentCenter
Professional, in a section below a paged list are:
attributelist, a list of a job or task’s fields to display.
attribute, a field of a job or task to display in an area.
NOTE
Any custom workflow attribute of type date is assumed by the UITK to be using Unix
timestamp format (as in the custom workflows supplied with TeamSite 6.0+).
NOTE
Search result lists are ContentCenter paged lists whose page size can be customized
within ui_custom.xml, not search_custom.xml.
The maximum number of specific search fields displayed in the Advanced Search
screen in the section “Content Type” can be customized.
Example
To have six fields to potentially search on in the Advanced Search screen, edit
search_custom.xml:
<custom-fields>
<property id="max-num-fields" value="6"/>
<custom-fields>
The languages which a user can select to search upon can also be customized in this file
if it is not desirable to list every supported language in the advanced search screen. To
remove a supported language, place it within an <iwov-delete> element.
Example
The drop down labels for the content types to be searched can be customized. Each
content type is a list of file extensions to search on, such as htm,html for HTML formatted
files, and a label to display. If no customizations are made, then only the two
predefined content types will appear: all, representing all content, and forms, TeamSite
FormsPublisher forms.
The labels displayed in the drop down menus for specifying which fields to search on,
for both extended attributes and form types, can be also be customized.
Interwoven, Inc. 48
Chapter 4: Customizing GUI Behavior
NOTE
Using resource bundles to customize these labels will also allow them to be more easily
localized, as discussed in “Common Attribute Types” on page 55.
If no customizations are made, then all the standard types will be displayed. If any
customizations are made, then only the customized types will appear.
NOTE
If no customizations are made, then all types will appear in the drop down menu but the
names displayed will not necessarily be user friendly; they will the internal values for
that type. For instance, “TeamSite/Templating/DCR/Type” instead of, say, “Entry
Form” will be displayed.
If the content being searched on is not a form, then only extended attributes will appear
in field drop down menus. If the content being searched on includes forms, then the
drop down menus will display both the labels for extended attributes and forms.
Similarly, a template-type is the Interwoven template type to display in the drop down
menu (such as intranet/weather). The labels for a template-type can be customized.
If a template-field is specified and indexed for search, then this TeamSite templating
field will be displayed in the “attributes” drop down of the Advanced Search screen for
that particular templating type. If a particular template-field within a templating type
is not indexed, then it will not be shown.
globals, indicates that the element (a link, action-list, menu, or heading) can be
referred to globally, outside the context of a specific menu, heading, or action list.
Usually applied to links.
<heading>
<link>
</link>
<menu>
</menu>
<action-list>
</action-list>
</heading>
Interwoven, Inc. 50
Chapter 4: Customizing GUI Behavior
<globals>
<link>
</link>
<globals>
Headings can contain a mixture of links, action lists, and menus. Action lists can
contain a mixture of links and menus. Menus cannot contain other menus as submenus,
only links and separators.
A link’s label, icon, reference, result URL, and target window behavior can be
customized. Existing links can be moved and deleted. Custom links can be created and
inserted into existing headings, action lists, and menus.
A link can contain one or more urlParam subelements, each specifying a parameter to
be added to the result URL.
<link>
<urlParam>
</urlParam>
</link>
Custom links (only) that access non-Interwoven functionality can use the attribute
operationID, to specify that TeamSite role checking should be done before possibly
displaying that link, by providing a unique id and making entries in
userops_custom.xml (see Chapter 7, “Extending GUI Functionality”).
If a link does not specify the target attribute (used internally as a standard HTML frame
target in an anchor tag), its results are displayed in the current browser window. If
target is specified with the value _blank, then a new browser window is opened. The
new browser window’s display features, if the default browser settings are not desired,
can be specified using the windowsFeatures attribute, which takes the same arguments
as JavaScript’s window.open. These are listed in README_base_config_types.
NOTE
Values for target other than _blank can be specified, such as _top or a given target
frame, producing the standard HTML results. The internal Interwoven target values
_hidden or _hierbrowser (visible in some reference files) should not be used.
A menu’s reference and its display anchor’s label and image (the visible portion of the
menu before a user clicks on it) can be customized. Menus can be moved or deleted.
Custom menus can be created and inserted into action lists or headings.
Separators can be moved within a menu or deleted. New separators can be created and
inserted into menus.
Headings cannot be deleted. Action lists contained in headings can be deleted, but
action lists that are “top-level” tags (not contained in a heading) cannot be deleted,
though their subelements and labels can be.
Interwoven, Inc. 52
Chapter 4: Customizing GUI Behavior
Other Elements
Some elements are listed in the reference files because some of their attributes can be
customized, even though the element itself cannot be customized:
button, its windowFeatures attribute can be customized.
Element Operations
Elements can be inserted, moved, or deleted by using element operations, specified as
XML elements placed in a customization file.
Inserting Elements
By default, custom display elements (portlets, tabs, columns, attributes, menus,
separators, and links) appear at the end of their containing element:
A custom portlet at the bottom of its portlet group column.
A custom tab at the far right of the tab set.
A custom column at the far right of its list.
A custom attribute at the far bottom and right of its display area.
A custom menu at the far right of its action list display (but to the left of any About
or Help link).
A custom separator at the bottom of its menu.
A custom link at the bottom of its menu or at the far right of its heading.
A custom tab cannot be inserted in front of the Interwoven-supplied tabs, but custom
portlets, columns, attributes, menus, separators, and links can be inserted in front of
Interwoven-supplied elements.
Example
To insert a separator before the submit menu item in the Content Center Standard Work
in Progress portlet’s file menu, edit ui_custom.xml:
<iwov-ui>
<action-list id="iw.ccstd.work_in_progress.file.actionlist">
<menu id="iw.ccstd.work_in_progress.file.menu">
<iwov-insert-before
id="iw.ccstd.work_in_progress.file_menu_submit.link">
<separator id="cu.ccstd.work_in_progress.file_menu.separator1">
</separator>
</iwov-insert-before>
</menu>
</action-list>
</iwov-ui>
This menu is listed in the reference file ref_ccstd_ui_portal.xml. The id chosen for
the custom separator is similar to those used in the menu, except for beginning with cu
(using a consistent abbreviation for custom ids, such as cu for “custom” is a good
convention).
Moving Elements
Portlets, some columns and attributes, menus, separators, and links can be moved within
their containing elements.
Example
NOTE
When moving an element, its attributes or child elements can be customized. In this
example, the portlet’s label attribute is also being customized.
Interwoven, Inc. 54
Chapter 4: Customizing GUI Behavior
Removing Elements
Portlets, some columns and attributes, menus, separators, and some links (those within
menus or action lists) can be removed.
Example
To remove the Import menu item from ContentCenter Professional’s File menu (say, for
a site that enters new content only through forms), edit ui_custom.xml:
<iwov-ui>
<action-list id="iw.ccpro.filesys.menubar">
<menu id="iw.ccpro.file.menu">
<iwov-delete>
<link id="iw.ccpro.file_menu.import.link">
</link>
</iwov-delete>
</menu>
</action-list>
</iwov-ui>
Reference ID
A refid specifies the link, menu, or tab whose attributes are inherited by this link,
menu, or tab element, except where they are specifically overridden. This allows an
item, including custom items, to be specified once and then used elsewhere within the
GUIs, possibly in slightly different manners by overriding attributes as needed.
NOTE
Many links in the Interwoven GUIs, as can be seen in the reference files, consist of
simply an id and a refid. Customizing the original element (whose id is the refid’s
value) will customize it throughout the Interwoven GUIs (wherever it appears in a
refid). To customize an element in just one specific place, add the desired attributes
and their new values, leaving its original element unchanged.
By replacing a link’s refid with another id, a link’s functionality can be redefined.
Label
This specifies the label to be used when displaying a custom GUI element.
Interwoven-supplied labels can be customized as well (even though they do not appear
in the reference files). Its value can either be the literal text to display or a property
string id that identifies a resource within a property file. Using property files is
recommended in order to easily localize and translate customizations into other
languages.
Description
This attribute specifies a description for a GUI element. It is typically used to provide
tool tips that appear when that GUI element is moused over. These cannot be
customized in this release, but can be localized in a future localization release. When
creating custom elements that can have description attributes, supply a description so
that a tool tip will appear when the custom element is moused over.
ResourceBundle
This specifies the property file to be used to obtain text strings or icons. Property files
must be specified as a link element attribute, not in containing elements. Use a property
file for custom elements to enable them to be more easily localized. Custom property
files should be specified using Java package syntax.
Icon
This specifies the URL of an image to display. An image file should be specified relative
to the ContentCenter web application so that it can be located by the browser (specified
as “/” followed by its ready to merge location relative to the content_center
directory).
URL
The URL for a link, tab, or portlet to navigate to when invoked. See Chapter 7,
“Extending GUI Functionality.”
NOTE
Parameters to be supplied to a URL when it is clicked on can be specified by using the
urlParam subelement.
Interwoven, Inc. 56
Chapter 4: Customizing GUI Behavior
For ui_custom.xml, there are different reference files for each application and
subsystem being customized. Despite this, all such customizations are placed together
in one file.
For TeamSite interaction:
ref_teamsite_ui_common.xml, customizable windows settings.
ref_teamsite_ui_workflow.xml, workflow variable mappings.
For FormsPublisher interaction:
ref_formspub_ui_templating.xml, link to generate FormsPublisher files.
For file conversion interaction:
ref_transform_ui_filesys.xml, links to the file conversion subsystem.
For overall search interaction:
ref_search_ui_common.xml, link to the search subsystem.
ref_search_ui_portal.xml, search portlet’s links to the search subsystem.
ref_search_search.xml, default advanced search options configuration.
For ContentCenter Professional:
ref_ccpro_ui_common.xml, application GUI elements.
ref_ccpro_ui_filesys.xml, file system (content tab) elements.
ref_ccpro_ui_vpreview.xml, VisualPreview elements.
The reference files are automatically produced from Interwoven internal XML files. As
such, their innermost elements are in already rendered format, such as:
<tab id="iw.ccpro.filesys.tab" target="_top"/>
not:
<tab id="iw.ccpro.filesys.tab" target="_top">
</tab>
Sometimes it may be necessary to trace a link back through its refid to determine an
underlying value, if the comments in the reference files are not sufficient.
Alternatively, because this file is the reference for windows, checking it first will lead,
due to its comments, directly to the correct set of windowFeatures to customize.
Interwoven, Inc. 58
Chapter 4: Customizing GUI Behavior
Example
</attributelist>
</workflow-config>
NOTE
Task and job attribute ids can have the same name. The id of the attributelist
element containing this attribute element is what provides the context that the UITK
uses to determine that this workflow custom variable is associated with a task, not a job,
object. In the previous example, the id of the pagedlist element containing the column
element provided the necessary context.
In addition to custom TeamSite Workflow variables, the following lists the standard
TeamSite Workflow job variables that are exposed in the UITK.
NOTE
Parent tasks are only applicable to nested workflow jobs.
The following table lists the standard TeamSite workflow task variables exposed in the
UITK.
Interwoven, Inc. 60
Chapter 4: Customizing GUI Behavior
NOTE
Parent tasks are only applicable to nested workflow jobs.
NOTE
Not all standard TeamSite workflow variables are exposed by ContentServices. Nor are
all standard TeamSite workflow variables exposed by ContentServices exposed in the
UITK.
Column or attribute elements based on standard TeamSite Workflow job and task
variables are specified identically to custom workflow variables, except for their id and
property attributes.
The ids specified above must be used (their containing elements provide the necessary
context for the UITK to distinguish a job element from a task element with the same
attribute id). The property attribute for one of these variables is specified using the
listed attribute without enclosing it in variable(), such as
property="activationDate".
NOTE
Either owner or ownedby can be used in the underlying workflow queries, although in
both cases the result is returned (via ContentServices) in a owner.shortName object.
NOTE
For historical reasons, the ID subelement (only) for a parent task can be specified as
either workflow.parentTask.ID or workflow.parentTaskID.
The following table shows the standard TeamSite file list variables exposed in the
UITK. All of the variables shown here are case sensitive.
NOTE
It is not possible to configure a column to display extended attributes.
Example
Suppose the following ContentCenter Professional file list customizations were desired:
Remove the Last Modifier column supplied by Interwoven.
Add a Creation Date column, placing it before the Actions column, and making it
sortable by the end user.
Interwoven, Inc. 62
Chapter 4: Customizing GUI Behavior
Thus, within one workarea, a user who specifies a new file with an extension intended to
be a MSWord document (.doc) would be presented with the File Templates screen in
which the appropriate MSWord template files for use with that directory would be listed
(as well as any other valid template files). Upon selecting the desired template, a copy
of it is placed in the user’s current location and renamed as initially specified.
To enable this feature and set up the needed associations between different templates
and branches, edit the (empty) configuration file file_template_custom.xml as
described in the file README_teamsite_config_types in the reference toolkit and in
Appendix C, “README files.”
If no file-template element is added to this file, then the file templates feature will not
be enabled.
The allow-empty element determines whether or not an “empty” file template should
appear as a choice in the File Templates screen.
Multiple group elements (typically, one per file type) and multiple template
subelements within a given group can be specified.
Example
To supply the white_paper MSWord template file as the new file specified by the user,
when the New File command is selected from ContentCenter Professional’s File menu
within the main branch or marketing workarea of that branch, edit
file_template_custom.xml as follows:
<file-templates>
<allow-empty>false</allow-empty>
<group id="MSWord"
label="label.msword"
resourceBundle="com.mycompany.ui.filesys.template">
<locations>
<vpath-regex value="/default/main/branch1/.*"/>
<vpath-regex value="/default/main/WORKAREA/marketing/.*"/>
</locations>
<template id="White Paper"
label="White Paper"
area-relative="false"
vpath="/default/main/admin/STAGING/white_paper.doc"/>
</group>
</file-templates>
Behavior that affects all ContentCenter applications is specified using the default-parm
element at the applications level, such as:
<applications>
<default-param id="name" value="setting">
</default-param>
</applications>
Interwoven, Inc. 64
Chapter 4: Customizing GUI Behavior
NOTES
Not all default parameters can be overridden at the application level.
Some parameters cannot be overridden at the applications level and must be
overridden at the application level.
CAUTION
The number of saved searches, with a large number of users, may degrade performance
depending on the memory size of the TeamSite server. For systems with a low number
of TeamSite users, such as 100 users, the number of saved searches can be greatly
increased without affecting adversely performance.
</applications>
This behavior is specified for each ContentCenter GUIs individually. To disable data
record search for only ContentCenter Standard, edit application_custom.xml instead
as follows:
<applications>
<application id="ccstd">
<param id="iw.formspub.searchdcr.enabled" value="false">
</param>
</application>
</applications>
NOTE
Allowing incomplete forms to be saved can potentially create problems for workflows
(tt-data workflows) or scripts that automatically trigger off saved forms and initiate
submissions or attach them to submit workflows. Such scripts or workflow external
tasks should filter file attachments by the external attribute, iw_form_valid, new in
TeamSite 6.7.1 Service Pack 1, which is set to false for incomplete forms (true for
complete forms) by the ContentCenter GUIs.
To enable this feature so that users can save incomplete forms, edit
application_custom.xml as follows:
<applications>
Interwoven, Inc. 66
Chapter 4: Customizing GUI Behavior
<application id="ccpro">
<param id="iw.formspub.allowsaveincompleteforms" value="true">
</param>
</application>
<application id="ccstd">
<param id="iw.formspub.allowsaveincompleteforms" value="true">
</param>
</application>
</applications>
This behavior is specified for each ContentCenter GUI individually. To enable saving
incomplete forms for only ContentCenter Professional, edit application_custom.xml
instead as follows:
<applications>
<application id="ccpro">
<param id="iw.formspub.allowsaveincompleteforms" value="true">
</param>
</application>
</applications>
The default number of immediate children that triggers the display of a replicant in
collapsed format is 3. This value can be customized (on either a per-data-template basis
through the FormsPublisher templating.cfg file or globally, for each ContentCenter
GUI).
The default collapsing of replicants with many children can be disabled. If disabled, the
ContentCenter GUI will automatically expand all expandable items in data record forms
whenever displaying them, while continuing to display a Collapse/Expand All Items
button. If users then collapse the expandable items in a form, this setting will be
respected when the form is next displayed (though, if a replicant is collapsed,
background rendering of it will occur in anticipation of that replicant being later
expanded).
Disabling the default collapsing of replicants slows the initial loading of forms that have
replicants with many children, whether or not they have been collapsed, but will speed
the display of any collapsed replicants when they are later expanded by users (due to the
background rendering).
If the default collapsing of replicants is disabled, then the ContentCenter GUIs can be
customized to remove the Collapse/Expand All Items button in forms so that users
can not collapse the expandable items in a form. This customization can not be done on
a per-data-template basis.
To change the number of immediate children that triggers the display of replicants in
collapsed format to 5 in ContentCenter Professional while disabling both the default
collapsing of replicants and the display of the Collapse/Expand All Items button in
forms in ContentCenter Standard (so that forms are always displayed in fully expanded
format and users can not collapse replicants), edit application_custom.xml as follows:
<applications>
<application id="ccpro">
<param id="iw.formspub.default.children.collapse.threshold"
value="5">
</param>
</application>
<application id="ccstd">
<param id="iw.formspub.default.render.mode"
value="expand-direct-children">
</param>
<param id="iw.formspub.expandall.enabled" value="false">
</param>
</application>
</applications>
Interwoven, Inc. 68
Chapter 4: Customizing GUI Behavior
open them for editing (or submit them) until the user who holds the lock either
submits that version of the file or releases the lock upon it.
Submit locking is the default and least restrictive locking model. If a file is not locked
under either submit locking or optional write locking, then different copies of the same
file can be freely edited in different workareas, resulting in versions that are in conflict
once one copy has been submitted and then an attempt is made to submit another copy.
Within the ContentCenter GUIs, the merge tool then appears to allow a user to resolve
any conflicts in the actual content of the conflicting files before resolving the version
conflict.
NOTE
Locking models apply to files other than data entry forms. Mandatory write locking of
data entry forms (DCRs) is automatically enforced by FormsPublisher.
NOTE
Locking behavior restricted by the ContentCenter GUIs, not TeamSite itself, has no
effect on TeamSite files accessed through other means, such as TeamSite Front Office,
the Intelligent File System, or the ContentServices SDK.
Two parameters can be set to enforce stricter locking policies by the ContentCenter
GUIs on branches with submit or optional write locking. By default, both of these
parameters are set to false. These parameters are overridden at the applications level,
affecting both ContentCenter Standard and Professional.
To configure the ContentCenter GUIs to automatically lock a file upon it being edited
within branches with a submit locking model (effectively enforcing mandatory write
locking on these branches), edit application_custom.xml as follows:
<applications>
<default-param id="iw.common.edit.submit_lock_model.lock_on_edit"
value="true">
</param>
</applications>
To configure the ContentCenter GUIs to automatically lock a file upon it being edited
within branches with an optional write locking model (effectively enforcing mandatory
write locking on these branches), edit application_custom.xml as follows:
<applications>
<default-param
id="iw.common.edit.optional_write_lock_model.lock_on_edit"
value="true">
</param>
</applications>
A third parameter modifies the behavior of the ContentCenter GUIs when enforcing
mandatory write locking, either due to the previous customizations, branch permissions,
or role permissions. In versions prior to TeamSite 6.7.1 Service Pack 1, if a branch had
mandatory write locking or mandatory write locking was being enforced by the
ContentCenter GUIs (or LaunchPad or the TeamPortal portlets), a lock was obtained
whenever a file was opened for any reason by a user (under the assumption the file was
being opened for editing). Starting with TeamSite 6.7.1 Service Pack 1, by default,
when a ContentCenter GUI (or LaunchPad or the TeamPortal portlets) is enforcing
mandatory write locking, a file is only locked after being modified. To turn this
behavior off (so that a lock is obtained when a file is opened but not modified), edit
application_custom.xml as follows:
<applications>
<default-param id="iw.common.edit.lock_on_modification" value="false">
</param>
</applications>
NOTE
Configuring this behavior within the ContentCenter GUIs has no effect on files
imported into a TeamSite workarea through other means, such as TeamSite Front Office,
the Intelligent File System, or the ContentServices SDK.
Interwoven, Inc. 70
Chapter 4: Customizing GUI Behavior
No values besides 0 and infinite can be specified. This behavior must be specified at
the applications level.
</application>
</applications>
NOTES
The new tagging interface can be used in ContentCenter while the old one is used by
CGI scripts (for compatibility with existing custom CGI scripts), though this will
not be consistent to end users. See Appendix B, “Migrating Existing Customizations”
for how to migrate custom CGI scripts so that they are compatible with the new
TagUI.
A third parameter, iw.tagui.multiFileUI, is also exposed but its current only
permitted value is old.
Example
<applications>
<application id="ccstd">
<param id="skip-tag-step" value="true">
</param>
</application>
</applications>
NOTE
Such filtering does not apply to the Tag wizard itself. It will always tag all the files
presented to it.
Interwoven, Inc. 72
Chapter 4: Customizing GUI Behavior
An empty regular expression means that no filtering takes place and all files are tagged.
A regular expression, such as .* (matches all files) or \.txt (matches all text files) has to
be wrapped in two identical alphanumeric delimiters, such as //, to be valid.
Example
To filter out all files ending in .txt from being tagged in ContentCenter Standard, edit
application_custom.xml as follows:
<applications>
<application id="ccstd">
<param id="filtered-file-type-regex" value="/\.txt/">
</param>
</application>
</applications>
ContentCenter Standard can be configured to omit the submit wizard following these
operations. When the submit wizard is omitted, these operations result in a file
remaining as a work in progress file until a user explicitly submits this file by clicking
the Submit button.
To omit the default submit wizard step after file operations, edit
application_custom.xml so that the value of skip-submit-step is true:
Example
<applications>
<application id="ccstd">
<param id="skip-submit-step" value="true">
</param>
</application>
</applications>
NOTE
Depending on how many workareas ContentCenter Standard users have access to and
the actual site naming conventions, some of these options could lead to end user
confusion (with users unable to tell which workarea they are currently in). Do not use
the branch option if ContentCenter Standard users have access to more than one
workarea on a branch. Do not use the workarea option if duplicate workarea names are
used on the same branch. Avoid duplicating both branch and workarea names in
combination; if you must do so, then supply different descriptions and use the
description option.
Interwoven, Inc. 74
Chapter 4: Customizing GUI Behavior
which are no longer relevant to their immediate tasks. If this behavior is desirable, it
can be enabled by editing application_custom.xml:
Example
<applications>
<application id="ccstd">
<param id="iw.common.my_workareas.configurable.property" value="true">
</param>
</application>
</applications>
If the HTML file does not exist or the system is not configured properly, errors will result.
To avoid such errors or to simply alter the behavior to browsing the workarea in a
ContentCenter Standard list view, edit application_custom.xml:
Example
<applications>
<application id="ccstd">
<param id="iw.common.view_area_action.property" value="browse">
</param>
</application>
</applications>
The value for this parameter as supplied by Interwoven (to enable editing the directory
file with VisualPreview) is preview.
NOTE
The emails generated by ContentCenter Standard use the URL command viewarea to
ensure that their behavior (browse or preview) matches the value set by this parameter.
Additional functionality can be added by specifying custom menu items, tabs, and
portlets that can invoke, in addition to links within the ContentCenter web application:
URLs outside of ContentCenter, CGIs, and custom Java code (servlets and JSPs), as
described in Chapter 7, “Extending GUI Functionality.”
Interwoven, Inc. 76
Chapter 5
This chapter describes how to customize the external appearance of the ContentCenter
GUIs by editing HTML cascading style sheets or placing a custom logo for co-branding.
Because these are cascading style sheets, any change to an Interwoven defined style by
a custom style sheet takes precedence over the attributes of the defined style that it
modifies.
Each Interwoven defined style name begins with the prefix “.iw-”. New customer
styles (as opposed to customized Interwoven styles) should not use this prefix.
To customize an Interwoven style, copy its style definition name from the reference
style sheet into its custom style sheet, make the desired changes or additions, and
rebuild the web application.
Do not copy the entire style definition into the custom style sheet; copy only those
attributes that you are actually customizing.
NOTE
By copying only attributes that you are customizing, you ensure that any changes made
by Interwoven in a future release to attributes which you are not customizing will be
automatically applied when the (new) web application is rebuilt.
For example, by specifying different colors in the custom base toolkit style sheet and a
custom logo in the base/images directory, all ContentCenter interfaces would be
affected. Then, by specifying different font styles in the ContentCenter Standard
custom style sheet, only the fonts in that interface would be changed while fonts in the
ContentCenter Professional interface would remain unchanged.
This is useful because many styles can look nice in one interface but not in another
interface.
In iw-home/local/config/lib/content_center/customer_src:
To apply a style change globally, edit custom.css in /web/base/styles.
To apply a change to ContentCenter Standard, but not to ContentCenter
Professional, edit custom.css in /web/ccstd/styles.
To apply a change to ContentCenter Professional, but not to ContentCenter
Standard, edit custom.css in /web/ccpro/styles.
To apply a change to FormsPublisher, in all the UIs in which it appears, edit
custom.css in /web/formspub/styles.
These files contain the Interwoven styles that can be customized, organized by the
internal toolkit in which they are used by Interwoven.
Important. Even though an Interwoven style may be defined in the base/iw.css style
sheet, it does not mean that it must be customized in the base toolkit custom.css style
sheet. If the change should apply only to ContentCenter Standard, not Professional,
then this style should be customized in the ContentCenter Standard custom style sheet.
NOTE
Styles defined in one of the ContentCenter GUI’s reference file, such as
csstd/iw.css for the ContentCenter Standard GUI, should only be customized in the
corresponding custom.css file.
Similarly, if a base style is to be customized in two different ways, one for each
ContentCenter GUI, then it should be customized in each of their custom style sheets.
Example
The style iw-base-heading, in the base reference style sheet base/iw.css, defines the
background and border attributes of a heading in the Interwoven GUIs:
Interwoven, Inc. 78
Chapter 5: Customizing GUI Appearance
.iw-base-heading
{
background-color: #ffffff;
background-image: url(../images/heading_bg.gif);
border-top: solid 1px #999999;
border-left: solid 1px #999999;
border-bottom: solid 1px #999999;
border-right: solid 1px #999999;
}
NOTE
Specify URLs for style sheet images relative to the styles directory.
NOTE
Background images need to be turned off explicitly if they are not wanted.
The DOM Inspector can be used to inspect the live DOM (Document Object Model) of
any web document or web application, such as the ContentCenter GUIs. Information
regarding it can be found at:
http://www.mozilla.org/projects/inspector
To use it, view the live document (in this case, a ContentCenter GUI) in the lower pane
of the Mozilla browser. The upper left pane displays the DOM of the current document
as a structured tree. To inspect a particular feature, click on the Inspect graphical button
displayed on the Mozilla toolbar and then click on the desired ContentCenter visual
feature displayed in the live pane. The Inspect button freezes the selected feature
(instead of activating it) and the DOM structured tree (in the upper pane) then
automatically scrolls to that feature and highlights it, displaying its class and css style
name.
NOTE
Not all aspects of the ContentCenter GUIs will necessarily display properly in the
Mozilla DOM Inspector. This is an unsupported tool that developers may find useful.
Co-branding
Each ContentCenter GUI has an application logo occupying the upper, left-hand corner
(next to the “powered by Interwoven” logo) that can be overridden by a custom logo
placed in the customer toolkit, allowing co-branding of the customized GUI.
NOTE
The “powered by Interwoven” logo cannot be replaced.
Example
Place the custom logo in it, naming it logo.gif. After rebuilding the ContentCenter
web application, the custom logo will appear next to the “powered by Interwoven” logo
in ContentCenter Professional, but not ContentCenter Standard.
Interwoven, Inc. 80
Chapter 5: Customizing GUI Appearance
Example
Place the custom logo in it, naming it login_splash.gif. After rebuilding the
ContentCenter web application, the custom logo will appear in the TeamSite login
screen.
This per form customization capability uses the older (non-UITK) customization
mechanisms. To make changes:
Edit templating.cfg.
Issue iwreset -ui for your changes to take place (instead of rebuilding the
ContentCenter web application).
Because these customizations are not in the customer toolkit, you are responsible for
preserving them across a future release.
For more information on customizing data entry forms on a per form basis, see the
TeamSite FormsPublisher Developer’s Guide.
Interwoven, Inc. 82
Chapter 6
Help Link
Help Page
Navigation
Section
Current
Screen Help
The ContentCenter Standard help system can also be accessed from the home page
introductory How do I component.
Wizard topic help that appears when a user clicks on one of several questions
displayed in a ContentCenter Standard wizard’s topic help area.
Figure 9 TeamSite Wizard Help Topics
Wizard
Wizard Help
Topics
Answers
Screen
NOTE
Do not confuse help topics with the “tool tips” that appear whenever a user mouses over
a button within the UIs. Tool tips are not customizable in this release of the UITK.
They are provided on a per locale basis and are localized as described in a future
localization release.
Underlying Files
Online help pages are HTML pages.
Each set of wizard topics consists of two files, a JSP “snippet” file that contains the
questions and an HTML file that displays the answers.
Interwoven, Inc. 84
Chapter 6: Customizing Online Help
NOTE
The ContentCenter Standard introductory component has a similar JSP “snippet” file
containing its “How do I” topics, but no corresponding HTML file as its links point to
ContentCenter Standard help pages.
Customization Tools
An Interwoven-supplied online help system consists of HTML pages containing both help
content and indexing, search, and navigational aids, produced using WebWorks
Publisher Professional 7.0 from Quadralay, plus—to provide search
capability—Dreamweaver 4.0 from Macromedia with the Deva Tools extension from
deva associates.
Straight forward help customizations can be done either in any HTML editor or by editing
the raw HTML in any text editor.
More complex customizations to entire help systems, requiring indices and tables of
contents to regenerated, should be done using a help creation tool, such as Macromedia
Dreamweaver with the Deva Tools extension.
For example, the English reference help system for the ContentCenter Standard UI is in:
reference/ccstd/help/csstd/help/en
Within each help directory will be found, for that help system:
Contents.html, its table of contents file.
IX.html, its index file.
An images directory, containing images used by the help system.
iw.css, its style sheet.
custom.css, an empty style sheet to make customizations in.
<prefix>_<help_screen>.html, such as s_submitfiles.html, for every help page.
The prefix for ContentCenter Standard is “s”; for ContentCenter Professional it is “p”.
For each set of wizard “Why must I” topics there are two question and answer files:
<prefix>_<wizard_name>_why.jsp, such as s_deletefile_why.jsp.
Other files (used to provide search capability, plus JavaScript files to provide pop-ups,
collapsible menus, and so on), as well as supporting images, also exist in these
directories. When copying an entire help system to a working directory, these files and
folders should be copied as well. Otherwise, they can be ignored.
When copying help files in order to customize them, make sure to place them
underneath the corresponding customer_src/web/toolkit/help/locale directory.
As discussed previously, the online help system uses its own set of style sheets so that
its appearance is visually distinct from the UIs themselves.
The base help styles are defined in the base toolkit (reference/base/help/iw.css).
Each toolkit also has a iw.css style sheet defining one style that is different for the two
applications, as well as an empty custom.css file.
NOTE
Copy these files—do not simply move them—so that the changes you make can be
undone by simply removing the corresponding modified files from the customer toolkit,
rebuilding the web application, and then having the original reference files on hand in
order to attempt another customization.
Interwoven, Inc. 86
Chapter 6: Customizing Online Help
Once you are done, rebuild the web application and your modified help page will
automatically replace the Interwoven-supplied one.
Example
To modify ContentCenter Professional’s Getting Started help page, supplying help for
the three custom tabs added as part of the customer samples toolkit, copy
reference/ccpro/help/ccpro/help/en/p_user_interface.html to
customer_src/web/ccpro/help/en and edit it to:
Remove the note under the summary of the content and workflow tabs.
Add a summary of the custom DevNet, Current User, and Writing Guide tabs,
following by a heading “Screen Elements” to provide a transition to the next image
in this help file:
<h4>Custom Tabs</h4>
<ul>
<li>Use the <b>DevNet</b> tab to access the Interwoven Developer
Network.</li>
<li>Use the <b>Current User</b> tab to see what role you are currently
logged in as.</li>
<li>Use the <b>Writing Guide</b> tab to view the Ajuba Corporate Writing
Guide.</li>
</ul>
<h4>Screen Elements</h4>
Rebuild the web application, with the customer samples turned on. Here is a screen shot
showing this customization
NOTE
The link that brings up the User Interface help screen for all custom tabs cannot be
customized for each custom tab. If extensive detailed help is needed for a specific
custom tab, add a custom help page linked from this page.
To undo a change, remove the modified help page from the relevant customer toolkit
help directory and then rebuild the web application.
NOTE
When a future Interwoven release occurs, you will need to merge any help pages that
you have modified (residing in the customer toolkit) with the corresponding ones
supplied by Interwoven that contain updated or additional information. If you fail to do
this, then—because the help pages in the customer toolkit will be the ones
displayed—the new information supplied by Interwoven in this later release will not be
visible.
Interwoven, Inc. 88
Chapter 6: Customizing Online Help
Use a working directory when making complex changes to an online help system and
copy only the new and modified files into the customer toolkit when you are done.
After doing this, copy only your new and modified files, plus the regenerated table of
contents, index, and search files, into the relevant customer toolkit help directory and
then rebuild the web application.
NOTE
This process ensures that you will have to do a minimum amount of work when merging
your modifications with updated Interwoven-supplied files with a new TeamSite release
or upgrade. To do this merge, copy the new help files into a working directory, merge
your modified files with the newly supplied ones, regenerate the index and table of
content files, and then copy only the modified files to the relevant customer toolkit
directory.
To undo a complex change, remove the modified help pages, plus the index, search, and
table of content files, from the relevant customer toolkit help directory and then rebuild
the web application.
The JSP snippet is inserted in the actual UI wizard JSP using a Java Include and must
therefore get its context path dynamically when constructing its links.
For example, here is the JSP snippet file, s_delete_file_why.jsp, for ContentCenter
Standard’s Delete wizard:
<%
final String contextPath = request.getContextPath();
%>
To edit a topic’s question, you do not need to edit the HTML file; just the JSP snippet.
To edit a topic’s answer, you do not need to edit the JSP snippet; just the HTML file.
To add a custom topic or to remove a topic, you need to edit both files.
To edit the introductory portlet’s help topics, remove a topic, or add a new one, follow
these same steps, with the exception that instead of editing the HTML “answer file”, you
instead edit the actual help pages as needed.
Interwoven, Inc. 90
Chapter 7
This chapter describes how to extend the ContentCenter GUIs by adding custom menu
items, tabs (in ContentCenter Professional), and portlets (in ContentCenter Standard)
that invoke ContentCenter functionality, web pages, CGIs, or custom Java code.
Example
Because the menu is empty, no insert operation is needed. In this example, the delete
link (which invokes the Delete wizard on the selected file system element, in this case
the directory that this menu is anchored to) is already existing functionality.
Example
Example
To access Interwoven’s developer site, DevNet, from a custom link in the action list on
the top, right hand side of ContentCenter Standard, place this entry in ui_custom.xml:
<iwov-ui>
Interwoven, Inc. 92
Chapter 7: Extending GUI Functionality
<action-list id="iw.ccstd.common.actions_top.actionlist">
<link id="cu.devNet.absolute.link"
label="DevNet"
description="Interwoven Developer Site"
url="http://devnet.interwoven.com"
target="_blank"
addPropertiesToUrl="false">
</link>
</action-list>
</iwov-ui>
The addPropertiesToUrl attribute, when set to false, specifies that the vpaths
normally supplied as parameters to the url (as described in the next section) should not
be sent. The default value is true, so this attribute can be omitted when these
parameters are desired.
When invoked, all files that the user has currently selected in the invoking GUI will, by
default, be passed as TeamSite vpath parameters to the CGI in an array.
If the user has selected no files and the script is being invoked from ContentCenter
Professional, then the user’s current directory is passed as a vpath parameter.
NOTE
This is a change in behavior from how CGIs were passed parameters from previous
Interwoven GUIs. See the discussion in “Custom Menu Items” in Appendix B,
“Migrating Existing Customizations” on migrating existing CGIs forward or using an
Interwoven-supplied adapter script to invoke them.
Other custom parameters can be passed to the target CGI as well, except for parameters
already used by either wdpro_menu.ipl or iw_cgi_wrapper.cpp. This includes vpath,
arid, brid, dirid, waid, cwd.vpath, done_page, full_redirect, and iw_locale. If
more than two custom parameters are passed, this must be done using valid XML and
escaping the & in the url attribute of the link element.
Example
To access a custom reporting CGI from the ContentCenter Professional View menu,
place this entry in ui_custom.xml:
<iwov-ui>
<action-list id="iw.ccpro.filesys.menubar">
<menu id="iw.ccpro.view.menu">
<link id="cu.report_menu_item.link"
label="Prepare Report"
description="Month"
url="/iw-bin/report.cgi"
target="_blank"
operationID="cu.ccpro.prepare_report.op">
</link>
</menu>
</action-list>
</iwov-ui>
To access custom JSPs that do not include Java code, specify their location relative to
the deployed ContentCenter web application. Do not modify the deployment
description file, web.xml.
As described in the previous section, when a link is invoked, all files that the user has
currently selected in the invoking GUI (or, if no files are selected, the current directory
from ContentCenter Professional) will, by default, be passed as TeamSite vpath
parameters to the custom Java code. The custom code can then treat them as an array of
strings which it can pass to ContentServices for TeamSite to obtain the corresponding
CSSimpleFile objects.
Example
To access a servlet that displays the TeamSite Workflow tasks associated with a file
from the ContentCenter Standard File Browser’s file action dropdown menu, modify
web.xml and place this entry in ui_custom.xml:
<iwov-ui>
<action-list id="iw.ccstd.list_directory.file_list.actionlist">
<menu id="iw.ccstd.list_directory.file_actions.menu">
<link id="cu.tasks_for_file"
label="custom.menu.tasks_for_file"
description="custom.menu.tasks_for_file"
url="/showtasksforfile"
target="_blank">
</link>
</menu>
</action-list>
</iwov-ui>
Interwoven, Inc. 94
Chapter 7: Extending GUI Functionality
The URL /showtasksforfile should match the URL specified in web.xml for this servlet.
NOTE
Only links to non-Interwoven-supplied functionality can be restricted by role. Custom
links to refid elements cannot be restricted by role.
Entering an operation in this file will, after the ContentCenter web application is rebuilt,
result in it being listed, by the value of its display-name attribute, as an item within the
TeamSite role category “Custom User Operations” displayed in the TeamSite
Administration Edit Role screen.
Example (continued)
To automatically restrict the custom reporting link described two examples ago (which
defined cu.ccpro.prepare_report.op as an OperationID), place this entry in
custom_userops.xml:
<custom-operations>
<operation description="custom_report_menu_item"
display-name="report_menu_item"
id="cu.ccpro.prepare_report.op"/>
</custom-operations>
Example
Interwoven, Inc. 96
Chapter 7: Extending GUI Functionality
Within these limits, a portlet can access static web content or external web pages
through a JSP or servlet.
Example
To create a portlet that displays a corporate style guide located within the ContentCenter
web application, place the following entry in portal_custom.xml:
<iwov-portal>
<portal-page id="iw.ccstd.home.portal-page">
<portlet-group id="iw.ccstd.home.column1.portal-group">
<portlet id="cu.style_guide.portlet"
label="Corporate Style Guide"
url="/customer/style_guide/index.jsp">
<title-bar id="titlebar" type="standard">
</title-bar>
</portlet>
</portlet-group>
</portal-page>
</iwov-portal>
NOTE
The specified URL goes to an index.jsp, not an index.html page.
Example
To create a portlet that displays a web page outside the ContentCenter web application,
such as Interwoven’s Developer Network, place the following entry in
portal_custom.xml:
<iwov-portal>
<portal-page id="iw.ccstd.home.portal-page">
<portlet-group id="iw.ccstd.home.column1.portal-group">
<portlet id="cu.devNet.portlet"
url="/customer/iwov_devnet.jsp">
<title-bar id="titlebar" type="custom">
</title-bar>
</portlet>
</portlet-group>
</portal-page>
</iwov-portal>
The file iwov_devnet.jsp is a JSP “snippet” that invokes the desired URL:
<iframe name="devnet"
id="devnet"
src="http://devnet.interwoven.com"
width="100%"
height="620"
border=0
frameborder=0
scrolling="yes">
</iframe>
Example
To create a portlet that invokes a Java servlet, modify the web.xml deployment
description file and place the following entry in portal_custom.xml:
<iwov-portal>
<portal-page id="iw.ccstd.home.portal-page">
<portlet-group id="iw.ccstd.home.column1.portal-group">
<portlet id="cu.show_current_user.portlet"
label="Who am I Logged in as?"
url="/showcurrentuser">
<title-bar id="titlebar" type="standard">
</title-bar>
</portlet>
</portlet-group>
</portal-page>
</iwov-portal>
Interwoven, Inc. 98
Chapter 8
This chapter describes how to add custom Java code to the ContentCenter web
application and to access the services provided by the ContentServices SDK from within
such code.
Overview
Developers can add custom Java code to the ContentCenter web application by
deploying their compiled output and supporting files into the customer toolkit, editing
the customer toolkit web.xml deployment descriptor (an XML configuration file), and
then rebuilding the ContentCenter web application.
Rebuilding the ContentCenter web application merges these customer deployed files
with Interwoven’s own deployed files (from the other Interwoven toolkits) to produce
the ContentCenter web application. This permits customer supplied code to be
preserved across future releases, in the customer toolkit, as Interwoven’s own internal
toolkits evolve.
Placing custom Java code within the ContentCenter web application permits it:
To access the same instance of the ContentServices SDK accessed by the
ContentCenter GUIs (without having to instantiate a separate CSClient object),
making use of ContentCenter’s internal authentication mechanism.
To be invoked, manipulated, and accessed as a ContentCenter GUI element, either
as a custom menu item, a ContentCenter Standard custom portlet, or a
ContentCenter Professional custom tab.
Alternatively, custom Java code can exist in its own web application, completely
separate from the ContentCenter web application. It can still be invoked by a
ContentCenter custom menu item or tab (but not a ContentCenter Standard custom
portlet), though less efficiently as this external request is now crossing web applications.
Such a web application could have its own separate version of the ContentServices
SDK, which it would have to instantiate, using the CSJavaFactory object, and do its
own authentication within, as described in the ContentServices SDK documentation. It
would also need to explicitly import the ContentServices Java libraries, located in
iw-home/cssdk/java, and it would be unable to access any ContentCenter functionality
except through externally visible ContentCenter URLs (and, again, crossing web
application boundaries with these requests).
NOTE
For TeamSite 6.7.1 Service Pack 1, java programs in a separate web application from
the ContentCenter web application will also need to import cssdkiface.jar, located in
iw-home/cssdk.
Place custom Java code accessed from within ContentCenter GUIs within the
ContentCenter web application, unless there is a good reason not to do so.
The remainder of this chapter discusses different code deployment options, the
deployment descriptor XML file, how to invoke custom Java code from within
ContentCenter, and how to access the ContentServices SDK from within custom code
deployed in the ContentCenter web application.
If multiple developers are making changes to code and configurations on the same
server, they will need to coordinate their changes so that they do not overwrite each
other’s customizations.
Use a source control mechanism when there are multiple custom code developers or
designers.
Within the customer_src directory is a set of empty Java development directories (src,
lib, etc, web), laid out for custom code development within the ContentCenter web
application.
NOTE
The src directory is empty. You will need to add subdirectories, such as the standard
com/corporatation-name/product-name directories. Code samples in the
customer_sample_src directory are under src/com/corp/custom.
The Ant build script used by make_toolkit.ipl is build.xml, located in the reference
directory (top level). It should be robust enough to handle most source file
organizations in customer_src without having to be modified.
Replacing libraries in the ContentCenter web application with later versions is not
supported and, most likely, will prevent the ContentCenter web application from
rebuilding properly. Do not do this.
The following third party .jar files should not be placed in customer_src/lib. The
versions deployed within the ContentCenter web application are given:
commons-beanutils.jar (version 1.4.1)
commons-collections.jar (version 1.1)
commons-digester.jar (version 1.3iw1)
commons-logging.jar (version 1.0.1)
jakarta-oro.jar (version 2.0.6)
log4j.jar (version 1.2.5)
jakarta-regexp-1.2.jar (version 1.2)
regex.jar (version 1.1)
standard.jar (version 1.0.3)
A servlet mapping entry, associating the servlet with the URL which invokes it.
NOTE
An authentication filter mapping entry is needed only for servlets, not JSPs.
Example
<web-app>
<filter-mapping>
<filter-name>authentication</filter-name>
<servlet-name>custom1</servlet-name>
</filter-mapping>
<servlet>
<servlet-name>custom1</servlet-name>
<servlet-class>com.corp.custom.custom1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>custom1</servlet-name>
<url-pattern>showcustom1</url-pattern>
</servlet-mapping>
</web-app>
Additional servlet mapping entries may be added if more than one URL is going to
invoke a given custom servlet.
The web.xml file, while located separately from the other XML configuration files, should
also be managed by a source control mechanism.
NOTE
The file webapp.ver, also located in this directory, is needed to rebuild the
ContentCenter web application. Do not edit or remove it.
Example
<portlet id="custom1"
label="custom.portlet.iwov_servlet_current_user.title"
url="/showcustom1">
<title-bar id="titlebar" type="standard"/>
</portlet>
Code Development
To add custom Java code to the ContentCenter web application, you need to:
1. Write your custom code (including servlet code, JSPs, HTML pages, images, and so
on).
2. Attach it to the ContentCenter GUIs, by adding custom menu item, portlet, or tab
entries to the relevant ContentCenter .xml configuration files and editing web.xml
within the customer_src directories).
3. Compile your code and deploy all the relevant output (including JSPs, HTML pages,
images, and updated XML configuration files) to the customer_out directories and
rebuild the ContentCenter web application, typically by running make_toolkit.ipl.
4. Test your custom code.
Servlets or JSPs?
Custom Java code can be written as JSPs, servlets, or a combination of both.
JSPs embed Java requests in HTML, which lends itself to coding data presentation and
user interaction.
Servlets emit HTML output from Java code, which lends itself to coding control
flow.
In either case, combining presentation logic (displaying web pages) together with
control and data handling logic can lead to source code that is hard to debug and
maintain.
One approach, for anything but the simplest of programs, is to separate these two
functions, placing the main control logic in a servlet that then dispatches presentation
requests to JSPs. This approach is used in the three custom servlets provided in the
customer_samples toolkit.
If a program is not making any requests to the server, as in the corporate style guide
example in the customer_samples toolkit, then use only a JSP.
It is not possible for custom JSPs to determine, at runtime, which ContentCenter user
interface has invoked them to determine which css style sheets to include. If
dramatically different styles are being used in each ContentCenter GUI and consistency
with these styles is important within custom JSPs, separate versions of custom JSPs, to
Example
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException
{
CSClient client = (CSClient) request.getAttribute("iw.csclient");
if (!client.isValid())
throw new ServletException("No valid user");
...
}
JSP snippets are not complete pages and cannot assume anything about the URL they
are being rendered under. Instead, they should build links dynamically by concatenating
the current context path with a path specified relative to the ContentCenter web
application.
Alternatively, the path can be built in Javascript, using Javascript to extract the context.
Specify all HTML references to ContentCenter files (property files, images, and so on),
JSPs, and Servlets relative to the ContentCenter web application, not the current URL.
Custom code can use ContentServices calls to obtain data which is then passed as
parameters when invoking ContentCenter functionality with a URL command .
For an example of this, see the “Show Tasks for File” servlet in the customer_samples
toolkit. It displays a list of tasks associated with a file—obtained from ContentServices
SDK objects—as HTML links. If a task is selected, the ContentCenter Task Details screen
for it is displayed. Here is a portion of the presentation JSP that generates this list of
task links:
Example
<%
int[] taskIds = file.getRelatedTaskIds();
CSTask[] tasks = client.getWorkflowEngine().getTasks(taskIds);
if (tasks == null)
tasks = new CSTask[0];
%>
<tr>
<td><a href="<%= taskUrl %>"><%= tasks[i].getId() %></a></td>
<td><%= tasks[i].getDescription() %></td>
<td><%= tasks[i].getOwner() %></td>
</tr>
<%
} // end for loop of task list
%>
NOTE
An improvement would be to build up the viewtaskdetails URL dynamically (as
discussed in the previous section), instead of hard coding the ContentCenter web
application name, /iw-cc, within it:
Logging Services
The ContentCenter web application uses the third party Apache log4j classes. These
classes are available to custom code developers. In TeamSite versions 6.7.1+, the
logging jar files are located in iw-home/servletd/common/lib.
Users can add a log4j appender to debug their custom Java code. To enable this
debugging feature, define loggers in log4j.xml located in
iw-home/local/config/lib/content_center/customer_src/etc/conf/customer.
Example
<appender name="CUSTOM" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${log100.iwlogs}/iwui/custom.log"/>
<param name="MaxFileSize" value="100MB"/>
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c (%x) - %m%n"/>
</layout>
</appender>
<logger name="com.mycompany.mypackage.*" additivity="false">
<level value="debug"/>
<appender-ref ref="CUSTOM"/>
</logger>
Troubleshooting
When rebuilding the ContentCenter web application with custom code, it is possible that
the Apache Tomcat servlet container may experience problems (particularly if some
Interwoven-supplied output files were overwritten). Tomcat (installed with
Interwoven), unless configured differently during installation, writes to the following
log files:
iw-home/servletd/logs/localhost_log.date
iw-home/servletd/logs/catalina.out
NOTE
Under Unix, if the install is done in console mode—not through the Installer
GUI—these logs are created under /var/adm (bug 46253).
NOTE
The log file catalina.out is created only if Tomcat is started as a service from the
Windows Control Panel or from startup.sh under Linux.
If problems are encountered, remove the custom code output from the customer toolkit
and then rebuild the ContentCenter web application.
This chapter describes how users can access ContentCenter functionality by invoking
URLs embedded in emails generated by TeamSite Workflow or from web pages
(including JSPs) located either inside or outside the ContentCenter web application.
URL Commands
URL Commands invoke portions of the ContentCenter functionality, displaying a
relevant portion of the GUI so that the user can then achieve a desired result.
For example, the URL command copy displays either ContentCenter Standard’s copy
wizard or ContentCenter Professional’s copy screen, prepopulated with the name of the
file to be copied and, if a destination was supplied, the directory in which to copy it.
The URL command does not do the copy. The user, after altering or adding any needed
information, performs the action by clicking, in this case, the Done button. The copy is
then performed and the wizard or screen is closed.
(Alternatively, the user could click Cancel or close the browser window displaying the
GUI element, in which case no copy would be performed.)
In almost all cases, URL Commands do not perform actions by themselves; they instead
serve as entry points into the ContentCenter web application which, in turn, displays a
GUI element that the user then interacts with to display information or to possibly
perform an action.
Some URL commands simply display information. For example, the viewdirectory URL
displays a directory’s contents in either ContentCenter Standard’s file browser or
ContentCenter Professional’s area navigation view. After viewing this information, the
user could simply close the browser window in which it was displayed.
In many cases, the GUI element displayed could either present information or result in
some action being taken, depending on how the user interacts with it. For example, the
properties URL displays a file’s properties. However, if the user owns that file or has
TeamSite Master or Administrator privileges, the user could then edit some of the
displayed fields.
login. After doing so, the URL command is then processed normally. If a user already
has a valid TeamSite session, then the ContentCenter login screen is not displayed.
In TeamSite releases prior to TeamSite 6.0, ten URL commands were exposed and
supported as the Casual Contributor Interface (CCI). With the ContentCenter GUIs, the
number of available URL commands is increased to over 50, with legacy support
provided for the older commands.
Their primary use is to be embedded as ordinary HTML links within emails generated by
TeamSite Workflow.
For example, a submit workflow might generate an email requesting approval of some
submitted content. The embedded links might allow the user to do one or more of the
following by clicking on them:
View the modified files.
Compare a file version submitted for approval against the existing (STAGING)
version.
Choose to approve or reject the submission.
Such workflows can be developed for companies where email is used for interacting
with automated business processes, instead of ContentCenter’s task and job displays.
At sites where ContentCenter’s task and job displays are used, URL commands can
augment these displays by providing email notification of pending tasks with an
embedded URL command link (viewtasklist) that, when clicked, takes the user to the
appropriate task list display or portlet with the actual review task displayed in the task
details section.
At sites where some users use ContentCenter heavily and others do not, workflows can
be designed for both types of users. For example, a submit-for-comment workflow
could be designed to send out an email with an embedded VisualAnnotate review URL to
occasional ContentCenter users (along with a vainstall URL for those users who do not
have the VisualAnnotate toolbar installed) and an ordinary task notification for the
regular ContentCenter users.
NOTE
In order to use a URL command, the user has to be a valid TeamSite user, even if that user
rarely, if ever, uses the ContentCenter GUIs.
The URL command syntax is given in this chapter. For information on writing TeamSite
workflows and sample workflows that generate emails, see the TeamSite Workflow
Developer’s Guide.
Other Uses
URL commands can also be used in other ways:
As custom entry points into the ContentCenter GUIs.
For example, a login URL command could be placed as a link on a company’s
intranet page.
As “quick edit” links for specific content edited by occasional ContentCenter users.
For example, a web page consisting of paired edit and submit URLs for specific
Human Resources web documents (such as holiday schedules, building hours,
payroll reporting deadlines, the company policy manual, and so on) could be
designed to facilitate easy updating of this material on the company’s Web site.
To customize ContentCenter Standard’s functionality by adding a URL command,
either statically or dynamically.
For example, if it is desirable to expose the Local File Manager’s capability to
associate file extensions with editing applications for “advanced” ContentCenter
Standard users (who wished to customize which editing application would appear
when they clicked Edit), a custom help item could be added. This help would
include the (static) URL command localfilemgrsetup—which users could click on
to invoke the Local File Manager’s setup screen—along with an explanation of how
to make these associations.
For an example of how to build a URL command dynamically within a JSP, see
“HTML Links within ContentCenter Custom Code” in Chapter 8, “Adding Custom
Java Code.”
To enable access to ContentCenter functionality for ContentServices SDK
applications.
ContentServices SDK code running in another web application (such as a Portal
integration) can use URL commands to access some ContentCenter functionality,
such as the various file comparison screens, if this is desirable.
(This grouping is somewhat arbitrary because some file related commands, such as
submit, interact strongly with TeamSite Workflow.)
Each command description lists the ContentCenter GUIs applicable to it, the GUI
element that is displayed when it is invoked, and what parameters it can take.
NOTE
The HTTPS protocol and port number can be used instead of http://hostname, just as
with the normal ContentCenter login.
Some URL commands have required or optional parameters. Optional parameters are
listed in the command descriptions in italics. Some parameters (such as done_page) are
discussed in more detail following the URL command tables. Parameters can be given
in any order.
NOTE
Some undocumented internal parameters may be visible in URL commands used by the
ContentCenter GUIs themselves. Do not use these parameters. They are unsupported
for customer use, though they may be exposed in a future release.
When supplying multiple parameters of the same type (such as 1+ files to download),
list each parameter as a name=value pair.
Example
http://server1/iw-cc/download?vpath=default/main/WORKAREA/wa/file1.html&
vpath=default/main/WORKAREA/wa/file2.html
Additional Parameters
In addition to the parameters listed in the tables, all non-legacy URL commands can take
two other optional parameters:
iw_which_ui, specifying which ContentCenter GUI (Standard or Professional) the
user should be logged in under.
When a user who is not already logged into a ContentCenter GUI invokes a URL
command, the user is presented with the login screen. This screen includes a “drop
down” that allows the user to choose which GUI to access. If this parameter is set,
this drop down is not presented and the user, after being authenticated, will be
logged into the indicated ContentCenter GUI, either Standard (if set to ccstd) or
Professional (if set to ccpro).
This parameter is intended to apply only at login. It should not be used to jump
from one ContentCenter GUI to another (even to access functionality not available
in the current ContentCenter GUI), except when using the switchui URL
command. Attempts to do this when using other URL commands may result in an
error.
iw_sessionstring, which passes in a ContentServices SDK session string so that a
user already authenticated outside of ContentCenter (through ContentServices) is
not presented with the ContentCenter login screen upon the URL being invoked.
This parameter is not needed if the user is already logged into ContentCenter.
When building a URL command within ContentServices, the session string can be
obtained from the CSClient object as follows:
url += "&iw_sessionstring=" +
csclient.getContext().getSessionString();
Specifying VPaths
A vpath (“version path”) is a path within the TeamSite content repository, specified as
one of the following:
/store/branch+/EDITION/edition
/store/branch+/WORKAREA/area/directory*/file
/store/branch+/STAGING/directory*/file
where “+” indicates 1 or more; * indicates 0 or more, and a path may omit the elements
below it in order to specify just a directory, area, branch, or store.
A branch may not be named EDITION, WORKAREA, or STAGING. STAGING is a special area
that every branch has. Thus, a URL command parameter that is an area requires either a
workarea (specified as WORKAREA/workareaname) or STAGING.
The path delimiter can be either “/” or “\” when specifying a TeamSite path, but will be
output as: “/” (Unix) or “\” (Windows).
Optionally, a vpath can include the server name by prepending //servername to it,
though doing so is generally not needed.
CAUTION
Browser limitations on the maximum length of their internal URL operations (which vary
from browser to browser, but are typically around 2000 bytes) place a maximum length
on the size of URL commands. Internal ContentCenter GUI operations rarely involve
more than threevfully specified vpath arguments at a time; thus, the recommended
maximum length for a vpath (a consideration when laying out directories and content in
the TeamSite ContentStore) is 600 bytes, as discussed in the TeamSite Administration
Guide. Since some URL commands (such as the advanced search URL command) can
have more than three vpath arguments, very long vpath names can potentially result in
errors when issuing URL commands with more than three arguments.
For more information on specifying a vpath, see the TeamSite Command-Line Tools
manual.
Role Restrictions
Some URL Commands access functionality which is not accessible to all TeamSite
users based on the role they are currently logged in. URL Commands respect the same
role restrictions as described in the TeamSite Administration Guide for specific TeamSite
functionality.
New TeamSite Workflows or web pages should use the new URLs, not these ones. To
take advantage of the ContentCenter Standard Wizards, revise existing Workflows to
access the new URL commands, not these legacy ones.
Display Behavior
When a ContentCenter Standard component (portlet) is the GUI element displayed, the
ContentCenter Standard home page will be shown and scrolled so that the named
component is in view.
NOTE
If a component removed from the home page as a customization is to be displayed by a
URL command, then nothing is displayed. Do not write workflows that rely on URL
commands that display components and then remove these components from the home
page.
NOTE
The done_page parameter is not supported for URL commands that open pages with no
defined exit point (such as copy) or which automatically navigate to another page upon
the action being completed.
Customers can either supply custom done pages or use one of the Interwoven-supplied
done pages located in iw-home/httpd/webapps/content_center/teamsite/common:
close_window.html closes the current browser window. (This page is called by the
URL commands that accept a done_page parameter when none is supplied.)
refresh_parent_and_close_window.html looks in the current browser window for
a Javascript window.opener and tries to refresh it before closing the current
window.
When supplying these pages as a parameter, specify them relative to the server, such as:
done_page=/iw-cc/teamsite/common/close_window.html.
NOTE
Since these pages are used by the ContentCenter GUIs, do not modify these pages.
Custom done pages can be specified either absolutely or relative to the server (not the
ContentCenter web application), such as in the previous example. Custom code should
build a done page’s URL dynamically when specifying it relative to the server.
In TeamSite 6.1+, the optional done_page is provided for many URL commands in
order to give greater control over browser behavior to workflow developers. Workflow
CGI tasks may require special handling as described in the next section.
To transition itself, a CGI should invoke the URL command transitiontask (instead
of using the old Perl callback methods as done in previous TeamSite GUIs), setting its
parameter cgi_transition to true, and passing in either the done_page parameter or a
custom done page. This can be done using either a GET or a POST method.
Examples
To transition a CGI task using the passed in done_page parameter using GET:
window.location = /iw-cc/transitiontask?taskid=$taskid&
cgi_transition=true&done_page=$donePage
NOTE
If you are also passing in the optional comment parameter to transitiontask, the POST
method is recommended.
If a CGI is simply aborting itself (due to a user clicking a Cancel button, say), the CGI
can go directly to either the passed in done page or a custom done page:
window.location=$donePage;
If a CGI is completing and implicitly transitioning itself (instead of using the explicit
URL command transitiontask) and wishes to display a feedback page for
ContentCenter Standard users, then it should determine if it was invoked by
ContentCenter Standard and, if so, call the URL command wffeedback, passing in
either the done_page parameter that it received or a custom done page.
To determine which ContentCenter GUI called it, the CGI should examine the
JavaScript object window.opener. If its value is not null, then it was opened by
ContentCenter Professional and it can simply forward to the appropriate done page. If
its value is null, then it was opened from ContentCenter Standard and it should call
wffeedback.
Generally, the workflow job or task id is sufficient context for the ContentCenter
workflow feedback page to display any associated files. However, if the workflow CGI
task immediately precedes a TeamSite submit task, it is possible that this submit task
may complete before the feedback page is displayed, preventing the feedback page from
showing the files that were submitted. To prevent this, pass in the list of submitted files
as vpath parameters to the wffeedback URL command (using a POST method to do so
if many files are involved).
Example
Here is a code snippet illustrating this. It assumes that the submitted files are in an array
called vpaths.
print <<EOS;
<form name="feedbackform" method="POST" action="/iw-cc/wffeedback">
<input type="hidden" name="workflow_command" value="submit"/>
EOS
<script type="text/javascript">
try
{
var x = window.opener.name;
}
catch(e)
{
window.opener = null;
<workflow name='sample_notification_job'
owner="__owner__"
creator="__creator__"
description="A demo job spec for email notification">
<externaltask name="mail_notification"
owner="__owner__"
start="t"
description="notify author">
<areavpath v="/default/main/WORKAREA/wa1/"/>
<successors>
<successorset description="submit">
<succ v="author_work"/>
</successorset>
</successors>
<command v='http://localhost/iw-cc/urlexternaltask'/>
<variables>
<variable key="ClassName" value="com.corp.custom.MailNotificationTask"/>
<variable key="target_task_name" value="author_work"/>
<variable key="mail_template" value=
"/iwadmin/main/config/STAGING/workflow/email/samples/sampleAuthorNotification.xsl"/>
</variables>
</externaltask>
<usertask name="author_work" owner="__author__" readonly="f">
<areavpath v="/default/main/WORKAREA/wa1/"/>
<successors>
<successorset description="End">
<succ v="End"/>
</successorset>
</successors>
</usertask>
<endtask name="End"/>
</workflow>
Substitute valid values for __owner__, __creator__, and __author__ in the above job
description.
NOTE
Make sure that the user set as __author__ in this job specification has an email address
set within TeamSite by checking that user’s properties under the Content Center
Professional Administration tab.
The author user should receive an email according the the email template located in
/iwadmin/main/config/STAGING/workflow/email/samples/sampleAuthorNotification.xsl
After demonstrating this capabilty remove the sample toolkit as described “Removing
the Customer Samples Toolkit” on page 32.
This XSL email template (substituting for the supplied Interwoven logo and styles) and
sample MailNotificationTask.java code can be customized as needed for customer
business needs when generating email notifications from workflows.
This appendix collects together the Best Practices mentioned in this guide.
Automate portions of the process for customizing the ContentCenter web application for
other web application servers in a custom script (substituting the particular locations of
Interwoven files and the web application server deployment directory as appropriate for
your system).
From the section “Making Complex Changes to Online Help” in Chapter 6, “Customizing
Online Help”:
Use a working directory when making complex changes to an online help system and
copy only the new and modified files into the customer toolkit when you are done.
From the section “Custom Code Deployment” on page 100 in Chapter 8, “Adding
Custom Java Code”:
Place custom Java code accessed from within ContentCenter GUIs within the
ContentCenter web application, unless there is a good reason not to do so.
From the section “Custom Code Deployment” on page 100 in Chapter 8, “Adding
Custom Java Code”:
Use a source control mechanism when there are multiple custom code developers or
designers.
From the section “HTML Links within ContentCenter Custom Code” in Chapter 8,
“Adding Custom Java Code”:
Specify all HTML references to ContentCenter files (property files, images, and so on),
JSPs, and Servlets relative to the ContentCenter web application, not the current URL.
Migrating Existing
Customizations
This guide consists of three sections, the first two of which are related:
How to migrate earlier customizations made using UITK technology to a later
version of TeamSite, either:
To TeamSite 6.7+.
From TeamSite 6.0 or 6.0L to either TeamSite 6.1 or TeamSite 6.5.
The status of customizations that were possible for WebDesk Pro (and WebDesk) in
TeamSite 5.5.2 (using non-UITK technology) within the new ContentCenter user
interfaces.
In addition, all customers migrating from earlier TeamSite versions to TeamSite 6.5+,
should be aware that some customizations affecting the behavior of the client GUIs that
were previously specified in iw.cfg are now specified using the UITK. See the
TeamSite Release Notes for further details.
If the new TagUI is used by CGI scripts, custom CGI scripts will need to be updated to
expect and pass the new TagUI calling environment. To do this, two changes need to be
made:
Area_path values will need to be fully specified vpaths, not physical paths.
TagUI form variable names need to be fully specified, with their metadata
categories.
For example, the old TagUI form variable name-value pair Business_Unit Finance
would be specified as Default Rule/Description/Business_Unit Finance in the
new TagUI calling environment.
NOTE
The directory tree customer_src_new is always installed, even for a new TeamSite 6.7
installation; in that case, its contents are then copied into customer_src.
For backward compatibility, TeamSite 6.7 continues to support the old method of
specifying role restrictions for custom menu items and tabs, but only for the predefined
roles of Author, Editor, Administrator, and Master. This allows customers to defer
migrating already defined custom menu items and tabs to the new permission scheme as
long as they are working with just these roles (not Reviewer), as defined out-of-the-box.
NOTE
One minor change in behavior will occur, due to a small change in the semantics of the
Master role. In TeamSite 6.7+, the Master role is never subject to role restrictions.
Thus, any previous custom menu item or tab that set isPermitted for the role Master to
false will be treated as true by TeamSite 6.7+.
No role restrictions based on the new out-of-the-box role of Reviewer, nor on any
custom roles, nor on any changes made to the category Custom User Operations for the
Interwoven predefined roles will be respected for custom menu items and tabs whose
Customers who did not make any customizations to the ContentCenter GUIs in
TeamSite 6.0 or 6.0L, should delete the contents of
iw-home/local/config/lib/content_center before installing TeamSite 6.1. No other
steps are necessary.
Upgrading to 6.1
In TeamSite 6.0 or 6.0L, ContentCenter customizations could be made in either the
customer_src directory (as in TeamSite 6.1) or in the customer directory within the
customer toolkit.
If you made TeamSite 6.0 or 6.0L customizations in the customer_src directory, your
customizations should continue to work with a few migration steps.
TeamSite 6.0 or 6.0L customizations made in the customer directory should continue to
work in 6.1, as long as they are not overwritten by any new customizations made in the
customer_src directory.
NOTE
If the content_center directories were not removed before upgrading to TeamSite 6.1,
then the customer_src directory was not overwritten. Instead, it was installed as
customer_src_new.
However, in order to safely make more customizations and take advantage of new
features, you will first need to manually merge any 6.0 or 6.0L customizations from the
files in the old customer directory within the customer toolkit into the corresponding
files in the customer_src directory and then rebuild the ContentCenter web application:
1. Make backup copies of the customer and customer_src directories.
2. Copy any customizations made in the customer directory to customer_src, as well
as any static files (such as online help files and style sheets) that are not present in
customer_src/web.
NOTE
However, you may wish to keep the customer directory in order to compare the 6.0
reference files against the 6.1 reference files supplied by Interwoven.
In TeamSite 6.1+, all reference files have been moved out of the customer toolkit into a
reference toolkit: iw-home/local/config/lib/content_center/reference. 6.0 and
6.0L users will need to compare the reference files from those releases to the reference
files in the new location to determine the updates occurring within the
Interwoven-supplied files.
In TeamSite 6.0L and 6.1, a property file must be specified as a link element’s
resourceBundle attribute and not, as in TeamSite 6.0, in a custom XML configuration
file’s placeholder element or other containing element. Customizations that used this
6.0 reference mechanism will need to be migrated forward by specifying
resourceBundles for each relevant link element.
In TeamSite 6.0 or 6.0L, this customization was achieved by redefining two links in the
file ui_custom.xml:
<iwov-ui>
<link id="iw.ccstd.my_content.wa_vpreview.link"
refid="_iw.ccstd.directory_browse_inline.link">
</link>
<link id="iw.ccstd.task_details.wa_vpreview.link"
refid="_iw.ccstd.directory_browse_inline.link">
</link>
</iwov-ui>
To migrate this customization to TeamSite 6.1, remove the link entries above from
ui_custom.xml, add the new param entry to application_custom.xml, and then rebuild
the ContentCenter web application.
In TeamSite 6.1, unlike TeamSite 6.0 or 6.0L, this older WebDeskPro customization,
using iw.cfg, now applies to the ContentCenter interfaces as well as WebDeskPro. See
the TeamSite Administration Guide for details on how to make this customization.
NOTE
This customization by TeamSite role mechanism was replaced by the new role
customization method in Version 6.7.0.
To support legacy WebDeskPro CGIs in TeamSite 6.0, an adapter script was available
for download from the Interwoven support site to emulate the WebDeskPro calling
environment when invoking a legacy WebDeskPro CGI from a ContentCenter link.
While the older style will work in many environments, it may not continue to work.
Therefore, migrate the url attribute values forward for all links invoking the
WebDeskPro adapter script to use the new address form.
Customization instructions for the WebDesk Pro interface have not changed and are
located in an appendix of the TeamSite Administration Guide.
Some customizations altering GUI behavior in older versions of TeamSite affected the
underlying server behavior. Some of these customizations are still possible in TeamSite
6.0+. These are specified as they were in earlier TeamSite versions, not using the UITK
(which is used only for GUI customizations). Thus, these customizations (only) will
now affect both WebDesk Pro and the new ContentCenter user interfaces.
To migrate past customizations of this type to TeamSite 6.0+, update the TeamSite
configuration file iw.cfg with your earlier customizations, as described in the TeamSite
Administration Guide.
Other customizations that used to be specified within iw.cfg are now specified using
the UITK. These will need to be migrated forward, if they are desired in the new
ContentCenter GUIs, changing how they are specified to match the new UITK
technology.
In some cases, due to the different designs of the user interfaces, you may need to make
different customizations in order to achieve a desired effect.
This appendix briefly describes what has changed to enable an assessment of what
migration effort, if any, will be needed, depending on the extent and types of
customizations done to the previous TeamSite GUIs.
TeamSite Labels
Not available in ContentCenter GUIs.
Edition Views
Editions are displayed in ContentCenter Professional as a paged list. Its page size
cannot be configured with the UITK in this release, but it is anticipated that it will be
configurable in a future release.
End user VisualPreview button preferences are not available in TeamSite 6.0+.
NOTE
While these commands are functionally equivalent, different GUI elements
(ContentCenter Professional, not WebDesk Pro) are displayed to end users.
ContentCenter custom menu items are now specified in UITK custom configuration
files, not iw.cfg. The UITK provides much more flexible menu placement and ordering
than was previously available in WebDesk Pro. To be accessed from the ContentCenter
GUIs, existing custom menu items will need to be migrated to this new format (they will
continue to function in WebDesk Pro as before, without any porting).
ContentCenter custom menu items can be restricted by role. This is now done through
the UITK, not iw.cfg. Existing custom menu items that are migrated to the UITK will
need to specify their role restrictions in this new format.
NOTE
This format is different for TeamSite 6.0-6.5 and TeamSite 6.7+.
WebDesk Pro custom menu items that invoke HTML pages can be migrated to the new
UITK format directly.
Custom menu items invoking Java code within the web application were not supported
in WebDesk Pro. These are now supported in the ContentCenter web application, but
only as described in Chapter 8, “Adding Custom Java Code.”
ContentCenter custom menu items invoke CGI scripts differently than in WebDesk Pro,
with regard to how parameters are passed.
WebDesk Pro custom menu items that invoke CGI scripts without making use of passed
parameters can be migrated directly to ContentCenter custom menu items.
WebDesk Pro custom menu items that invoke CGI scripts that make use of passed
parameters will need to either be modified or invoked using an adapter script when
migrated to ContentCenter custom menu items.
The primary difference between how CGI programs are invoked in the two GUIs is that
WebDesk Pro specifies files using file system paths while the ContentCenter GUIs
specify files using Interwoven vpaths. To migrate a WebDesk Pro custom menu item
that uses passed file parameters to the ContentCenter GUIs:
1. Create a new copy of the existing CGI program under a different name.
2. Modify the program to accept vpaths, instead of file system paths.
3. Invoke this new CGI program from custom links specified in the ContentCenter
GUIs.
Alternatively, legacy WebDesk Pro CGIs can be called using an adapter script that
emulates the WebDesk Pro calling environment when called from a ContentCenter GUI:
iw-home/httpd/iw-bin/wdpro_menu.ipl
This is useful in an environment in which WebDesk Pro will continue to be used along
with the ContentCenter GUIs, so as to avoid having to support two versions of each CGI
that uses passed file parameters.
Within a ContentCenter custom menu item, to invoke the adapter script after installing
it, modify the url attribute within the custom menu item’s link element to invoke not
the WebDesk Pro CGI program, but the adapter script with the name of the WebDesk
Pro CGI program appended to it.
Example
<action-list id="iw.ccpro.filesys.menubar">
<menu id="iw.ccpro.view.menu">
<link id="acme.custom_menu_item.link"
label="Reports"
description="Run the old Reports program"
url="/iw-bin/wdpro_menu.ipl/report.cgi"
windowFeatures="width=640,height=570,scrollbars=yes,
menubar=yes,titlebar=no,resizable=yes,
status=yes,center=true,dependent=false"
target="_blank" />
</menu>
</action-list>
includes vpath, arid, brid, dirid, waid, cwd.vpath, done_page, full_redirect, and
iw_locale. If more than two custom parameters are passed, this must be done using
valid XML and escaping the & in the url attribute of the link element.
The adapter script is to be used only for legacy CGI programs called from
ContentCenter (not WebDeskPro). Any new CGI programs should be created to work
directly from the ContentCenter GUIs.
NOTE
Removing too many menu items could, obviously, result in the ContentCenter GUIs
being unable to perform their intended functions.
Custom job attributes can be specified, using the UITK, as columns to be displayed in
ContentCenter Professional’s job attribute list view. As such, end users can then filter
displayed job lists using these columns. Custom job attributes can also be specified as
attributes to be displayed in the job details section.
The range of possible values previously specified for custom job attributes in older
TeamSite GUIs are not used by the ContentCenter GUIs and cannot be migrated
forward.
DataDeploy
The optional Interwoven-supplied custom menu item Search Extended Attributes,
which could be disabled by role within iw.cfg, is not available within the
ContentCenter GUIs in this release.
FormsPublisher
The optional Interwoven-supplied custom menu item Search DCRs, which could be
disabled by role within iw.cfg, is not available within the ContentCenter GUIs in this
release.
Metadata Capture
The metadata capture screens are still available (and can still be customized) within
iw.cfg in this release. They do not use UITK technology.
Metadata Capture/Workflow
The ContentCenter Standard wizards, by default, invoke a tagging (metadata capture)
step before invoking a TeamSite workflow. If existing workflows also include a tagging
step, this then produces a redundant step for end users. ContentCenter Standard can be
customized to have its wizards skip the default tagging step instead. See“Enabling
ContentCenter Standard “Edit My Workareas” feature” in Chapter 4, “Customizing GUI
Behavior.”
New ContentCenter users will need to recreate their old WebDesk Favorites list by
hand.
To ensure that CGI tasks do not close the browser window that ContentCenter Standard
is currently in upon exiting, edit your Workflow CGIs.
Determine which ContentCenter GUI the CGI was invoked from by examining the
window.opener JavaScript object:
If its value is null, the CGI was opened from ContentCenter Standard.
If its value is not null, the CGI was opened from ContentCenter Professional (or
WebDesk Pro).
See “Displaying a Workflow Feedback Page from a CGI Task” in Chapter 9, “Using URL
Commands” for details on the workflow feedback URL command.
Alternatively, rewrite the CGI to use the URL command transitiontask to force its
own transition (instead of using the older Perl callback methods) as described in
“Transitioning Workflow CGI Tasks and Done Pages” in Chapter 9, “Using URL
Commands.”
README files
The following README files from the reference toolkit are reprinted here for
convenience:
README_base_config_types
README_teamsite_config_types
README_search_config_types
README_debug_custom_codes
README_base config_types
1. Base configuration types
---------------------------
1.1 Overview
----------------------------------------------------
Each toolkit contains several XML configuration files that define the UI and
behavior of the ContentCenter application. These files can be categorized as follows:
roles.xml - contains XML that describes custom menu item access and filtering
refid - When specified, the link will inherit all the attributes from the
link specified by the refid. Any attribute that this link has will override
any inherited attribute.
label - The text of the link. This can be either text or a property string id
that is located in the property file specified in resourceBundle.
icon - URL of image to display. If the URL begins with "/" then it is assumed
to be relative to the web application.
<link id="example.link"
refid="example.refid.link"
operationId="example.operationid"
href="http://www.example.com"
icon="/customer/example.gif"
label="example.description"
resourceBundle="com.example.strings"
windowFeatures="width=440,height=165,scrollbars=0,menubar=0,resizable=1,status=0,center=true,relative=true,
dependent=true"
/>
The following adds a parameter to the link above, so that the resulting href is
http://www.example.com?x=20
<link id="example.link">
<urlParam id="x" value="20"/>
</link>
<tab> - This describes an individual tab within a tabset. It has the following
attibutes:
url - URL that is navigated when the tab is clicked. Content will appear
below the tabset.
<tab id="example.tab"
label="Example Tab"
url="http://www.interwoven.com"
/>
<separator id="example.separator"/>
<menu> - This describes a popup menu and can be used within an action list. Menus
contain links to describe menu items. Menus can not contain other menus.
Menus have the following attributes:
<menu id="example.menu"
label="example.menudescription"
titleImage="/base/images/icn_menuarrow.gif" >
<link id="example1.link"
url="http://www.interwoven.com"
label="example.description" />
<link id="example2.link"
url="http://www.interwoven.com"
label="example.description" />
</menu>
<heading> - Headings appear at the top of many application pages. Headings can contain
action lists and links. Only modifying existing Interwoven headings is supported.
Headings have the following attributes:
<heading id="example.heading"
title="Example Heading">
<link id="example1.link"
url="http://www.interwoven.com"
label="example.description" />
</heading>
<action-list> - An action list contains menus and/or links. Action lists have the following
attributes:
id - The ID for this action list. This should be unique.
<action-list id="example.actionlist">
<link id="example1.link"
url="http://www.interwoven.com"
label="example.description" />
</action-list>
<tabset> - A tabset defines a series of tabs. Only adding new tabs to existing Interwoven tabsets is
supported.
<map> - A map defines a series of name/value pairs. A map's purpose depends on how
it is used. Only modifying existing Interwoven maps is supported. Maps support
the following attributes:
<map id="example.map"
resourceBundle="com.interwoven.ui.teamsite.workflow" >
<entry id="0" value="example.value1" />
<entry id="1" value="example.value2" />
</map>
width - The width of the column. Can be an absolute number (in pixels)
or a percentage.
sortable - Indicates whether the user can sort the list on this column.
Possible values are:
true
false
nowrap - Indicates whether data that is too long for this column
should be clipped or wrapped.
Possible values are:
true - data will be clipped if too long for this column
false - data will be wrapped if too long for this column
property - Specifies the bean notation of the property to display. The bean
notation is applied to the object being displayed in each
list entry. For example, in the task list, CSTasks from the
CSSDK are being displayed. Specifying a property name will retrieve
a property on the CSTask object.
type - The display type for the data being displayed. Possible values are:
string - typeFormat is ignored
<listview> - A listview is a list of information that has different layout modes. The
listview contains <column>s that define the information that it will display. Not
all listview instances support having their columns or attributes customized.
Refer to the documentation for each instance to see what is supported. Only modifying
existing Interwoven listviews is supported. The listview has the following attributes:
sortColumn - The initial column to sort on. This may be overriden by the
user's preference.
<pagedlist> - A pagedlist is a listview that supports pagination for long lists. Only modifying
existing Interwoven pagedlists is supported. The pagedlist supports the same attributes
the listview supports, and additionally the following:
pageSize - The number of rows per page. This may be overriden by the user's
preference.
<pagedlist id="example.pagedlist"
sortOrder="asc"
sortColumn="example.column1"
pageSize="10"
resourceBundle="com.example.strings" >
<column id="example.column1"
icon="//customer/example.gif"
description="Priority"
property="variable(priority)"
propertyMap="iw.teamsite.job.priority.icon.map"
width="5%"
align="center"
sortable="true"
type="icon"
nowrap="false" />
<column id="example.column2"
description="Job ID"
type="link"
sortable="true"
typeFormat="iw.ccpro.job_details.link"
property="id"
width="10%" align="left"/>
</pagedlist>
<portlet-group> - This type defines the group of portlets that represent a unit
for layout. A portal group has the following attributes:
width - Width is the width (%) relative to the holding table for
the layout. The group width needs to add up to 100%.
<title-bar> - This defines the type of titlebar for the portlet to use and is contained within
a portlet tag. The title bar supports the following attribute:
<portlet> - This type defines an individual portlet component within a portal group. A
portlet has the following attributes:
<portlet id="example.portlet"
label="Custom Portlet"
url="/customer/examplePortletServlet">
<title-bar id="example.titlebar" type="standard"/>
</portlet>
For example, the following XML disables a custom menu item for authors:
<role id="author">
<operation id="my.custom.menu.item" isPermitted="false"/>
</role>
-----------------------------------------
Interwoven defines a series of configurations for the default display. For customization
purposes a series of reference XML files have been generated and placed in the customer
toolkit. Use these reference files to find the part of the application you want to
customize.
Only configurations listed in the reference files are supported for customization. Only
tags and attributes listed in this document are supported to be customized.
CCPro: Change the windowFeatures for New Job to use a longer window (from 600 to 700 px).
<globals>
<link id="_iw.ccpro.new_job.link"
windowFeatures="width=600,height=700,scrollbars=1,menubar=0,titlebar=0,resizable=1,status=1,center=true,
dependent=false" />
</globals>
<iwov-portal>
<portal-page id="iw.ccstd.home.portal-page">
<portlet-group id="iw.ccstd.home.column1.portal-group">
<iwov-insert-before id="iw.ccstd.home.how_do_i.portlet">
<portlet id="custom_current_user"
label="custom.portlet.iwov_servlet_current_user.title"
url="/showcurrentuser">
<title-bar id="titlebar" type="standard" />
</portlet>
</iwov-insert-before>
</portlet-group>
</portal-page>
</iwov-portal>
<iwov-portal>
<portal-page id="iw.ccstd.home.portal-page">
<portlet-group id="iw.ccstd.home.column2.portal-group">
<iwov-move-before id="iw.ccstd.home.tasks.portlet">
<portlet id="iw.ccstd.home.work_in_progress.portlet"
label="My Modified Content" />
</iwov-move-before>
</portlet-group>
</portal-page>
</iwov-portal>
3.4 <iwov-delete>
----------------------------------------------------
Existing configurations can be deleted by using iwov-delete. Note: not all
configuration instances can be deleted.
<iwov-portal>
<portal-page id="iw.ccstd.home.portal-page">
<portlet-group id="iw.ccstd.home.column2.portal-group">
<iwov-delete>
<portlet id="iw.ccstd.home.my_forms.portlet" />
</iwov-delete>
</portlet-group>
</portal-page>
</iwov-portal>
README_teamsite_config_types
1. Teamsite configuration types
---------------------------
1.1 Overview
----------------------------------------------------
The teamsite toolkit adds two additional configuration types:
workflow*.xml - contains XML that describes miscellaneous workflow attributes such
as custom job/task attributes to display on the job/task details screens.
file_template*.xml - contains XML that describes file templates for New File.
<attributelist> - Describes a list of custom workflow attributes. Used by the ContentCenter application to
determine which attributes appear on the Job/Task Details screens. Contains
<attribute> sub-elements. You may only modify existing Interwoven attribute lists.
type - The display type for the data being displayed. Possible values are:
string - An text area is displayed.
<attribute id="example.attribute"
label="example.description"
resourceBundle="com.example.strings"
propertyMap="iw.teamsite.task.priority.map"
type="map"/>
<file-templates> - Describes a list of file template groups. Contains <allow-empty> and <group>
sub-elements.
<allow-empty> - Describes if an empty file template should show up on UI. This element can
only appear zero or once. The element content is "true" or "false".
<locations> - Describes where this template group should be available. Contains <vpath-regex>
sub-element.
<vpath-regex> - Describes a valid vpath regex for the template group. Please refer to JavaDoc
(java.util.regex.Pattern) for the regex information. It has one attribute:
<template> - Describes a template file. Contains <label> and <dir-regex> sub-elements. It has
the following attributes:
<file-templates>
<allow-empty>false</allow-empty>
<group id="MSWord"
label="label.msword"
resourceBundle="com.mycompany.ui.filesys.template">
<locations>
<vpath-regex value="/default/main/branch1/.*"/>
<vpath-regex value="/default/main/WORKAREA/wa1/.*"/>
</locations>
<template id="White Paper"
label="White Paper"
area-relative="false"
vpath="/default/main/admin/STAGING/white_paper.doc"/>
</group>
</file-templates>
README_search_config_types
1. Search configuration types
---------------------------
1.1 Overview
----------------------------------------------------
The search toolkit adds one additional configuration type:
Languages:
--------------
<languages id="iw.search.languages">
<language id="es"
label="advanced_search.language.spanish.label"
resourceBundle="com.example.strings"/>
</languages>
Content types:
--------------
<content-types id="iw.search.content_types">
<content-type id="htm,html"
label="html.type.description"
resourceBundle="com.example.strings"/>
</content-types>
Extended attributes:
--------------------
<extended-attributes id="iw.search.attribute_list">
<extended-attribute id="custom.attribute"
label="custom.attribute.description"
resourceBundle="com.example.strings"/>
</extended-attributes>
Templating fields:
------------------
<template-types id="iw.search.template_types">
<template-type id="intranet/weather"
label="weather.label"
resourceBundle="example.strings">
<template-field id="Announcement"
label="Weather Announcement"/>
</template-type>
<template-type id="internet/auction">
<template-field id="MinBidAmount"
label="auction_amount.label"
resourceBundle="example.strings"/>
</template-type>
</template-types>
README_debug_custom_codes
1. Debug custom Java codes
---------------------------
1.1 Overview
----------------------------------------------------
Users can add a log4j appender to debug their custom Java codes. This is
specially useful for URLExternalTask and XSLTPTCompiler.
To enable this debugging feature, define loggers in log4j.xml shipped in
customer_src\etc\conf\customer, for example:
<appender name="CUSTOM" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${log100.iwlogs}/iwui/custom.log"/>
<param name="MaxFileSize" value="100MB"/>
<param name="MaxBackupIndex" value="10"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %-5p %c (%x) - %m%n"/>
</layout>
</appender>
<logger name="com.mycompany.mypackage.*" additivity="false">
<level value="debug"/>
<appender-ref ref="CUSTOM"/>
</logger>
Component
The visual “module” displayed on the screen associated with a ContentCenter
Standard portlet.
Configuration File
The XML files used to specify customizations within the UITK.
ContentCenter Standard
The ContentCenter GUI intended for TeamSite Content Contributors, such as
Authors and Reviewers.
ContentCenter Professional
The ContentCenter GUI intended for experienced TeamSite users and
administrators, including Editors, Administrators, and Masters.
ContentServices SDK
The application programming interface to Interwoven functionality exposed as web
services. Used by the ContentCenter GUIs, through the standard ContentServices
Java client libraries, to access TeamSite on the Interwoven server.
Customer Toolkit
The toolkit in which ContentCenter GUI customizations are specified and preserved
across releases.
Customer_src Directories
The customer toolkit directories in which custom code and customizations are
placed.
Customer_out Directories
The ready to merge directories of the customer toolkit in which the output of the
customer source directories is placed before rebuilding the ContentCenter web
application.
Form
The displayed screen form that a user fills out to enter structured content.
FormsPublisher
The TeamSite product that deals with entering and formatting structured content.
home page
The ContentCenter Standard initial page that contains components or portlets.
JSP
Java Server Page: a web page with embedded Java code served by a web application
server to the user’s browser.
JavaScript
Web scripting language embedded in web pages and executed by the browser.
Link
A UITK element that can access both UITK functionality and custom functionality,
such as external web pages, CGIs, and custom Java code. Links can appear in many
different places within the ContentCenter GUIs, including action lists, heading bars,
and popup menus.
Portal Framework
An internal UITK application framework that behaves similarly to, but is not, a true
web portal. It consists of a home page and attached portlets.
Portlet
A component displayed by the UITK portal framework that behaves similarly to
portlets displayed by web portals.
Servlet
A Java web application that runs on the application server and displays output to a
browser. When used in combination with JSPs, the servlet typically handles data
and control logic, dispatching display requests to JSPs.
TeamSite
The server application providing access to an Interwoven content repository and its
associated versioning, workflow, and templating capabilities. Its functionality is
exposed to end users through the ContentCenter GUIs.
TeamSite Repository
The Interwoven virtual file system that versions content stored within it.
TeamSite Roles
TeamSite users have one or more roles assigned to them. A user acting in a given
role on a given branch is prevented from doing certain TeamSite operations
available to more capable roles. The standard out-of-the-box TeamSite roles, in
increasing order of capability, are: Author, Reviewer, Editor, Administrator, and
Master. Access to custom links and tabs in the UITK can be specified by role.
TeamSite Workflow
The TeamSite job and task management system used to implement business work
processes.
Toolkit
A subsystem of the UITK, merged together with other toolkits—including the
customer toolkit—to produce a web application.
UITK
The User Interface Toolkit technology that underlies the ContentCenter web
application.
URL Command
A request, formatted as a URL, that accesses some or all of the functionality of the
ContentCenter web application, to be displayed in a browser to the end user.
Typically, URL commands are embedded in emails produced by a TeamSite
workflow. A much smaller set of URL commands, formerly known as the Casual
Contributor Interface, was supported in earlier TeamSite releases.
VPath
The virtual path describing the location of content within the TeamSite repository.
VisualPreview
An editing toolbar displayed over TeamSite content, formerly known as the SCE
(SmartContext editing) toolbar.
Web Application
A server application whose output is displayed as web pages in client browsers. The
ContentCenter web application underlies both ContentCenter GUIs.
WebDesk
An older TeamSite GUI, not supported in Interwoven 6.0.
WebDesk Pro
An older TeamSite GUI, no longer supported by TeamSite. It is customized using
older Interwoven technology, not the UITK.
I portlet 18, 41, 44, 45, 54, 55, 56, 75, 91, 102, 125
icon element 47, 56 portlet-group element 45
image file 56 property file 56
iw_sessionstring 113
iw_which_ui URL parameter 112 R
iwov-delete 48, 55 README_search_config_types 44
iwov-insert-after 54 README_xml_config 44, 51
iwov-insert-before 53 reference file 27, 43, 57, 58
iwov-move-after 54 reference ID 55
iwov-move-before 54 refid 55, 58
resourceBundle 56
J
JavaScript 97, 146 S
JSP precompilation 34, 35, 38 search_custom.xml 41, 48
separator 50, 51, 54, 55
L servlet entry 101
label attribute 44, 47, 51, 56 servlet mapping entry 102
LaunchPad 140 style sheets 20, 26, 77
link 50, 54, 55, 56, 58, 91, 102 scope 20
submit
listview element 46
locking 68
Local File Manager 140
locking Submit locking 68
Submit, defined 68 submit locking 68
locking model 68
T
M tab 46, 55, 56, 91, 102
make 103 tabset element 46
mandatory write locking 68 tagging step 72
map element 52 target attribute 51
menu 50, 54, 55 TeamSite role 51, 95
display anchor 51 TeamSite Workflow 21, 41, 46, 47, 58, 72, 94,
metadata capture 72, 145 109, 110, 112, 125, 126
third party libraries 101
title-bar element 45
O toolkit 18, 20, 25, 85
online help files 20, 22, 26, 28 toolkits.xml 31
complex changes 89
organization 85 U
style sheets 29, 86
wizard help topics 90 ui_custom.xml 53, 55, 57, 59, 91, 92, 93, 96
operationID attribute 51, 95 UITK technology 11, 18, 25
optional write locking 68 URL 56, 79, 92, 95, 102
url attribute 44
URL commands 105, 109, 111, 112, 140
P UTF-8 encoding 44
page size 58
pagedlist element 46 V
param element 52
placeholder element 21, 27, 43 VisualPreview 75, 140
portal framework 18 vpath 93, 113, 142
portal_custom.xml 41, 42, 54, 57, 97, 98
portal-page element 45
W
web application 18, 21, 22, 56, 99, 101, 103, 109
web.xml 94, 98, 99, 101, 102
webapp.ver 102
WebDesk 133
WebDesk Pro 11, 133, 141, 144
windowFeatures attribute 51, 58
workarea names 74
Workflow CGI task 145
workflow feedback URL command 146
workflow_custom.xml 41, 57, 59
X
XML syntax 42
XML validation 36