Save user provided comments in custom table field in Portal.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-10-2023 02:15 AM
Hello Community,
Could help on this!
As bigginer to ServiceNow, Developed a clickable button using spModal.open() method in portal.
When click button window is populating inside the window user should provide comments. I am facing difficulty in to store those comments in a server with respect to the record.
The User provided comments should update in table Record.
Thanks in Advance!
HTML:
Client Script:
c.reject = function(){
c.comments='';
spModal.open({
title:'Comments',
message:'Please provide comments here:',
input:true,
value:c.comments,
}).then(function(comments){
c.comments=comments;
})
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-21-2023 08:50 AM
Hi @Mad3,
I got the solution for this. I have created another widget to open the modal. Below is the snippet.
Called Widget:
<div class="form-group">
<label for="pxp_confirm_text" ng-if="options.shared.message">
<span class="field-decorations">
<span ng-if="options.shared.required" class="fa fa-asterisk mandatory" ng-class="{ 'mandatory-filled': options.shared.text.length }" title="Required" style="padding-right: .25em"></span>
{{options.shared.message}}
</span>
</label>
<textarea ng-required="true" id="pxp_confirm_text" type="text" class="form-control" placeholder="{{options.shared.textPlaceholder}}"
autocomplete="off" aria-invalid="{{options.shared.required && !options.shared.text.length}"
ng-model="options.shared.text" ng-required="options.shared.required"/>
Calling Widget:
Server Side:
grCase.comments = input.comments;
Client Controller:
$scope.cancelCase = function() {
var confirmMsg = $scope.data.i18n.cancelMsgNoChildren;
var title = $scope.data.i18n.cancelTitle;
$http.get(
'/api/sn_hr_core/utils/getGlideRecord?sysparm_name=getGlideRecordSecureSetData&sysparm_tableName=sn_hr_core_case&sysparm_query=active=true^stateNOT IN1,3,4,7^parent=' +
$scope.data.parentCaseId).then(function(response) {
if (response.data && JSON.parse(response.data.result).length > 0)
confirmMsg = $scope.data.i18n.cancelMsgOpenChildren;
var inputOptions = {
message: confirmMsg,
text: '',
textPlaceholder: 'Comments required',
required: true
};
spModal.open({
title: title,
widget: 'cancel_comments',
shared: inputOptions,
backdrop: false, // disable close by click
}).then(function(comments) {
if (!inputOptions.text) {
alert ('Please enter comments');
return false;
}
var payload = {};
payload.name = "My Requests";
payload.data = {};
payload.data["Action"] = "Cancel Request";
payload.data["HR Case"] = $scope.data.recordInfo.number;
payload.data["HR Service"] = $scope.data.recordInfo.hr_service;
payload.data["Short Description"] = $scope.data.recordInfo.short_desc;
snAnalytics.addEvent(payload);
$scope.data.action = 'cancelCase';
$scope.data.comments = inputOptions.text;
$scope.server.update();
});
});
};