Clone task button in contextual Action menu in dispatcher workspace
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-24-2025 02:15 PM
Hi,
I would like to create an action item in Contextual Menu of Dispatcher workspace to clone the tasks. May I know how to create it? thank you.
1 REPLY 1
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
yesterday
Hello,
There is a script include "DispatcherWorkspaceCalendarHelper" where we can add any customizations to the OOTB menu items, there add the below function:
getContextMenuOptions: function(event, startDate, endDate, calendarTimelineView) {
var options = [{
id: "dropdownItem_open",
label: gs.getMessage("Open")
}];
// Agent event has "Open" option and "Edit Event" option(if it is non-repeating event)
if (event.table == "cmn_schedule_span") {
if (!event["repeat_type"]) {
if (!this.fsmWfoActive) {
options.push({
id: "dropdownItem_EditEvent",
label: gs.getMessage("Edit Event")
});
options.push({
id: "dropdownItem_DeleteEvent",
label: gs.getMessage("Delete Event")
});
} else {
if (event["wfo_event_category"] == DispatcherWorkspaceConstants.FSM_WFO_MEETING_CAT_SYS_ID || event['wfo_event_category'] == DispatcherWorkspaceConstants.FSM_WFO_TRAINING_CAT_SYS_ID) {
options.push({
id: "dropdownItem_EditEvent",
label: gs.getMessage("Edit Event")
});
}
}
}
return {
"options": options
};
}
if (this.fsmWfoActive) {
if (event.table == DispatcherWorkspaceConstants.FSM_WFO_TIMEOFF_TABLE) {
options.push({
id: "dropdownItem_EditEvent",
label: gs.getMessage("Edit Event")
});
options.push({
id: "dropdownItem_DeleteEvent",
label: gs.getMessage("Delete Event")
});
return {
"options": options
};
}
}
if (DispatcherWorkspaceConstants.WM_TASK_STATE_VALUES.ASSIGNED == event['state'] || DispatcherWorkspaceConstants.WM_TASK_STATE_VALUES.ACCEPTED == event['state']) {
if (this.isCrewPluginActive && event.requires_crew == 1 && event.type != "CrewMemberTask") {
options.push({
id: "dropdownItem_unassign_crew",
label: gs.getMessage("Unassign task")
});
} else if (event.type || event.type != "CrewMemberTask") {
options.push({
id: "dropdownItem_unassign_wot",
label: gs.getMessage("Unassign task")
});
}
}
if (!this.hideMap) {
options.push({
id: "dropdownItem_view_on_map",
label: gs.getMessage("View on map")
});
}
if (this.isTaskBundlePluginActive && event['is_bundle'] == true)
options.push({
id: "dropdownItem_unbundle",
label: gs.getMessage("Unbundle")
});
var isScheduledTask = event['state'] == DispatcherWorkspaceConstants.WM_TASK_STATE_VALUES.SCHEDULED;
if (isScheduledTask) {
options.push({
"id": "dropdownItem_confirm_assignment",
"label": gs.getMessage("Confirm Assignment")
});
options.push({
id: "dropdownItem_unassign_wot",
label: gs.getMessage("Unassign task")
});
}
options.push({
id: "dropdownItem_snapLeft_wot",
label: DispatcherWorkspaceConstants.SNAPLEFT_TASK
});
if (event["locked"])
options.push({
id: "dropdownItem_unlock_wot",
label: gs.getMessage("Unlock")
});
else
options.push({
id: "dropdownItem_lock_wot",
label: gs.getMessage("Lock")
});
if (this.isOeSfsActive)
options.push({
id: "dropdownItem_discuss",
label: gs.getMessage("Discuss")
});
/*
Add your new menu item
Clone task
This if condition will ensure that the menu item will be added to only Work order tasks
*/
if (event.table == 'wm_task') {
options.push({
id: "dropdownItem_clone_task",
label: gs.getMessage("Clone Task")
});
}
return {
"options": options
};
},
After this, you will have the custom menu item visible when you right click on any event.
If you found this helpful, mark it as helpful!!
Also, Accept this solution!
