6 Convergence Messaging Customization Examples

This chapter provides several examples for customizing the messaging service in Oracle Communications Convergence.

Customization Requirements

To perform any Convergence customization, you should have expert knowledge in dojo and knowledge of UI customization. For more information on general Convergence customization, see "Technical Overview".

Nearly all customization examples require the same setup and preparation.

  • You start by verifying that the c11n_Home directory exists. If it does not exist, create it.

    See "Customization Directory Structure" for more information.

  • Next, you verify that customization is enabled in Convergence. If customization is disabled, enable it.

    See "Enabling Customization in the Convergence Server" for more information.

  • When you have completed your customization, you must restart the Oracle certified application server for Convergence.

    See Convergence System Administrator's Guide for more information.

Changing the Mail Forward Default from As Attachment to Inline

When you click the Forward button to forward an email message, a two options display: As Attachment and Inline. If you do not choose either of these options, the default, As Attachment, is selected. This Convergence customization example describes how to change the mail forward default from As Attachment to Inline:

  1. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  2. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  3. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/js/widget/mail
    /c11n_Home/allDomain/nls
    
  4. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  5. Modify config.js so that it enables JavaScript customization and i18n customization across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: true, // true if i18n is customized
                   jsEnabled: true // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  6. In c11n_Home/allDomain/js, create or modify customize.js (the domain specific customization) to include the following code:

    dojo.provide("c11n.allDomain.js.customize");
         
    dojo.require("c11n.allDomain.js.widget.mail.OpenFolder");
    dojo.require("c11n.allDomain.js.widget.mail.OpenMessage");
    
  7. In c11n_Home/allDomain/js/widget/mail, create a JavaScript file (OpenFolder.js) that changes the mail forward default from As Attachment to Inline in the mail.OpenFolder widget.

    dojo.provide("c11n.allDomain.js.widget.mail.OpenFolder");
    
    dojo.require("iwc.widget.mail.OpenFolder");
    
    dojo.declare("iwc.widget.mail.OpenFolder", iwc.widget.mail.OpenFolder, {
            postCreate: function() {
                    this.inherited(arguments);
    
                    this._origOnForwardMessageInline = this.onForwardMessageInline;
                    this._origOnForwardMessageAttach = this.onForwardMessageAttach;
    
                    this.onForwardMessageInline = dojo.hitch(this, function() {
                            this._origOnForwardMessageAttach(arguments);
                    });
    
                    this.onForwardMessageAttach = dojo.hitch(this, function() {
                            this._origOnForwardMessageInline(arguments);
                    });
            },
    
    
            last: ""
    
    });
    
  8. In c11n_Home/allDomain/js/widget/mail, create a JavaScript file (OpenMessage.js) that changes the mail forward default from As Attachment to Inline in the mail.OpenMessage widget.

    dojo.provide("c11n.allDomain.js.widget.mail.OpenMessage");
    
    dojo.require("iwc.widget.mail.OpenMessage");
    
    dojo.declare("iwc.widget.mail.OpenMessage", iwc.widget.mail.OpenMessage, {
            postCreate: function() {
                    this.inherited(arguments);
    
                    this._origForwardMessageInline = this.forwardMessageInline;
                    this._origForwardMessageAttach = this.forwardMessageAttach;
    
                    this.forwardMessageInline = dojo.hitch(this, function() {
                            this._origForwardMessageAttach(arguments);
                    });
    
                    this.forwardMessageAttach = dojo.hitch(this, function() {
                            this._origForwardMessageInline(arguments);
                    });
            },
    
    
            last: ""
    
    });
    
  9. In c11n_Home/allDomain/nls, create a default resource file named resources.js to contain the new labels in the UI.

  10. Modify resources.js to include the following code:

    {       
        forward_attach_item: "Inline",
        forward_inline_item: "As Attachment",
    }
    
  11. Restart the Oracle certified application server and clear the browser cache to see the change.

Changing Default Folder Mappings for Sent and Deleted Messages

By default, copies of sent messages are mapped to the Sent folder and deleted messages are mapped to the Trash folder. You can change the default folder names for the Sent folder and Trash folder. Users can then map sent and deleted messages to the folder names in the Mail Options General tab.

  1. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  2. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  3. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/js/widget/
    
  4. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  5. Modify config.js so that it enables i18n customization (i18nEnabled: true) across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: true, // true if i18n is customized
                   jsEnabled: false // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  6. In c11n_Home/allDomain/js, create or modify customize.js (the domain specific customization) to include the following code:

    dojo.provide("c11n.allDomain.js.customize");
    
    // Change the default folder mappings from Sent and Trash to Sent Messages and Deleted Messages.
    iwc.systemPrefs.mail.defaultImapSystemFolders.trash = "Deleted Messages";
    iwc.systemPrefs.mail.defaultImapSystemFolders.sent = "Sent Messages";
    
  7. In c11n_Home/allDomain/nls, edit resources.js by deleting the sample content and adding the following code:

    {
            "trash": "Deleted Messages",
            "sent_items": "Sent Messages",
    
            last: ""
    }
    
  8. Restart the Oracle certified application server and clear the browser cache to see the change.

    In the Messaging section of the UI, the Sent Messages and Deleted Messages folder appear below the Inbox folder.

    On the Mail Options General tab, the user can select to copy sent messages to the Sent Messages folder, and can select to move deleted messages to the Deleted Messages folder.

Changing From: Address to Only Include Email Address

This customization example describes how to change the From: address to only include the email address (not cn):

  1. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  2. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  3. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/js/mail/
    
  4. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  5. Modify config.js so that it enables JavaScript customization (jsEnabled: true) across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: false, // true if i18n is customized
                   jsEnabled: true // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  6. In c11n_Home/allDomain/js, create or modify customize.js (the domain specific customization) to include the following code:

    dojo.provide("c11n.allDomain.js.customize");
         
    dojo.require("c11n.allDomain.js.widget.mail.CreateMessage");
    
  7. In c11n_Home/allDomain/js/widget/mail, create a JavaScript file (CreateMessage.js) that changes the From: address to only include the email address.

    dojo.provide("c11n.allDomain.js.widget.mail.CreateMessage");
    dojo.require("iwc.widget.mail.CreateMessage");
    dojo.declare("iwc.widget.mail.CreateMessage", iwc.widget.mail.CreateMessage, {
         
           postCreate: function() {
                   // remove the sender id displayname
                   dojo.forEach(iwc.userPrefs.senderidentities.identity, function(id) {
                           id.displayname = "";
                   });
         
                   this.inherited(arguments);
           },
         
           last: ""
         
    });
    
  8. Restart the Oracle certified application server and clear the browser cache to see the change.

Changing or Removing the Signature Separator

When a user composes an email using Convergence, Convergence auto-inserts a signature separator "-- " on a separate line before the user's email signature (if the user has configured an email signature).

You can change or remove the signature separator.

  1. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  2. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  3. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/js/widget/mail
    
  4. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  5. Modify config.js so that it enables JavaScript customization (jsEnabled: true) across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: false, // true if i18n is customized
                   jsEnabled: true // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  6. In c11n_Home/allDomain/js, create or modify customize.js (the domain specific customization) to include the following code:

    dojo.provide("c11n.allDomain.js.customize");
     
    dojo.require("c11n.allDomain.js.widget.mail.CreateMessage");
    
  7. In c11n_Home/allDomain/js/widget/mail, create CreateMessage.js to specify the desired "signatureSeparator".

    The default signature separator is "-- ". To remove the signature separator, set it to "".

    dojo.provide("c11n.allDomain.js.widget.mail.CreateMessage");
     
    dojo.require("iwc.widget.mail.CreateMessage");
     
    dojo.require("iwc.api");
     
    dojo.declare("iwc.widget.mail.CreateMessage", iwc.widget.mail.CreateMessage, {
      signatureSeparator: "",
      last: ""
     
    });
    
  8. Restart the Oracle certified application server and clear the browser cache to see the change.

  9. Log into Convergence, create an email signature, and create a new email message. The signature separator is changed.

Modifying Mail Folder Icons in the Service Navigator

This example describes how to customize the mail folder icons in the service navigator.

As with other Convergence elements, your customization can apply to a particular domain, or it can be applied to all domains. The following example uses the allDomain directory to modify the mail folder icons in all domains in the deployment:

  1. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  2. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  3. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/js/
    /c11n_Home/allDomain/layout/css/
    
  4. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  5. Modify config.js so that it enables JavaScript customization (jsEnabled: true) across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: false, // true if i18n is customized
                   jsEnabled: true // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  6. In c11n_Home/allDomain/js, create or modify customize.js (the domain specific customization) to include the following code:

    dojo.provide("c11n.allDomain.js.customize");
    
    // Load Customized CSS File Helper
    var loadCustomizedCssFile = function(url, id) {
            if (!id){
                    id = url.replace(/\.\./gm, "").replace(/\//gm, "_").replace(/\./gm, "_");
            }
            var link = window.document.getElementById(id);
            if (! link) {
                    link = window.document.createElement("link");
                    link.setAttribute("id", id);
                    link.setAttribute("type", "text/css");
                    link.setAttribute("rel", "stylesheet");
                    var head = window.document.getElementsByTagName("head")[0];
                    head.appendChild(link);
            }
    
            link.setAttribute("href", url + "?" + djConfig.cacheBust);
    }
    
    // Load customized css file c11n_icons
    loadCustomizedCssFile("../c11n/allDomain/layout/css/c11n_icons.css");
    
  7. Add new icons or an icon sprite (a single image that contains multiple icons) to the c11n_Home/allDomain/layout/images directory. The following table lists the default mail icons and equivalent new, red mail folder icons for the service navigator that are being added in this example:

    Table 6-1 Default and New Icons in Service Navigator Example

    Icon Default Image New Image New Image File Name

    Root Folder

    root folder default icon

    root folder example replcament icon

    options.IconMail_new_red.png

    Inbox Folder

    inbox folder default icon

    inbox folder example replacement icon

    optionsIconMail_new_red.png

    Shared Folder and Trash Folder Sprite

    shared and trash folder default sprite

    shared and trash folder example replacement sprite

    MailFolders_new_red.png

    Sent Folder

    sent folder default icon

    sent folder example replacement icon

    treeMailSent_new_red.png

    Drafts Folder

    drafts folder default icon

    drafts folder example replacement icon

    treeMailDrafts_new_red.png


  8. In c11n_Home/allDomain/layout/css, create clln_icons.css to point to the new image icons or sprite. In this example, the background-image points to the new images in c11n_Home/allDomain/layout/images/:

    /* Personal Mail Icon */
    .FolderIcons {
       width: 16px;
       height: 16px;
       background-repeat:no-repeat;
       background-position:top left;
       background-image:url("../images/treeMailFolderPersonal_new_red.png");
    }
    
    /* Root Folder Icon */
    .FolderIcons_Root {
      background-image: url("../images/optionsIconMail_new_red.png");
      background-repeat: no-repeat;
      background-position: center center;
      background-color: transparent;
    }
    
    /* Inbox Folder Icon */
    .FolderIcons_Inbox {
      background-image: url("../images/treeMailInbox_new_red.png");
      background-repeat: no-repeat;
      background-position: center center;
      background-color: transparent;
    }
    
    /* Trash Folder Icon */
    .FolderIcons_Shared {
      background-image: url("../images/MailFolders_new_red.png");
      background-repeat: no-repeat;
      background-position: 0 0px;
      background-color: transparent;
    }
    
    /* Trash Folder Icon */
    .FolderIcons_Trash {
      background-image: url("../images/MailFolders_new_red.png");
      background-repeat: no-repeat;
      background-position: 0 -102px;
      background-color: transparent;
    }
    
    /* Sent Folder Icon */
    .FolderIcons_Sent {
      background-image: url("../images/treeMailSent_new_red.png");
      background-repeat: no-repeat;
      background-position: center center;
      background-color: transparent;
    }
    
    /* Drafts Folder Icon */
    .FolderIcons_Drafts {
      background-image: url("../images/treeMailDrafts_new_red.png");
      background-repeat: no-repeat;
      background-position: center center;
      background-color: transparent;
    }
    
    /* Subscribe to Folder Icon */
    .FolderIcons_Subscribed {
      background-image: url("../images/MailFolders_new_red.png");
      background-repeat: no-repeat;
      background-position: 0 -68px;
      background-color: transparent;
    }
    
  9. Restart the Oracle certified application server to clear the browser cache and view the change.

Removing Folder Sharing and Subscribing Menu Options

While you can disable folder sharing and folder subscriptions with the following commands:

iwcadmin -o mail.restrictanyone -v true

And

configutil -o store.privatesharedfolders.restrictanyone -v 1

The Share Folder and Subscribe To Folder menu options still appear in the UI.

To remove these menu options from the UI:

  1. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  2. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  3. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/js/widget/
    
  4. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  5. Modify config.js so that it enables JavaScript customization (jsEnabled: true) across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: false, // true if i18n is customized
                   jsEnabled: true // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  6. In c11n_Home/allDomain/js, create or modify customize.js (the domain specific customization) to include the following code:

    dojo.provide("c11n.allDomain.js.customize");
    
    // Remove folder sharing and subscribing menu options from the drop-down menus
    dojo.require("c11n.allDomain.js.widget.mail.Navigator");
    
  7. In c11n_Home/allDomain/js/widget/mail, create the JavaScript customization file (Navigator.js) to remove folder sharing and subscribing menu options from the drop-down menus.

    dojo.provide("c11n.allDomain.js.widget.mail.Navigator");
     
    dojo.require("iwc.widget.mail.Navigator");
     
    dojo.declare("iwc.widget.mail.Navigator", iwc.widget.mail.Navigator, {
      l10n: iwc.api.getLocalization(),
     
      postCreate: function() {
        this.inherited(arguments);
        var _this = this;
     
        // hide the dropdown menu
        dojo.style(this.folderSubscribeButton.domNode, "display", "none");
        dojo.style(this.folderPropertiesButton.domNode, "display", "none");
     
        // create new button for "New Folder" and "Properties"
        var btnNewFolder = new dijit.form.Button(
          {
            label: this.l10n.create_folder,
            onClick: dojo.hitch(this, "onCreateFolder"),
            iconClass: "FoldersActionMenuNewFolderIcon"
          }
        );
        dojo.place(btnNewFolder.domNode, this.folderSubscribeButton.domNode, "before");
     
        var btnProperties = new dijit.form.Button(
          {
            label: this.l10n.folder_properties,
            onClick: dojo.hitch(this, "onFolderProps"),
            iconClass: "propertiesIcon"
          }
        );
        dojo.place(btnProperties.domNode, this.folderSubscribeButton.domNode, "before");
     
        // remove any share/subscribe/unsubscribe from context menu
        dojo.each(this._menuItems,
          function(o) {
            _this._menuItems[o.key] = dojo.filter(o.value,
              function(menuItem) {
                return (menuItem.label != _this.l10n.folder_sharing &&
                menuItem.label != _this.l10n.unsubscribe_folder);
              }
            );
          }
        );
      },
     
      last: ""
     
    });
    
  8. Restart the Oracle certified application server and clear the browser cache to see the change.

Removing the Local Account Mail Forwarding Option

By default, users can set up their local account to automatically forward all incoming email messages.

You can configure Convergence to remove the Mail Local Account Forwarding option.

  1. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  2. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  3. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/js/widget/option/
    
  4. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  5. Modify config.js so that it enables JavaScript customization (jsEnabled: true) across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: false, // true if i18n is customized
                   jsEnabled: true // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  6. In c11n_Home/allDomain/js, create or modify customize.js (the domain specific customization) to include the following code:

    dojo.provide("c11n.allDomain.js.customize");
     
    dojo.require("c11n.allDomain.js.widget.option.Navigator");
    
  7. In c11n_Home/allDomain/js/widget/option, create Navigator.js to include the following code:

    dojo.provide("c11n.allDomain.js.widget.option.Navigator");
     
    dojo.require("iwc.api");
    dojo.require("iwc.widget.option.Navigator");
     
    dojo.declare("iwc.widget.option.Navigator", iwc.widget.option.Navigator,
         {
             postCreate: function() {
     
                  //call the superclass postCreate
                  this.inherited(arguments);
     
                  //remove the Vacation Message option
                  //iwc.api.removeOption("/Mail/Local Account/Vacation Message");
     
                  //remove the Mail Forwarding option
                  iwc.api.removeOption("/Mail/Local Account/Forward");
     
                  //remove Mail Filters option
                 //iwc.api.removeOption("/Mail/Local Account/Mail Filters");
     
             },
     
             last: ""
         }
    );
    

    Note:

    The code to remove "Forwarding" is iwc.api.removeOption("/Mail/Local Accounts/Forward"); not Forwarding.
  8. Restart the Oracle certified application server and clear the browser cache to see the change.

Removing the Move Button in the Mail Open Folder

The following example deletes the Move button in Account Setting in the Mail Open Folder for users in all domains.

  1. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  2. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  3. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/js/widget/
    
  4. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  5. Modify config.js so that it enables JavaScript customization (jsEnabled: true) across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: false, // true if i18n is customized
                   jsEnabled: true // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  6. In c11n_Home/allDomain/js, create or modify customize.js (the domain specific customization) to include the following code:

    dojo.provide("c11n.allDomain.js.customize");
    
    // Delete Move Button in Mail Option Folder
    dojo.require("c11n.allDomain.js.widget.mail.OpenFolder");
    
  7. In c11n_Home/allDomain/js/widget/mail, create the JavaScript file (OpenFolder.js) which deletes the Move button.

    dojo.provide("c11n.allDomain.js.widget.mail.OpenFolder");
    
    dojo.require("iwc.widget.mail.OpenFolder");
    
    dojo.declare("iwc.widget.mail.OpenFolder", iwc.widget.mail.OpenFolder, {
            buildRendering: function() {
                    // invoke the original buildRendering()
                    this.inherited(arguments);
    
                    dojo.addClass(this.moveButton.domNode, "dijitHidden");       // remove the button
                    dojo.addClass(this.moveMenuItem.domNode, "dijitHidden");     // remove the menu item
                   
            },
    
            last: ""
    
    });
    
  8. Restart the Oracle certified application server and clear the browser cache to see the change.

Removing the Reply-To Address Option

The following example hides the Reply-To: Account Setting in the Mail option for users in all domains.

  1. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  2. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  3. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/js/widget/mail/option/
    
  4. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  5. Modify config.js so that it enables JavaScript customization (jsEnabled: true) across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: false, // true if i18n is customized
                   jsEnabled: true // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  6. In c11n_Home/allDomain/js, create or modify customize.js (the domain specific customization) to include the following code:

    dojo.provide("c11n.allDomain.js.customize");
    
    // Hide replyTo Option from the Mail Account Settings
    dojo.require("c11n.allDomain.js.widget.mail.option.Identity");
    
  7. In c11n_Home/allDomain/js/widget/mail/option, create the JavaScript file (Identity.js) which hides the Reply-To: option. This example uses the dojoAttachPoint="replyTo" value in the Convergence_Domain/docroot/iwc_static/js/debug/iwc/widget/templates/mail/option/Identity.html file to determine the appropriate location in the DOM-tree to make the modification.

    dojo.provide("c11n.allDomain.js.widget.mail.option.Identity");
    dojo.require("iwc.widget.mail.option.Identity");
    dojo.declare("iwc.widget.mail.option.Identity", iwc.widget.mail.option.Identity, {
    
            buildRendering: function() {
                    this.inherited(arguments);
    
                    // Hide the replyTo option field and the associated text
                    var replyToParent = this.replyTo.domNode.parentNode;
    
                    // go up one level because this.replyTo is a container widget
                    replyToParent.parentNode.style.display = "none";
    
            },
    
            last: ""
    
    });
    
  8. Restart the Oracle certified application server and clear the browser cache to see the change.

Restricting OutGoing Mail with Local Account Identity Parameters

If you do not want to disable external POP account access, but you want to control what appears in the From menu for addressing, the following customization example only allows outgoing mail to use the parameters in the local account identity:

To fully disable POP account functionality and to hide External Accounts in the Options panel in Mail, see "Disabling External POP Account Access" for more information.

  1. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  2. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  3. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/js/widget/option/
    
  4. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  5. Modify config.js so that it enables JavaScript customization (jsEnabled: true) across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: false, // true if i18n is customized
                   jsEnabled: true // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  6. In c11n_Home/allDomain/js, create or modify customize.js (the domain specific customization) to include the following code:

    dojo.provide("c11n.allDomain.js.customize");
    
    dojo.require("c11n.allDomain.js.widget.mail.CreateMessage");
    
  7. In c11n_Home/allDomain/js/widget/mail/, create or modify the Javascript file (CreateMessage.js) to only allow outgoing mail to use the parameters in the local account identity:

    dojo.provide("c11n.allDomain.js.widget.mail.CreateMessage");
    
    dojo.require("iwc.widget.mail.CreateMessage");
    
    dojo.declare("iwc.widget.mail.CreateMessage", iwc.widget.mail.CreateMessage, {
    onToggleOptions: function(checked)  {
          this.inherited(arguments);
          dojo.addClass(this.senderIdSelect.domNode, "dijitHidden");
    }
    
    });
    
  8. Restart the Oracle certified application server and clear the browser cache to see the change.

Hiding User-Created Folder Names

By default, sent messages are mapped to the Sent folder, deleted messages are mapped to the Trash folder, spam messages are mapped to the Spam folder, and drafts are mapped to the Drafts folder. Users can map their sent messages, drafts, deleted messages, and spam messages to custom folders.

You can customize Convergence such that the custom folder name is hidden and the default name is used.

  1. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  2. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  3. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/nls/
    
  4. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  5. Modify config.js so that it enables i18n customization (i18nEnalbed: true) across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: true, // true if i18n is customized
                   jsEnabled: false // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  6. In the /nls directory, create the customization file (resources.js).

  7. In resources.js, add the following text strings:

    custom_folder_drafts: "Drafts",
    custom_folder_trash: "Trash",
    custom_folder_sent: "Sent",
    custom_folder_spam: "Spam",
    

    This customized resources file inherits the default values in the standard resources file and extends them with the new, custom values. At run time, the resources.js file in the default directory is loaded first; then the resources.js in this customization directory is loaded. Thus, Convergence first loads the standard values (including UI widget labels) in the default resources file; it then overrides those values with any customizations in this resources file.

    Similarly, for each language you want to hide the user-created folders, create a language directory and its own resources.js. For example, to hide the user-created folders for French, create resources.js in c11n_Home/allDomain/nls/fr. In resources.js, add the following code:

    custom_folder_drafts: "Brouillons",
    custom_folder_trash: "Corbeille",
    custom_folder_sent: "Envoy\303\251",
    custom_folder_spam: "Courrier ind\303\251sirable",
    
  8. Restart the Oracle certified application server and clear the browser cache to see the change.

Adding Additional Spell Checker Dictionaries

When a user clicks on the spell-check button in the Convergence email compose window, the email data to be checked is sent to the configured Messaging Server system, which then scans and detects incorrectly spelt words and offer alternate suggestions back to Convergence.

The user can then select between these alternate suggestions and fix incorrectly spelt words that were detected.

The user is also able to select between several pre-configured Messaging Server dictionaries (English, Spanish, German, French). Additional dictionaries can be added in a two step process.

  • Generating a new ispell formatted dictionary hash which is used by Messaging Server to spell check new emails.

  • Modifying the existing Convergence Spell Check option to include the new dictionary as an option for the end-user.

Although it is possible to create ispell formatted dictionary files from scratch, the process is very time-consuming and is not-recommended if a pre-existing dictionary can be found and modified as required.

The following external website has a list of a number of common language ispell formatted dictionaries which can be used as a template for your own custom dictionary:

http://fmg-www.cs.ucla.edu/fmg-members/geoff/ispell-dictionaries.html

For this example we will add an Italian (it) dictionary to Messaging Server and Convergence.

  1. Download the Italian ispell dictionary and affix file archive (ispell-it2001.tgz) from the following website:

    http://members.xoom.it/trasforma/ispell

    The required files from this archive are italian.aff and italian.words.

  2. Generate the Messaging Server ispell dictionary hash file

    Note:

    The ispell dictionary hash needs to be created on the system configured in the following Convergence option:

    iwcadmin -o mail.host

    cd msg_svr_base/lib
    buildhash dictionary_file affix_file language_name.hash
    

    For example:

    buildhash /tmp/italian.words /tmp/italian.aff ./it.hash
    

    Verify that the newly created language_name.hash file has the same permissions and ownership as the existing

    language_name.hash files in the msg_svr_base/lib directory.
    
  3. Add new language code to the supported languages list in Messaging Server Run the following command to see the existing list of supported languages.

    configutil -o local.supportedlanguages
    

    If you do not see the language_name listed in the above output, add it to the list e.g.

    configutil -o local.supportedlanguages -v "[.............,it]"
    
  4. Restart the Messaging server mshttpd process

    stop-msg http;./start-msg http
    
  5. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  6. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  7. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/js/widget/
    /c11n_Home/allDomain/nls/
    
  8. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  9. Modify config.js so that it enables JavaScript customization (jsEnabled: true) and i18n customization (i18nEnalbed: true) across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: true, // true if i18n is customized
                   jsEnabled: true // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  10. In c11n_Home/allDomain/nls, create the Javascript file (resources.js) to define the localized label for the "Italian" dictionary.

    {
            options_global_it : "Italian",  // Added Italian ("it") to the list of available dictionaries.
                                            // The "it" language code must match the {{it.hash}} file added to Messaging Server.
            last: ""
    }
    
  11. (Optional) To make the label different for each locale, do the following:

    1. Add a localization directory for the locale. For example:

      c11n_Home/allDomain/nls/it
      
    2. In c11n_Home/allDomain/nls/it/, create a Javascript file (resources.js) in the specified locale to display the label. For example:

      {
              options_global_it : "Italiano",  // Added Italian ("it") to the list of available dictionaries.
                                               // The "it" language code must match the {{it.hash}} file added to Messaging Server.
              last: ""
      }
      
  12. Restart the Oracle certified application server and clear the browser cache to see the change.

Customizing the Attachment Blacklist and Whitelist

You can customize the Oracle Outside In Transformation Server blacklist to prevent certain types of attachments from being sent to the transformation server, such as ZIP files or EXE files.

Also, you can customize the Oracle Outside In Transformation Server whitelist to specify types of attachments that are sent to the transformation server, such as DOC files or XLS files.

Each time an attachment preview is requested by a user, the Outside In Proxy consults both the blacklist and the whitelist to determine whether to send the attachment to the transformation server.

See Convergence System Administrator's Guide for more information about Outside In Transformation Server.

To customize the transformation server blacklist or whitelist:

  1. Verify that the c11n_Home directory exists. If c11n_Home does not exist, create it.

  2. Verify that customization is enabled in Convergence. If customization is disabled, enable it.

  3. In c11n_Home, verify that the following directories exist. If they do not exist, create them:

    /c11n_Home/allDomain/js/
    
  4. In c11n_Home, verify that config.js exists. If it does not exist, create it.

  5. Modify config.js so that it enables JavaScript customization (jsEnabled: true) across all domains (module: "allDomain").

    dojo.provide("c11n.config");
    c11n.config = {
          
            // allDomain configuration
            allDomain: {
                   module: "allDomain", // module name
                   themeEnabled: false, // true if theme is customized
                   i18nEnabled: false, // true if i18n is customized
                   jsEnabled: true // true if js is customized
          
                   // the last entry must not end with comma
          
            }
    }
    
  6. In c11n_Home/allDomain/js, create or modify customize.js (the domain specific customization) to include the following code:

    iwc.config.oin
      mimeTypes: {
        whiteList: [
          ["*", "*"]
        ],
        blackList: [ // ignore exe and zip files
          ["application", "octet-stream"],
          ["application", "x-msdownload"],
          ["application", "x-compressed"],
          ["application", "x-zip-compressed"],
          ["application", "zip"],
          ["application", "x-zip"]
        ]
      }
    
  7. To customize the whitelist:

    In customize.js, add or remove file I'm types after the line whiteList: [.

    By default, the whitelist consists of the code ["*", "*"], which means that all attachment types (excluding those in the blacklist) are sent to the transformation server.

    You can update the whitelist to enumerate a limited and specific list of attachment types. For example, to allow only DOC, XLS, and PPT attachment types to be sent to the transformation server:

        whiteList: [
          ["application", "doc"]
          ["application", "xls"]
          ["application", "ppt"]
        ],
    
  8. To customize the blacklist:

    In customize.js, add or remove file types after the line blackList: [. For example, to prevent PDF files from being sent to the transformation server:

        blackList: [ // ignore exe and zip files
          ["application", "pdf"],
          ["application", "octet-stream"],
          ["application", "x-msdownload"],
          ["application", "x-compressed"],
          ["application", "x-zip-compressed"],
          ["application", "zip"],
          ["application", "x-zip"]
        ]
    
  9. Restart the Oracle certified application server.