Display Business Rule and Client Script - hide empty variables on cat item form and make visible vars read only
Display Business Rule and Client Script - hide empty variables on cat item form and make visible vars read only (g_scratchpad)
BUSINESS RULE (Display) - generates the scratchpads which are passed to the client script
(function executeRule(current, previous /*null when async*/ ) {
//Get Catalog variables
var emptyVariables = [];
var readonlyVariables = [];
var keys = [];
var set = new GlideappVariablePoolQuestionSet();
set.setRequestID(current.request_item); //--if table is sc_task
//set.setRequestID(current.sys_id); //--if table is RITM
set.load();
var vs = set.getFlatQuestions();
var description = '';
for (var i = 0; i < vs.size(); i++) {
var sDisplVal = vs.get(i).getDisplayValue().toString();
//var sLabel = vs.get(i).getLabel().toString();
var sField = vs.get(i).getName().toString();
//gs.addInfoMessage(!gs.nil(sLabel) + ',' + (sDisplVal!='') + ',' + sLabel + ': ' + sDisplVal);
if (!gs.nil(sField) && (sDisplVal == '' || sDisplVal == 'false')) {
emptyVariables.push(sField);
} else {
readonlyVariables.push(sField);
}
}
g_scratchpad.emptyVariables = emptyVariables.toString();
g_scratchpad.readonlyVariables = readonlyVariables.toString();
//gs.addInfoMessage(g_scratchpad.emptyVariables);
})(current, previous);
CLIENT SCRIPT: this can be a client script (not catalog client script) on sc_task or RITM
//Type appropriate comment here, and begin script below
if (g_scratchpad.emptyVariables != '') {
//alert(g_scratchpad.emptyVariables);
var emptyVars = g_scratchpad.emptyVariables.split(',');
for (i = 0; i < emptyVars.length; i++) {
//alert(emptyVars[i].toString());
g_form.setDisplay('variables.' + emptyVars[i], false);
}
}
if (g_scratchpad.readonlyVariables != '') {
//alert(g_scratchpad.readonlyVariables);
var allVarsRO = g_scratchpad.readonlyVariables.split(',');
for (x = 0; x < allVarsRO.length; x++) {
//alert(allVarsRO[x].toString());
g_form.setReadOnly('variables.' + allVarsRO[x], true);
}
}
Comments
Post a Comment