Customizing the HCL Verse Navigation Bar

HCL Verse offers several extension points that allow you to modify, customize, and enhance functionality. One handy extension point lets you modify the navigation bar at the top of the screen. With it, you can add or remove menu items and organize them into groups.

When preparing demo or proof-of-concept (PoC) Domino deployments, I often integrate Verse with other HCL Digital Solutions portfolio products, such as Sametime and Connections. I customized the navigation bar to give end users easy access to these tools within the Verse UI.

Over time, my configuration has evolved into the following setup:

  • Remove iNotes link
  • Add Sametime: Chat, Meetings
  • Add Connections: Profiles, Files
  • Add Domino Leap link
  • Add OnTime Group Calendar links

How to Deploy

Deployment is straightforward:

  1. Copy the example applications.json file (from the end of this article) and modify it:

    • Replace the server hostnames with your own.
    • Remove sections you don’t need.
  2. Place the JSON file into your Domino Data directory (e.g., /local/notesdata).

  3. Configure the server by adding the following notes.ini parameters:

VOP_EXTENSIBILITY_DATA_PROVIDER_NAME=localFileProvider
VOP_Extensibility_Applications_Json_FilePath=/local/notesdata/applications.json
  1. Verify that the Verse navigation bar reflects your modifications.

Templating the Configuration

Since the configuration file is in JSON format, converting it into a reusable template is easy. You can use placeholders for server hostnames and conditionally include sections based on parameters (e.g., Sametime integration: Yes/No, Connections integration: Yes/No, OnTime Calendar: Yes/No).

I use this approach in my Ansible script to automate Domino deployments and configuration.

Additional Resources


Code Example - applications.json

[
  {
    "name": "Navbar Extension",
    "description": "HCL Verse Navbar extension",
    "title": "Navbar extenstion",
    "extensions": [
      {
        "name": "Delete the HCL iNotes menu",
        "type": "com.ibm.action.delete",
        "path": ".mailswitchdom",
        "description": "Delete the HCL iNotes menu"
      },
      {
        "type": "com.ibm.action.menu",
        "path": "com.ibm.navbar.order.30000",
        "name": "CollaborationMenuContainer",
        "description": "New menu group",
        "title": "Collaboration"
      },
      {
        "type": "com.ibm.action.menu.link",
        "path": "CollaborationMenuContainer.a",
        "name": "collaboration.chat",
        "description": "Sametime Chat link",
        "payload": {
          "link": "https://sametime.example.com/chat",
          "target":"_blank"
        },
        "title": "Chat"
      },
      {
        "type": "com.ibm.action.menu.link",
        "path": "CollaborationMenuContainer.b",
        "name": "collaboration.meetings",
        "description": "Sametime Meetings link",
        "payload": {
          "link": "https://sametime.example.com/meeting",
          "target":"_blank"
        },
        "title": "Meetings"
      },
      {
        "type": "com.ibm.action.menu.link",
        "path": "CollaborationMenuContainer.c",
        "name": "collaboration.profiles",
        "description": "Profiles link",
        "payload": {
          "link": "https://connections.example.com/profiles/html/searchProfiles.do",
          "target":"_blank"
        },
        "title": "Org Directory"
      },
      {
        "type": "com.ibm.action.menu.link",
        "path": "CollaborationMenuContainer.d",
        "name": "collaboration.files",
        "description": "Files link",
        "payload": {
          "link": "https://connections.example.com/files",
          "target":"_blank"
        },
        "title": "Files"
      },
      {
        "type": "com.ibm.action.menu.link",
        "path": "CollaborationMenuContainer.e",
        "name": "collaboration.leap",
        "description": "Leap link",
        "payload": {
          "link": "https://domino.example.com/volt-apps/",
          "target":"_blank"
        },
        "title": "Web Apps"
      }
    ],
    "services": [
      "Verse"
    ]
  },

  {
    "name" : "OnTimeGC",
    "title" : "OnTime Group Calendar",
    "description" : "OnTime Group Calendar intgration in Verse",
    "services" : [
      "TopNavigationBar",
      "Verse"
    ],
    "extensions" : [
      {
        "type" : "com.ibm.action.link",
        "name" : "OnTime_Calendar_Link",
        "title" : "OnTime",
        "description" : "OnTime Group Calendar",
        "path" : "com.ibm.navbar.order.4000",
        "payload" : {
          "link" : "https://domino.example.com/ontime/client.nsf/desktopverse#",
          "target" : "ontimegcverse"
        }
      },
      {
        "type" : "com.ibm.verse.ext.widget",
        "name" : "OnTime_Calendar_MailRead",
        "payload" : {
          "url" : "https://domino.example.com/ontime/client.nsf/versewidget",
          "features" : [
            "core"
          ],
          "actions" : [
            {
              "id" : "com.ibm.verse.ext.mail.read.action",
              "path" : "mail.read",
              "text" : "Create OnTime Poll",
              "title" : "OnTime Pollarity",
              "location" : "tab",
              "icon" : "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTAgMjUwIiB3aWR0aD0iMzAiIGhlaWdodD0iMzAiPgoJPHBhdGggZD0iTTIzOC42NSw1NS4xOEE5OS4xMyw5OS4xMywwLDAsMCwyMjUuMywzNS4xMiw5Nyw5NywwLDAsMCwyMDksMjAuMDZhMTAwLjE2LDEwMC4xNiwwLDAsMC0xNi41OS05LjgyLDEwNiwxMDYsMCwwLDAtMjAuNy03LjE4LDExNS4yOSwxMTUuMjksMCwwLDAtMjItMywxMjQuNzUsMTI0Ljc1LDAsMCwwLTIxLjkyLDEuMDhBMTM0LjUzLDEzNC41MywwLDAsMCwxMDYuMzEsNiwxNDUuNTIsMTQ1LjUyLDAsMCwwLDg1LjQsMTQuMzEsMTU0LjIzLDE1NC4yMywwLDAsMCw1MSwzNy40NFE0Ny40MSw0MC42LDQ0LDQ0cS0xLjQzLDEuNDQtMi44MiwyLjlBMTU4LjQ4LDE1OC40OCwwLDAsMCwyNC44LDY3LjM1LDE1MC4wNywxNTAuMDcsMCwwLDAsNy4xMSwxMDIuODcsMTMxLjY1LDEzMS42NSwwLDAsMCwwLDE0My41N2ExMTcuNzYsMTE3Ljc2LDAsMCwwLDEuNDUsMjAsMTA4LjE0LDEwOC4xNCwwLDAsMCw0LjkyLDE5LjIyLDEwMi4wNywxMDIuMDcsMCwwLDAsOC41MywxOC4wNiw5OC42Niw5OC42NiwwLDAsMCwzMC42NywzMS45MiwxMDIuNDEsMTAyLjQxLDAsMCwwLDIzLjMsMTEuMywxMTAuNzUsMTEwLjc1LDAsMCwwLDI4LDUuNTJjMS41Ni4xLDMuMTQuMTgsNC43My4yMmExMjYuNzYsMTI2Ljc2LDAsMCwwLDI3LjIyLTIuMjVsNS4xNC0xLTcuNi0zOC45MS00Ljc2LDEuMTNhOTcuMTEsOTcuMTEsMCwwLDEtMjMuMjYsMi42OCw4NC45Myw4NC45MywwLDAsMS0yMC44OS0yLjc1LDc3LjU0LDc3LjU0LDAsMCwxLTE3LjkxLTcuMTVBNzMuNjgsNzMuNjgsMCwwLDEsNDQuOTEsMTkxYTcyLjkxLDcyLjkxLDAsMCwxLTEwLjE1LTExLjc0LDc0LjY4LDc0LjY4LDAsMCwxLTcuMzUtMTMuMzUsNzkuMDgsNzkuMDgsMCwwLDEtNC41Ny0xNC41OUE4Ni42MSw4Ni42MSwwLDAsMSwyMSwxMzUuNzhhOTguNzgsOTguNzgsMCwwLDEsNC42OS0zMi4zOEExMTQuODQsMTE0Ljg0LDAsMCwxLDM5LjU4LDc0LjYxLDEyMi41LDEyMi41LDAsMCwxLDYwLjc3LDUwLjM3YTExOC4yNiwxMTguMjYsMCwwLDEsMjgtMTguMywxMDkuMTYsMTA5LjE2LDAsMCwxLDE2LjY5LTYuMjEsMTAwLjU3LDEwMC41NywwLDAsMSwxNy0zLjI1LDkyLjQ1LDkyLjQ1LDAsMCwxLDE3LjE0LS4xNSw4NC4yLDg0LjIsMCwwLDEsMTYuODcsMy4xOCw3OCw3OCwwLDAsMSw5LjgzLDMuNjYsNzQuMjcsNzQuMjcsMCwwLDEsOS4zOCw1LjA2QTcxLjgsNzEuOCwwLDAsMSwxOTIuNCw0OS4wN2wtMTUsOC43M0wxNTIuNjIsNzIuMjYsMTI5LjQ5LDg1Ljc1bC0xMS4zOCw2LjY0LDEuNjgsMy4yOWMuMTMuMjUuMjUuNS4zNi43NnMuMjIuNTIuMzIuNzkuMTkuNTQuMjcuODEuMTYuNTUuMjIuODNsLjg2LDMuNjksODguNzEtMzIuMTMsMTkuODktNy4yNy0uNzktMS43QTkyLjU1LDkyLjU1LDAsMCwwLDIxNy40LDQyLjU5YTkwLjM3LDkwLjM3LDAsMCwwLTE1LTE0LjIxLDkzLjM4LDkzLjM4LDAsMCwwLTE2LjgtMTAsOTkuNyw5OS43LDAsMCwwLTE3Ljc5LTYuMjQsMTA3Ljg1LDEwNy44NSwwLDAsMC0yMC40NC0zLDExNi40MSwxMTYuNDEsMCwwLDAtMjAuNDQuNzgsMTI1LjEzLDEyNS4xMywwLDAsMC0yMC4xLDQuMjVBMTM1LDEzNSwwLDAsMCw4Ny4yMSwyMS43LDE0My43OSwxNDMuNzksMCwwLDAsNTQuODgsNDIuOTEsMTQ3LjgsMTQ3LjgsMCwwLDAsMzAuMTUsNzAuNTRhMTQwLjExLDE0MC4xMSwwLDAsMC0xNi44NywzMywxMjMuMSwxMjMuMSwwLDAsMC03LDM3LjM4di0xLjg0YTEyNiwxMjYsMCwwLDEsNy4yMS0zOC44QTE0My40OCwxNDMuNDgsMCwwLDEsMzAuNzUsNjYuNDksMTUxLjM4LDE1MS4zOCwwLDAsMSw1Ni4wNiwzOC4yMWExNDcuMiwxNDcuMiwwLDAsMSwzMy4xLTIxLjcyLDEzOCwxMzgsMCwwLDEsMjAtNy43MywxMjgsMTI4LDAsMCwxLDIwLjU4LTQuMzUsMTE5LDExOSwwLDAsMSwyMC45My0uOEExMTAsMTEwLDAsMCwxLDE3MS42LDYuNjlhMTAyLDEwMiwwLDAsMSwxOC4yMSw2LjM5QTk1LjYsOTUuNiwwLDAsMSwyMDcsMjMuMzNhOTIuNDQsOTIuNDQsMCwwLDEsMTUuMzgsMTQuNTVBOTQuNjksOTQuNjksMCwwLDEsMjM1LDU3LjE5bDEuNywzLjY4LDQtMS40NloiIGZpbGw9IiNmYmJhMDAiPjwvcGF0aD4KCTxwYXRoIGQ9Ik0xNjguNywxMDMuOWE2Ny44OSw2Ny44OSwwLDAsMS05LjEyLDI1LjgyLDc3LjY0LDc3LjY0LDAsMCwxLTE4LjQxLDIxLDczLjg4LDczLjg4LDAsMCwxLTI0LDEyLjgyQTYwLjA2LDYwLjA2LDAsMCwxLDkxLjcsMTY2YTUyLjU0LDUyLjU0LDAsMCwxLTYuNjItMS4yOSw0OC43LDQ4LjcsMCwwLDEtNi4wNy0yQTQ2LjY1LDQ2LjY1LDAsMCwxLDczLjUyLDE2MGE0NC41MSw0NC41MSwwLDAsMS0xNS0xNC4xLDQ3LjE0LDQ3LjE0LDAsMCwxLTYtMTMuMjJBNTIuNTQsNTIuNTQsMCwwLDEsNTAuNiwxMThhNjEuMTEsNjEuMTEsMCwwLDEsMi4yLTE1LjU2Yy4xMy0uNDkuMjctMSwuNDEtMS40N3MuMzItMSwuNDktMS41N2MuMy0uOTMuNjItMS44NSwxLTIuNzdhNzIuNTUsNzIuNTUsMCwwLDEsNy42Mi0xNSw3OCw3OCwwLDAsMSwyNC0yMy4wOSw3MS42Myw3MS42MywwLDAsMSwxNS40MS03LjFjMCwxLjM4LS4wOCw0LjI0LS4xNCw3Ljgycy0uMTQsOC0uMjIsMTIuMjgtLjE2LDguNjQtLjIyLDEyLS4xLDUuNzItLjExLDYuMTVsMy43Ny0uNzEuNzMtLjEyLjczLS4wOS43My0uMDZoLjczbDMuODItLjA2LDktNDMuNzcsMi44MS0xMy45My0zLjc4LjM5YTkwLjc5LDkwLjc5LDAsMCwwLTI4LDguMDYsMTAxLjg4LDEwMS44OCwwLDAsMC0xOC40NCwxMS4xcS0yLjcyLDIuMDctNS4zMSw0LjMyQTEwNSwxMDUsMCwwLDAsNDkuMTcsNzYsOTYuNDIsOTYuNDIsMCwwLDAsMzcsMTAyLjE2LDg3LjgyLDg3LjgyLDAsMCwwLDM0LjEsMTE2YTc4LjIxLDc4LjIxLDAsMCwwLS40OCwxMy43OSw3MC43Nyw3MC43NywwLDAsMCwyLjA2LDEzLjU0LDY2LjQzLDY2LjQzLDAsMCwwLDQuODEsMTNxMS4zOCwyLjgsMyw1LjQyQTYxLjYyLDYxLjYyLDAsMCwwLDQ3LDE2Ni44OWE2MC43Miw2MC43MiwwLDAsMCw0LDQuNzJxLjU2LjU5LDEuMTQsMS4xNywxLjY0LDEuNjQsMy40MSwzLjE1YTYxLjA2LDYxLjA2LDAsMCwwLDYuNTYsNC44OSw2Mi42OSw2Mi42OSwwLDAsMCw3LjM4LDQuMDgsNjUuMDcsNjUuMDcsMCwwLDAsOC4xOCwzLjE4LDcwLjc5LDcwLjc5LDAsMCwwLDksMi4xOCw4MC4yNyw4MC4yNywwLDAsMCwzNS41Ni0yLDk5LjI5LDk5LjI5LDAsMCwwLDM0LjIxLTE3LjUsMTA1LjQ0LDEwNS40NCwwLDAsMCw5LjU4LTguNDUsMTAzLjU4LDEwMy41OCwwLDAsMCwxNi4yNi0yMSw5MS40NSw5MS40NSwwLDAsMCwxMi4zMS0zNy4wN2wuNDUtNC41Ni0yNS43OS0uMTJaIiBmaWxsPSIjMDA3M2M2Ij48L3BhdGg+Cgo8L3N2Zz4="
            }
          ]
        }
      }
    ]
  }
]

This is what I will present at Engage, but I have more to show :wink:

1 Like

I did some development for a customer of a ‘Mark a mail as Spam’ feature! I may once write a blog about it.
Last feature that we miss, is to have extensibility in the Verse Mobile client. :wink: