How to Add Additional Fields to the Popover in Dispatcher Workspace
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-22-2025 10:40 PM
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
- Open CSM/FSM Configurable Workspace.
- Click into the Dispatcher Workspace.
- Hover over a calendar event.
- You will see the updated fields — including Comverse Service Order (Correlation ID) — displayed in the popover.