The Zurich release has arrived! Interested in new features and functionalities? Click here for more

How to Add Additional Fields to the Popover in Dispatcher Workspace

Ramya V
Kilo Sage

Overview

This article explains how to customize the popover in the Dispatcher Workspace calendar by adding additional fields such as Correlation ID (e.g., Comverse Service Order) to the tooltip view.

 

Steps to Configure

1. Navigate to Script Includes

Go to:
All > System Definition > Script Includes

2. Search for DispatcherWorkspaceCalendarBrokerImpl

You will find two script includes:

  • DispatcherWorkspaceCalendarBrokerImplSNC – This is the read-only base implementation.
  • DispatcherWorkspaceCalendarBrokerImpl – This is where custom overrides are applied.
  •  Always extend or override the DispatcherWorkspaceCalendarBrokerImpl to apply your customizations.

 

Function to Override

Look for the function:

getCalendarEventTooltipDetails(input)

This function is responsible for returning the field data shown in the popover tooltip on calendar events.

 

Example Override Code

Below is a sample script that adds additional fields like Correlation ID to the popover:

 

var DispatcherWorkspaceCalendarBrokerImpl = Class.create();

DispatcherWorkspaceCalendarBrokerImpl.prototype = Object.extendsObject(DispatcherWorkspaceCalendarBrokerImplSNC, {

  getCalendarEventTooltipDetails: function(input) {

    var table = input["table"];

    var sysId = input["event_bar_sys_id"];

    var output = {

      "popoverFieldData": []

    };

    var gr = new GlideRecord(table);

    gr.get(sysId);

    if (new global.SMUtils().isWMTaskOrChildOfWMTask(table) && input['type'] != "VendorCapacityBucket") {

      output["popoverFieldData"].push({

        label: gr.getElement('short_description').getLabel(),

        value: gr.getDisplayValue('short_description') || ''

      });

      output["popoverFieldData"].push({

        label: gr.getElement('number').getLabel(),

        value: gr.getDisplayValue('number')

      });

 

// Add Correlation ID (Comverse Service Order)

      var parentWO = gr.parent.getRefRecord();

      var correlationId = (parentWO && parentWO.isValidRecord()) ? parentWO.getValue('correlation_id') : 'N/A';

      output["popoverFieldData"].push({

        label: parentWO.getElement('correlation_id').getLabel(),

        value: correlationId || ''

      });

 

      output["popoverFieldData"].push({

        label: gr.getElement('expected_start').getLabel(),

        value: gr.getDisplayValue('expected_start') || ''

      });

      output["popoverFieldData"].push({

        label: gr.getElement('assignment_group').getLabel(),

        value: gr.getDisplayValue('assignment_group') || ''

      });

      output["popoverFieldData"].push({

        label: gr.getElement('location').getLabel(),

        value: gr.getDisplayValue('location') || ''

      });

      var locationRecord = gr.location.getRefRecord();

      var taskTZ = locationRecord.time_zone.getChoiceValue();

      output["popoverFieldData"].push({

        label: locationRecord.time_zone.getLabel(),

        value: taskTZ || ''

      });

    }

    else if ((new global.SMUtils().isWMTaskOrChildOfWMTask(table) && input['type'] == "VendorCapacityBucket")) {

      output["popoverFieldData"].push({

        label: gs.getMessage('Group name'),

        value: input['vendorGroupName'] || ''

      });

      output["popoverFieldData"].push({

        label: gs.getMessage('Number of tasks'),

        value: input['title'].split('')[0] || ''

      });

    }

    else if (table == "cmn_schedule_span") {

      output["popoverFieldData"].push({

        label: gr.getElement('name').getLabel(),

        value: gr.getDisplayValue('name') || ''

      });

      output["popoverFieldData"].push({

        label: gr.getElement('type').getLabel(),

        value: gr.getDisplayValue('type') || ''

      });

      output["popoverFieldData"].push({

        label: gr.getElement('start_date_time').getLabel(),

        value: gr.getDisplayValue('start_date_time') || ''

      });

      output["popoverFieldData"].push({

        label: gr.getElement('end_date_time').getLabel(),

        value: gr.getDisplayValue('end_date_time') || ''

      });

    }

    else if (table == "sn_shift_planning_agent_schedule_request") {

      output["popoverFieldData"].push({

        label: gr.getElement('description').getLabel(),

        value: gr.getDisplayValue('description') || ''

      });

      output["popoverFieldData"].push({

        label: gr.getElement('state').getLabel(),

        value: gr.getDisplayValue('state') || ''

      });

      output["popoverFieldData"].push({

        label: gr.getElement('start').getLabel(),

        value: gr.getDisplayValue('start') || ''

      });

      output["popoverFieldData"].push({

        label: gr.getElement('end').getLabel(),

        value: gr.getDisplayValue('end') || ''

      });

    }

    return output;

  },

  type: "DispatcherWorkspaceCalendarBrokerImpl"

});

 

Result

  1. Open CSM/FSM Configurable Workspace.
  2. Click into the Dispatcher Workspace.
  3. Hover over a calendar event.
  4. You will see the updated fields — including Comverse Service Order (Correlation ID) — displayed in the popover.
Screenshot 2025-07-23 at 10.54.02 AM.png
 
0 REPLIES 0