Sun ONE Messenger Express Customization Guide |
Chapter 4
Customizing Advanced FeaturesThis chapter describes how to perform advanced customizations. It also provides HTML files and their location and details on features that are fully customizable for the Messenger Express user interface.
This chapter contains the following sections:
Advanced Customization OverviewIn addition to the Messenger Express features discussed in Chapter 2, "Customizing General Features", and Chapter 3, "Customizing User Interface Features", many others are fully customizable. However, to take advantage of these features, an in-depth knowledge of JavaScript is required. In addition, migration problems might be encountered, for example, when attempting to reconfigure JavaScript files.
Note
This chapter does not provide code samples for the advanced customizations. Also, an advanced knowledge of JavaScript and HTML is assumed.
Messenger Express User Interface Customizable FeaturesTable 4-1 lists the features of the Messenger Express user interface that are fully customizable.
Attachments
You can modify the following attachments options:
HTML File Mapping
The HTML file that controls the attachment related features is attach_fs.html.
Collect Mail from Another Server
You can modify the following when collecting mail from another server:
HTML File Mapping
The HTML file that controls the mail collection feature is collect_fs.html.
Message Composition
The message composition feature enables basic mail functions. You can modify the following message composition options:
HTML File Mapping
The HTML file that controls the message composition feature is msg_fs.html.
Folder Management Tab
The folder management tab enables access to server-side folders. You can modify the following folder management tab options:
HTML File Mapping
The HTML file that controls the folder management tab feature is fldr_fs.html.
Address Search
The address search feature enables the management of address search in LDAP directories. You can modify the following address search options:
HTML File Mapping
The HTML file that controls the address search feature is lookup_fs.html.
Mailbox Management Tab
The mailbox management tab enables access to a mailbox. You can modify the following mailbox management tab options:
HTML File Mapping
The HTML file that controls the mailbox management tab feature is mbox_fs.html.
Personal Option Management (Options Tab)
You can modify the following Options tab options:
HTML File Mapping
The HTML file that controls the options tab features is opts_fs.html.
Return Receipt
The return receipt feature enables the management of return receipts.
HTML File Mapping
The file that controls the return receipt feature is receipt_fs.html.
Shared FoldersA shared folder is folder in which you can store messages that can be accessed by other users. Messenger Express manages access to the shared folders by granting others access to the shared folders.
Sharing folders is a two-step process that involves sharing and subscribing:
For more information on Shared Folders, see Sun ONE Messenger Express Online Help, that can be accessed by clicking the Help on Sun ONE Messenger Express.
Customization of Users’ Default LDAP AttributesThe Messenger Express server loads a default set of LDAP attributes for a user at the start of a session. These attributes are as follows:
For more information on the attributes required or allowed by LDAP object classes for Sun ONE Messenger Express, see Chapter 3 Attributes in the Sun One Messaging and Collaboration Schema Reference Manual at:
http://docs.sun.com/db/prod/s1msgsrv#hic
You might want to obtain other customized LDAP attributes from the server. For example, an ISP might have a custom LDAP attribute assigned to all users called myuserclass. This attribute could denote different types of users that access services, including Messenger Express. Possible values for this attribute are “regular” and “vip”.
Note
Before adding custom attributes to the directory, ensure that the directory schema supports these new attributes. The global set of schema for Directory Server can be found in the entry named cn=schema.
For more information on extending directory schema, see Sun ONE Directory Server Deployment Guide at:
http://docs.sun.com/db/prod/s1dirsrv#hic
After extending the directory schema, you can add the new attribute to a User or a group entry. To add custom attribute to a User entry you will need to modify the entry in servletsconf section using the ldapmodify command. For more information on ldapmodify command, see Sun ONE Directory Server Configuration, Command, and File Reference at:
Depending on the type of user (that is, the value of the myuserclass LDAP attribute), different advertisement are presented to the user when they log into Messenger Express (Messenger Express is customized to display banner advertisement). If the customized client has access to the myuserclass LDAP attribute, the type of user can be determined and the relevant banner advertisement for that user type is displayed.
To obtain other customized LDAP attributes from the server, use configutil to modify the service.http.extrauserldapattrs configuration parameter. The attributes are read-only by default. If the user wants to modify an attribute using the Messenger Express code, that attribute needs to be marked read-write by appending the suffix w.
The example below assumes the user wants to display banner advertisements depending on the class of the user and that the client program allows the user to edit a link to a home page:
configutil -l -o service.http.extrauserldapattrs -v “myuserclass,homepage:w “
Customizing Address Search to Return More LDAP AttributesThis section describes how to customize the Address Book Search to return more LDAP attributes.
You need to perform the following tasks to customize the Address Book Search to return more LDAP attributes:
For example, to customize the Address Book Search to return an additional LDAP attribute pager, perform the following steps:
- Include the LDAP attribute pager to the list of LDAP attributes in the config attribute local.service.http.ldapaddresssearchattrs using the configutil utility:
- Add the following line to the s_SearchCtrl() function in the lookup.fs file:
....
' <select name="attr">\n' +
....
'<option value="'+ main.attr_list['telephonenumber']+'">Phone #</option>\n' +
'<option value="'+ main.attr_list['pager']+'"">Pager #</option>\n' +
'</select>\n' +
....
- Add the following lines to the getSearchResults() function in the lookup.js file:
if(forGroup) s = '<form name="form">\n' + main.tableStart +
....
'<td width=1% nowrap><nobr>' + main.font() + (pab ? i18n_lu['work'] : i18n['ldap phone']) '</td>\n'+
'<td width=1% nowrap><nobr>' + main.font() + (pab ? i18n_lu['pager'] : i18n['ldap pager']) +'</td>
else s = '</form><form name="form">\n' + main.tableStart +
'<td width=1% nowrap><nobr>' + main.font() + (pab ? i18n_lu['work'] : i18n['ldap phone']) '</td>\n'+
'<td width=1% nowrap><nobr>' + main.font() + (pab ? i18n_lu['pager'] : i18n['ldap pager']) +'</td>
....
- Add the following lines to the lookup.js file:
....
if (list[i].telephoneNumber)
s += '<td nowrap>' + main.font() +
main.unescape_crlf(list[i].telephoneNumber) + '</td>\n';
else if (list[i].telephonenumber)
s += '<td nowrap>' + main.font() +
main.unescape_crlf(list[i].telephonenumber) + '</td>\n';
else
s += blank;
if (list[i].pager)
s += '<td nowrap>' + main.font() +
main.unescape_crlf(list[i].pager) + '</td>\n';
else if (list[i].pager)
s += '<td nowrap>' + main.font() +
main.unescape_crlf(list[i].pager) + '</td>\n';
else
s += blank;
s += '\n';
}
....
- Add the following line to the updatePabAttrList() function in the main.js file:
Domain Specific CustomizationThis section describes how to customize the Messenger Express client interface for each domain.
You can perform the following tasks to customize the Messenger Express client interface:
- Create a directory with the domain name under msg_svr_base/html directory.
- Populate this directory with the customized versions of the files from the original directory hierarchy.
For example, assume that you have a domain called siroe. To change the icon for siroe domain, add a new icon in the imx directory of siroe.com and change the reference to it in the main.js file. The following is the directory structure for the domain siroe.com
Table 4-2 Directory Structure for the Domain siroe.com
html/...
// default interface
html/imx/...
// default interface
html/en/...
// default interface
html/siroe.com/main.js
// refers to imx/bottle.gif
html/siroe.com/imx/bottle.gif
- After login, the server refers the user agent to pick the main.html file which is located in the domain/lang directory. The main.html file contains the relative references to the rest of the interface. The client requests all the files in the directory to make the interface. If these files exist in the domain/lang directory, they are displayed otherwise the default setup files from html/en/ are displayed.
If you have many domains and only a few distinct ‘brands’ then you can use links to make the server point to the correct brand:
Domain From URL
The server listens to all IP addresses and can present a customized interface before the authentication occurs. The server does this by looking at the URL and determines if it contains a known domain and presents the per domain Login screen for the domain.
For example, for the per domain Login screen: http://webmail.sesta.com/, the server presents the page from the location: html/sesta.com/en/default.html.
In this case a user does not have to suffix @domain to the username to login.