- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-27-2019 03:23 PM
Hi everyone, on the self-service portal, I would like to route to a different page on click of "Approve" or "Reject" button. Right now we have built a Model window which will open up when approve or reject button is clicked, on the model window we have a button "My approvals" on click of this it will route to my approvals page I want to modify this widget where the Model Window should be skipped and direct route to "My approvals" page on click of "Approve" button, below is the code for Body HTML template, Server script, Client controller. controllerAS "c". Help me how to modify to skip and reroute to page
Body HTML:
<br>
<div class="panel panel-primary b">
<!-- panel-{{::c.options.color}}-->
<div class="panel-heading">
<h4 class="panel-title" ng-if="c.data.state == 'requested'">${This {{c.data.label}} requires your approval}</h4>
<h4 class="panel-title" ng-if="c.data.state == 'approved'">${Approved}</h4>
<h4 class="panel-title" ng-if="c.data.state == 'rejected'">${Rejected}</h4>
<!---<h4 class="panel-title" ng-if="c.data.state == 'approved'">${Approved} <sn-time-ago timestamp="::c.data.sys_updated_on" /></h4>
<h4 class="panel-title" ng-if="c.data.state == 'rejected'">${Rejected} <sn-time-ago timestamp="::c.data.sys_updated_on" /></h4>--->
</div>
<div class="panel-body">
<form ng-submit="$event.preventDefault()" class="form-horizontal">
<div ng-if="c.data.state == 'requested'" class="question">
<button type="button" name="approve" class="btn btn-primary btn-question" ng-click="c.action('approved')">${Approve}</button>
<div class="spacer"></div>
<button type="button" name="reject" class="btn btn-default btn-question" ng-click="c.action('rejected')">${Reject}</button>
</div>
<textarea id="rejection-comments" ng-model="c.data.comment" style="color: grey; margin-top: .5em;" placeholder="Comments" class="form-control" rows="5"></textarea>
</form>
</div>
</div>
<br>
<br>
<script type="text/ng-template" id="modalTemplate">
<div class="panel panel-default center">
<div class="panel-heading">
<h4 class="panel-title">Thank you!</h4>
</div>
<div class="panel-body wrapper-xl">
Thank you for your approval. You can view more approvals under 'My Approvals'
</div>
<div class="panel-footer text-right">
<button class="btn btn-primary" ng-click="c.closeModal()">${Go to My Approvals}</button>
</div>
</div>
</script>
Server script:
var gr = $sp.getRecord();
if (input && input.op && gr) {
gr.state = input.op;
gr.update();
}
if (input.comment){
gr.comments = input.comment;
gr.update();
}
var fields = $sp.getFields(gr, 'state,sys_created_on');
if (gr) {
if (gr.sys_mod_count > 0)
fields.push($sp.getField(gr, 'sys_updated_on'));
data.fields = fields;
data.state = gr.state.toString();
data.sys_updated_on = gr.sys_updated_on.toString();
data.sys_id = gr.getUniqueValue();
data.table = gr.getTableName();
data.label = getRecordBeingApproved(gr).getLabel();
data.approveMsg = gs.getMessage("You have approved this request");
data.rejectMsg = gs.getMessage("You have rejected this request");
}
function getRecordBeingApproved(gr) {
if (!gr.sysapproval.nil())
return gr.sysapproval.getRefRecord();
return gr.document_id.getRefRecord();
}
Client controller:
function ($scope, $uibModal) {
var c = this;
c.action = function(state) {
if(state == 'approved'){
var approve = confirm('Are you sure you want to approve?');
if(approve === true){
c.modalInstance = $uibModal.close({
templateUrl: 'modalTemplate',
scope: $scope
});
c.closeModal = function() {
console.log(c)
c.modalInstance.close();
var redirect = '?id=my_approvals'
top.window.location = redirect;
}
}else{
return false
}
}else if(state == 'rejected'){
if(c.data.comment == undefined || c.data.comment == '' ){
alert('Please add comments for rejected items.');
return false;
}else{
var reject = confirm('Are you sure you want to reject?');
if(reject === true){
c.modalInstance = $uibModal.open({
templateUrl: 'modalTemplate',
scope: $scope
});
c.closeModal = function() {
console.log(c)
c.modalInstance.close();
var redirect = '?id=my_approvals'
top.window.location = redirect;
}
}else{
return false
}
}
}
c.data.op = state;
console.log("Data Op: "+c.data.op);
c.data.state = state;
console.log("Data Sate: "+c.data.state);
c.server.update();
}
}
Solved! Go to Solution.
- Labels:
-
Service Portal

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-27-2019 10:11 PM
function ($scope, $uibModal) {
var c = this;
c.action = function(state) {
if(state == 'approved'){
var approve = confirm('Do you want go to Approvals page?');
if(approve === true){
var redirect = '?id=my_approvals'
top.window.location = redirect;
});
c.closeModal = function() {
console.log(c)
c.modalInstance.close();
var redirect = '?id=my_approvals'
top.window.location = redirect;
}
}else{
return false
}
}else if(state == 'rejected'){
if(c.data.comment == undefined || c.data.comment == '' ){
alert('Please add comments for rejected items.');
return false;
}else{
var reject = confirm('Are you sure you want to reject?');
if(reject === true){
c.modalInstance = $uibModal.open({
templateUrl: 'modalTemplate',
scope: $scope
});
c.closeModal = function() {
console.log(c)
c.modalInstance.close();
var redirect = '?id=my_approvals'
top.window.location = redirect;
}
}else{
return false
}
}
}
c.data.op = state;
console.log("Data Op: "+c.data.op);
c.data.state = state;
console.log("Data Sate: "+c.data.state);
c.server.update();
}
}
the above change will do the required functionality.
-satheesh

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-27-2019 10:11 PM
function ($scope, $uibModal) {
var c = this;
c.action = function(state) {
if(state == 'approved'){
var approve = confirm('Do you want go to Approvals page?');
if(approve === true){
var redirect = '?id=my_approvals'
top.window.location = redirect;
});
c.closeModal = function() {
console.log(c)
c.modalInstance.close();
var redirect = '?id=my_approvals'
top.window.location = redirect;
}
}else{
return false
}
}else if(state == 'rejected'){
if(c.data.comment == undefined || c.data.comment == '' ){
alert('Please add comments for rejected items.');
return false;
}else{
var reject = confirm('Are you sure you want to reject?');
if(reject === true){
c.modalInstance = $uibModal.open({
templateUrl: 'modalTemplate',
scope: $scope
});
c.closeModal = function() {
console.log(c)
c.modalInstance.close();
var redirect = '?id=my_approvals'
top.window.location = redirect;
}
}else{
return false
}
}
}
c.data.op = state;
console.log("Data Op: "+c.data.op);
c.data.state = state;
console.log("Data Sate: "+c.data.state);
c.server.update();
}
}
the above change will do the required functionality.
-satheesh

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-28-2019 09:16 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-27-2019 11:02 PM
What Sateeshkumar wrote is correct
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-28-2019 09:02 AM
Thanks Satheesh! it worked