- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-29-2023 02:43 PM
When clicked on a UI action, here for Example we can take 'Promote to Major Incident', it already has pre-defined fields populated which are Work notes and Business Impact.
My Query is how can I populate 'Service' which is a reference field of 'cmdb_ci_service' Table and make this field mandatory on that dialog window which shows up.
If it is a text field it would have been easier, but as this is a reference field how to customize the Ui Actions and UI Page.
This is related to Major Incident Management, if not found in your instance kindly install 'com.snc.incident.mim', so you can find these UI Actions and UI Pages.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2023 01:42 AM
Please make below changes
UI action=>Promote to Major Incident
dialog.setPreference('Services', g_form.getValue('business_service')); // We declared service value
add above line in below line
dialog.setPreference('WORK_NOTES', g_form.getValue('work_notes'));
dialog.setPreference('BUSINESS_IMPACT', g_form.getValue('business_impact'));
***************************************************************************************************************
UI Page- mim_workbench_promote
HTML
Add this code for Service show in dialog box
<div class="form-group">
<label class="col-sm-2 control-label" for="mim-promote-service">
<span mandatory="true" class="required-marker label_description"></span>
${gs.getMessage('Service')}</label>
<div class="col-sm-10">
<g:ui_reference name="mim-promote-service" id="mim-promote-service" table="cmdb_ci_service" completer="AJAXTableCompleter" />
</div>
</div>
************************************************************************************************
Client script
first declared variable
var workNotes = $("mim-promote-work-notes");
var businessImpact = $("mim-promote-business-impact");
var service=$("mim-promote-service");// like this above 2 are already there
Below line 21 add below code
var currentService = dialog.getPreference('Services');
if(currentService)
service.value = currentService;
Make changes in promote function like below
function promote() {
getMessage("Promoted to a major incident", function(msg) {
var updateWorkNotes = msg + "\n" + workNotes.value.trim();
if (!promoteBtn.hasClassName('disabled')) {
if (window.NOW.MAJOR_INCIDENT_WORKBENCH) {
var record = {};
record.work_notes = updateWorkNotes;
record.business_impact = businessImpact.value;
record.service=service.value;
_promoteRestCall(record).then(function() {
dialog.setPreference('reload', true);
close();
});
} else {
//When UI Page is rendered from Form UI Action
if(config.workspace) {
iframeMsgHelper.confirm({
msg: msg,
workNotes: workNotes.value.trim(),
businessImpact: businessImpact.value.trim()
});
} else {
g_form.getControl('work_notes').value = updateWorkNotes;
g_form.setValue('business_impact', businessImpact.value);
g_form.setValue('business_service',service.value);
GlideModal.prototype.get('sn_major_inc_mgmt_mim_workbench_promote').destroy();
gsftSubmit(null, g_form.getFormElement(), 'sysverb_mim_accept');
}
}
}
});
}
Please try and let me know if any changes require
Please Mark Helpful and correct if it really help you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2023 01:42 AM
Please make below changes
UI action=>Promote to Major Incident
dialog.setPreference('Services', g_form.getValue('business_service')); // We declared service value
add above line in below line
dialog.setPreference('WORK_NOTES', g_form.getValue('work_notes'));
dialog.setPreference('BUSINESS_IMPACT', g_form.getValue('business_impact'));
***************************************************************************************************************
UI Page- mim_workbench_promote
HTML
Add this code for Service show in dialog box
<div class="form-group">
<label class="col-sm-2 control-label" for="mim-promote-service">
<span mandatory="true" class="required-marker label_description"></span>
${gs.getMessage('Service')}</label>
<div class="col-sm-10">
<g:ui_reference name="mim-promote-service" id="mim-promote-service" table="cmdb_ci_service" completer="AJAXTableCompleter" />
</div>
</div>
************************************************************************************************
Client script
first declared variable
var workNotes = $("mim-promote-work-notes");
var businessImpact = $("mim-promote-business-impact");
var service=$("mim-promote-service");// like this above 2 are already there
Below line 21 add below code
var currentService = dialog.getPreference('Services');
if(currentService)
service.value = currentService;
Make changes in promote function like below
function promote() {
getMessage("Promoted to a major incident", function(msg) {
var updateWorkNotes = msg + "\n" + workNotes.value.trim();
if (!promoteBtn.hasClassName('disabled')) {
if (window.NOW.MAJOR_INCIDENT_WORKBENCH) {
var record = {};
record.work_notes = updateWorkNotes;
record.business_impact = businessImpact.value;
record.service=service.value;
_promoteRestCall(record).then(function() {
dialog.setPreference('reload', true);
close();
});
} else {
//When UI Page is rendered from Form UI Action
if(config.workspace) {
iframeMsgHelper.confirm({
msg: msg,
workNotes: workNotes.value.trim(),
businessImpact: businessImpact.value.trim()
});
} else {
g_form.getControl('work_notes').value = updateWorkNotes;
g_form.setValue('business_impact', businessImpact.value);
g_form.setValue('business_service',service.value);
GlideModal.prototype.get('sn_major_inc_mgmt_mim_workbench_promote').destroy();
gsftSubmit(null, g_form.getFormElement(), 'sysverb_mim_accept');
}
}
}
});
}
Please try and let me know if any changes require
Please Mark Helpful and correct if it really help you.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2023 06:11 AM
This is so wonderful, Thanks @Kalyani Jangam1 It worked smoothly. I just had one small question, how can I make 'Services' mandatory?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2023 08:33 AM
Hi @Akhila Vangala ,
It is difficult to show in mandatory because it is <g_ui:reference> tried in many ways. You can refer below docs
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-30-2023 08:36 AM - edited 03-30-2023 08:42 AM
If showing as mandatory would be difficult, can we at least pop-up any error message and stop promoting the Incident/submitting this pop-up until they fill in the Service.
In this way we are forcing User to fill in the Service. Would this be possible? What do you think?
or
Until Service is filled in Promote is not turned Blue and they cannot click on it.