ServiceNow - Embedded widget on catalog item - how to pass a variable from the cat item form
Client controller:
api.controller = function($scope) {
/* widget controller */
var c = this;
$scope.$watch(function() {
if ($scope.page.g_form) {
return $scope.page.g_form.getValue('service_offering');
}
}, function(value, oldValue) {
//validate that value is not the same as oldValue (loading)
if (value != oldValue) {
//execute on change of the variable
c.data.message = value;
c.server.update();
// alert(value);
}
});
c.display = function(a) {
//alert(a);
$scope.page.g_form.setDisplay('parent_incident', true);
$scope.page.g_form.setValue('parent_incident', a.toString());
$scope.page.g_form.setDisplay('parent_incident', false);
//g_form.setDisplay('parent_incident',false);
};
};
Server script:
(function() {
/* populate the 'data' object */
/* e.g., data.table = $sp.getValue('table'); */
if (input) {
//gs.addErrorMessage('gr.number.toString()');
var items = [];
var idx = 0;
// var item = {};
session.onlineImpersonate("system");
var itemsGR = new GlideRecord("incident");
itemsGR.addQuery("service_offering", input.message);
itemsGR.addEncodedQuery('active=true^major_incident_state=accepted');
itemsGR.queryNoDomain(); //--to avoid any cross-domain issues
while (itemsGR.next()) {
var item = {};
item.short_description = itemsGR.short_description.toString();
item.num = itemsGR.number.toString();
//item.business_impact = itemsGR.business_impact;
item.sysId = itemsGR.sys_id.toString();
// item.shorty =gr12.short_description.toString();
items[idx] = item;
//gs.addErrorMessage('gr.number.toString()'+ items[idx].toString());
idx++;
}
data.items = items;
session.onlineUnimpersonate();
}
})();
HTML:
<div ng-show="data.items">
<div ng-hide="data.items==''">
<h5 class = "mi" id='infomsg1'> Are you impacted by any of below Incident?</h5>
</div>
</div>
<div ng-repeat="item in data.items" ng-controller="RadioController">
<input type="radio" name="incidents" id="{{item.sysId}}" ng-click="c.display(item.sysId)"/> {{::item.num}} - {{::item.short_description}}
</div>
CSS:
.mi {color: red;
font-size: 15px;
font-weight: bold;
}
Comments
Post a Comment