Name
global.SPMClientUtilAjax
Description
No description available
Script
var SPMClientUtilAjax = Class.create();
SPMClientUtilAjax.prototype = Object.extendsObject(global.AbstractAjaxProcessor, {
getLeafOrder: function() {
var portfolioId = this.getParameter("sysparm_portfolio");
var layerId = this.getParameter("sysparm_layer");
var leafOrder = new global.SPMRefUtils().getTaxonomyLeafOrder(portfolioId);
var layerGr = new GlideRecordSecure("spm_taxonomy_layer_definition");
layerGr.get(layerId);
if (layerGr.order == leafOrder)
return "leaf";
else
return "taxonomy";
},
hasChildNodes: function() {
var gr = new GlideRecord('spm_taxonomy_node');
gr.addQuery('parent', this.getParameter("sysparm_sys_id"));
gs.info(this.getParameter("sysparm_sys_id"));
gr.query();
if (gr.next()) {
return "taxonomy";
} else {
return "leaf";
}
},
isRootLayer: function() {
var portfolioId = this.getParameter("sysparm_portfolio");
var layerId = this.getParameter("sysparm_layer");
if (!portfolioId || !layerId)
return;
var layerRecord = new GlideRecordSecure('spm_taxonomy_layer_definition');
layerRecord.addQuery('spm_service_portfolio', portfolioId);
layerRecord.orderBy('order');
layerRecord.setLimit(1);
layerRecord.query();
if (!layerRecord.next())
return;
return layerRecord.sys_id == layerId;
},
checkNodeOwnership: function() {
var sysId = this.getParameter('sysparm_sysId');
var type = this.getParameter('sysparm_type');
var allowedToSave = (new global.SPMUtilsFactory().getUtils()).checkNodeOwnership(type, sysId);
return allowedToSave;
},
checkPortfolioOwnership: function() {
var sysId = this.getParameter('sysparm_sysId');
var grPortfolio = new GlideRecord('spm_service_portfolio');
grPortfolio.get(sysId);
var allowedToSave = (new global.SPMUtilsFactory().getUtils()).checkPortfolioAuthorization(grPortfolio);
return allowedToSave;
},
getParentServiceFieldValues: function() {
var serviceId = this.getParameter('sysparm_serviceId');
var serviceGR = new GlideRecordSecure('cmdb_ci_service');
if (serviceGR.get(serviceId) && serviceGR.canRead()) {
var results = {
owned_by: serviceGR.getValue('owned_by'),
delivery_manager: serviceGR.getValue('delivery_manager'),
service_owner_delegate: serviceGR.getValue('service_owner_delegate'),
consumer_type: serviceGR.getValue('consumer_type'),
};
return JSON.stringify(results);
}
},
/**
* Process and call corresponding automation functions based on selections made in the Service/Portfolio Automations modal
*
* @return {string} - String representation of Object with key/value pair representing the number of completed automations
*/
processModalChoices: function() {
var spmAutomationUtils = new global.SPMAutomationUtils();
var portfolioSysId = this.getParameter('sysparm_portfolio');
var choices = this.getParameter('sysparm_choices');
var numOfferings = this.getParameter('sysparm_number_of_offerings');
var completedAutomations = 0;
var obj = JSON.parse(choices);
for (var key in obj) {
var name = obj[key].name;
var value = obj[key].value;
// Apply automations based on name and only for the selected checkboxes from modal
if (value === true) {
switch (name) {
case 'add_offerings_to_services':
spmAutomationUtils.createOneManyOfferingsForPortfolio(portfolioSysId, numOfferings);
completedAutomations++;
break;
default:
break;
}
}
}
gs.log(gs.getMessage('Success! Based on your selection, {0} portfolio automation(s) were completed.', [completedAutomations.toString()]));
var results = {
completed_automations: completedAutomations
};
return JSON.stringify(results);
},
type: 'SPMClientUtilAjax'
});
Sys ID
9d0dceddb3003300f224a72256a8dc54