- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-22-2017 02:11 AM
Hi,
How to add the comments field in the OOB Approval widget and make it mandatory when the approvers rejects it.
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-23-2017 03:58 AM
Hi Selva,
Use the below and it wil work ( we have to change both client and server to update user comments in approval table)
Highlighted are the changes
Client controller:
function ($scope, spUtil, snRecordWatcher,spModal) {
if ($scope.options.portal == true || $scope.options.portal == 'true') {
$scope.contentColClass = "col-xs-12";
$scope.options.portal = true;
} else {
$scope.options.portal = false;
$scope.contentColClass = "col-sm-9";
}
$scope.data.op = "";
snRecordWatcher.initList("sysapproval_approver", "state=requested^approver=" + window.NOW.user_id);
function get() {
spUtil.update($scope);
}
$scope.$on('record.updated', function(name, data) {
get();
})
$scope.approve = function(id) {
$scope.data.op = "approved";
$scope.data.target = id;
get();
}
$scope.reject = function(id) {
c.onPrompt(id);
}
c.onPrompt = function(id) {
spModal.open({
title: 'Give me a comment',
message: 'Your comment please?',
input: true,
value: c.comment
}).then(function(comment) {
c.comment = comment;
if(comment)
{
$scope.data.comment = comment;
$scope.data.op = "rejected";
$scope.data.target = id;
get();
}
})
}
}
Server side:
Replace
if (input && input.op) {
var app = new GlideRecord("sysapproval_approver");
if (app.get(input.target)) {
app.state = input.op;
app.update();
}
With
if (input && input.op) {
if(input.op == 'approved')
{
var app = new GlideRecord("sysapproval_approver");
if (app.get(input.target)) {
app.state = input.op;
app.update();
}
}
else if(input.op == 'rejected' && input.comment)
{
var app = new GlideRecord("sysapproval_approver");
if (app.get(input.target)) {
app.comments = input.comment;
app.state = input.op;
app.update();
}
}
Thanks and regards
Swamy
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-30-2017 08:19 PM
Thanks mate,its working fine.Just that you pasted server script to client script and vice versa.
Regards,
Karthik
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-31-2017 05:20 AM
Hi amaradiswamy
Sorry to bother you again. When you reject you can add comment.When you reject 2nd one,it saves the previous reject comment.PFB
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-31-2017 05:38 AM
Try adding below line and see what is happening
else if(input.op == 'rejected' && input.comment)
{
var app = new GlideRecord("sysapproval_approver");
if (app.get(input.target)) {
app.comments = input.comment;
app.state = input.op;
app.update();
input.comment = '';
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎05-31-2017 11:44 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎07-13-2017 08:33 AM