- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2019 01:07 AM
Hi All,
I have one requirement where an widget in the service portal, I need to reload the form. PFB screenshot.
This popup opens on click of a widget. My task is to reload the form on click of the highlighted button 'Assign task'.
Below is my code which has the method to be called on click of 'Assign task' button in the widget:
Please let me know your suggestion on this. Thank You.
Solved! Go to Solution.
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2019 01:12 AM
Hi
You can use reload use window.location.reload(); to reload the page.
Hope this helps.
Regards,
Omkar Mone

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2019 01:34 AM
Hi
This works perfectly in my case and currently working in production as wll. Can you see any errors in the console by f12? Because if the control has not reached that line and some error has occured in between, it can cause the page not to refresh. Also try putting some consoles and check till where the control is reached.
Hope this helps.
Regards
Omkar Mone
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2019 01:49 AM
Hi Omkar,
This works perfectly. There was some error I had to fix from my end. Thank you so much 🙂

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2019 01:50 AM
Cheers 🙂
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-05-2022 03:26 AM
function($rootScope, $scope, $window, $timeout, spUtil, $sce, spModal, $uibModal,$location,cabrillo, snAnalytics) {
/* widget controller */
var c = this;
if (c.data.redirect) {
var id = $location.search().sys_kb_id ? 'sys_kb_id' : 'sys_id';
if ($location.search()[id] && $location.search()[id] !== c.data.redirect) {
$location.search('spa', 1);
$location.search(id, c.data.redirect);
}
}
if(c.data.isValid){
if(c.data.kbContentData && c.data.kbContentData.isTemplate ){
c.data.kbContentData.data.forEach(function(field){
if(field.type == 'html')
field.content = $sce.trustAsHtml(field.content);
});
if (c.data.articleType === 'wiki')
c.data.kbWiki = $sce.trustAsHtml(c.data.kbWiki);
}
else if (c.data.articleType === 'wiki')
c.data.kbWiki = $sce.trustAsHtml(c.data.kbWiki);
else
c.data.kbContentData.data = $sce.trustAsHtml(c.data.kbContentData.data);
}
$scope.submitted = false;
c.flagMessage = null;
$timeout(function(){
$rootScope.$broadcast("sp.update.breadcrumbs", $scope.data.breadCrumb);
});
$rootScope.properties = $scope.data.properties;
$rootScope.messages = $scope.data.messages;
$rootScope.isValid = c.data.isValid;
$rootScope.isKBAdmin = $scope.data.isKBAdmin;
$rootScope.isKBOwner = $scope.data.isKBOwner;
$rootScope.article_sys_id = $scope.data.article_sys_id;
$rootScope.attachments = $scope.data.attachments;
$rootScope.attachedIncidents = $scope.data.attachedIncidents;
$rootScope.affectedProducts = $scope.data.affectedProducts;
$rootScope.displayAttachments = $scope.data.displayAttachments;
$rootScope.hideFeedbackOptions = $scope.data.hideFeedbackOptions;
$rootScope.helpfulContent = $scope.data.helpfulContent;
$rootScope.tableName = $scope.data.tableName;
$rootScope.hasComments = $scope.data.hasComments;
$scope.data.isSubscribed = $scope.data.isArticleSubscribed || $scope.data.isArticleSubscribedAtKB;
$scope.data.subscribeLabel = ($scope.data.isSubscribed ? $scope.data.messages.SUBSCRIBED : $scope.data.messages.SUBSCRIBE);
c.createIncidentURL = c.options.create_task_url || ($scope.data.properties && $scope.data.properties.createIncidentURL);
c.createIncidentLabel = c.options.create_task_prompt || $scope.data.messages.CREATE_INCIDENT;
c.showCreateIncident = c.data.isLoggedInUser && c.options.show_create_incident_action != 'false' && c.data.properties && c.data.properties.showKBCreateIncident && c.createIncidentURL;
c.showFlagArticle = c.data.properties && c.data.properties.showKBFlagArticle && c.data.properties.showRatingOptions;
c.showMenu = c.data.properties && (c.showFlagArticle || c.data.properties.isEditable || c.showCreateIncident);
$rootScope.stackUrl = window.location.pathname + '?id='+c.data.params.sysparm_article_view_page_id+'%26' + (c.data.params.sysparm_article ? 'sysparm_article=' + c.data.params.sysparm_article : 'sys_kb_id=' + c.data.params.sys_kb_id);
c.stackUrl = $rootScope.stackUrl;
c.flagMessage = '';
c.task ={};
c.imageInstance = '';
c.submitFlagWithoutComment = "${Please enter a comment to be able to flag the article}";
c.submitFlagWithComment = "${Press this button to flag the article}";
$scope.data.toggleSubscribed = ($scope.data.isSubscribed ? true : false);
c.reasons = c.data.feedback_reasons;
c.data.reason = '4';
c.imageInstance = '';
c.minImageHeight = parseInt(c.options.min_image_height) || 100;
c.minImageWidth = parseInt(c.options.min_image_width) || 185;
c.readOnly = false;
c.isMobile = spUtil.isMobile() || cabrillo.isNative();
c.editUrl = c.data.wordOnlineUrl || 'kb_knowledge.do?sys_id=' + c.data.article_sys_id + '&sysparm_stack=' + c.stackUrl;
//Use KB specific stylic for "kb" & 'mesp' portal
c.KBRatingStyle = c.options.kb_rating_style || ($rootScope.portal ? ($rootScope.portal.sys_id == "45d6680fdb52220099f93691f0b8f5ad" || $rootScope.portal.sys_id == "26f2fffb77322300454792718a1061e5") : false);
if(c.data.langList && c.data.langList.length > 1){
for(var lng in c.data.langList){
if(c.data.langList[lng].selected == true){
c.selectedLanguage = c.data.langList[lng];
break;
}
}
}
var payload= {};
payload.name = "View Knowledge Article";
payload.data = {};
payload.data["Article Title"] = c.data.shortDesc;
payload.data["Article SysID"] = c.data.article_sys_id;
payload.data["Language"] = c.selectedLanguage || "en";
snAnalytics.addEvent(payload);
populateBreadCrumbURLs();
function populateBreadCrumbURLs() {
if(c.data.breadCrumb) {
if(c.data.breadCrumb[0].type == 'kb_knowledge_base') {
if($rootScope.showKbHomeLink) {
c.data.breadCrumb[0].url = '?id=' + c.data.kb_knowledge_page + '&kb_id=' + c.data.breadCrumb[0].values.kb_knowledge_base;
} else {
c.data.breadCrumb[0].url = '?id=kb_search&kb_knowledge_base=' + c.data.breadCrumb[0].values.kb_knowledge_base;
}
}
for(var i = 1; i < c.data.breadCrumb.length; i++) {
if(c.data.breadCrumb[i].type == 'kb_category') {
if($rootScope.showKbHomeLink) {
if(c.data.breadCrumb[i].values.kb_category == "NULL_VALUE") {
c.data.breadCrumb.splice(i, 1);
} else {
c.data.breadCrumb[i].url = '?id=kb_category&kb_id=' + c.data.breadCrumb[i].values.kb_knowledge_base + '&kb_category=' + c.data.breadCrumb[i].values.kb_category;
}
} else {
c.data.breadCrumb[i].url = '?id=kb_search&kb_knowledge_base=' + c.data.breadCrumb[i].values.kb_knowledge_base + '&kb_category=' + c.data.breadCrumb[i].values.kb_category;
}
}
}
}
}
if (c.data.page_title) {
// setting default page title for supporting km seo
$window.document.title = c.data.page_title;
if (c.data.article_sys_id)
appendKBSysIdToURL();
}
function appendKBSysIdToURL() {
if ($window) {
if (c.data.params.sys_kb_id) // return if url already contains sys_kb_id
return;
// for supporting km seo, adding kb_sys_id to the url when kb is viewed using sysparm_article (kb number)
$timeout(function() {
$location.search('sys_kb_id', $scope.data.article_sys_id);
$location.search('spa','1');
$location.replace();
// $location.reload(true);
});
}
}
c.showVersions = false;
c.toggleVersions = function(){
c.showVersions = !c.showVersions;
$('#kbVersionInfo').slideToggle("fast");
};
c.selectLanguage = function(ind){
$window.location.replace('?id='+c.data.params.sysparm_article_view_page_id+'&sys_kb_id=' + c.data.langList[ind].sys_id);
};
c.showActionMenu = function(){
if(c.showMenu){
return true;
}
else{
if(c.data.properties && c.data.properties.isSubscriptionEnabled && $window.innerWidth < 992)
return true;
else
return false;
}
}
c.toggleSection = function(field) {
field.collapsed = !field.collapsed;
$('#'+field.column).slideToggle("fast");
};
c.handleSubscribeButtonFocus = function(){
if($scope.data.isSubscribed){
$scope.data.subscribeLabel = $rootScope.messages.UNSUBSCRIBE;
$scope.data.toggleSubscribed = !$scope.data.toggleSubscribed;
}
};
c.handleSubscribeButtonBlur = function(){
if($scope.data.isSubscribed){
$scope.data.subscribeLabel = $rootScope.messages.SUBSCRIBED;
$scope.data.toggleSubscribed = !$scope.data.toggleSubscribed;
}
}
c.closeUnsubscribeModal = function(){
$("#unSubscribeModal").modal('hide');
};
c.handleSubscription = function(confirmation){
c.data.actionName = null;
if(!$scope.data.isSubscribed){
c.data.actionName = 'subscribe';
c.data.articleSysId = $scope.data.article_sys_id;
c.data.articleNum = $scope.data.number;
}
else
{
if($scope.data.isArticleSubscribed && !$scope.data.isArticleSubscribedAtKB){
c.data.actionName = "unsubscribe";
c.data.articleSysId = $scope.data.article_sys_id;
c.data.articleNum = $scope.data.number;
c.data.unsubscribeKB = false;
}
else if(!confirmation){
//$("#unSubscribeModal").modal();
var unsubscribeMessage = "<p>" + c.data.messages.UNSUBSCRIBE_CONTENT + "</p><p><b>" + c.data.messages.UNSUBSCRIBE_CONFIRMATION + "</b></p>";
spModal.open(
{
title: c.data.messages.UNSUBSCRIBE,
buttons : [{label : c.data.messages.NO, cancel : true}, {label: c.data.messages.YES, primary : true}],
message : unsubscribeMessage
}).then(function(){
c.handleSubscription('Y');
}, function(){
c.closeUnsubscribeModal();
});
return;
}
else if(confirmation === 'Y'){
c.data.actionName = "unsubscribe";
c.closeUnsubscribeModal();
c.data.articleSysId = $scope.data.article_sys_id;
c.data.kbSysId = $scope.data.kbSysId;
c.data.articleNum = $scope.data.number;
c.data.kbName = $scope.data.kbName;
c.data.unsubscribeKB = true;
}
}
c.server.get({action : c.data.actionName, kbSysId : c.data.kbSysId, kbName : c.data.kbName, articleSysId : c.data.articleSysId, articleNum : c.data.articleNum, unsubscribeKB : c.data.unsubscribeKB, isArticleSubscribed: c.data.isArticleSubscribed, isKBSubscribed : c.data.isArticleSubscribedAtKB}).then(function(resp){
if(c.data.actionName == 'subscribe'){
$scope.data.isArticleSubscribed = true;
$scope.data.isSubscribed = true;
$scope.data.subscribeLabel = $rootScope.messages.SUBSCRIBED;
}
else{
$scope.data.isArticleSubscribed = false;
$scope.data.isSubscribed = false;
$scope.data.isArticleSubscribedAtKB = false;
$scope.data.subscribeLabel = $rootScope.messages.SUBSCRIBE;
}
c.showUIMessage('info', resp.data.responseMessage);
});
};
c.submitFlagComments = function(){
if(!c.data.comment){
c.flagMessage = "${Please provide a comment to flag the article}";
$("#flagComment").focus();
return false;
}
else{
$("#submitFlagComment").attr("disabled", true);
c.server.get({action : 'saveFlagComment', article_sys_id : c.data.article_sys_id, comment : c.data.comment}).then(function(resp){
if(resp.data.feedbackSuccess){
c.showUIMessage('info', c.data.messages.ARTICLE_FLAGGED);
c.clearComment();
}
else {
c.showUIMessage('error', c.data.messages.RATE_LIMIT_REACHED);
c.clearComment();
}
});
}
};
c.copyPermalink = function(){
var v = document.createElement('textarea');
var permalink = document.location.origin + document.location.pathname + '?id='+c.data.params.sysparm_article_view_page_id+'&sysparm_article=' + $scope.data.number;
v.innerHTML = permalink;
v.className = "sr-only";
document.body.appendChild(v);
v.select();
var result = true;
try {
result = document.execCommand('copy');
}
catch(err){
result = false;
}
finally{
document.body.removeChild(v);
}
if(result === true){
c.showUIMessage('info', c.data.messages.PERMALINK_COPIED);
}
else{
$window.prompt("${Because of a browser limitation the URL can not be placed directly in the clipboard. Please use Ctrl-C to copy the data and escape to dismiss this dialog}", permalink);
}
};
var modal = null;
c.launchFlagModal = function(){
c.clearComment();
modal = $uibModal.open(
{
title : c.data.messages.FLAG_THIS_ARTICLE,
scope : $scope,
templateUrl : 'volvo-kb-flag-article-modal'
});
}
var taskPopUp = $rootScope.$on("sp.kb.feedback.openTaskPopup",function(event,data){
c.ftask = {};
if(data){
c.launchFeedbackTaskModal();
c.ftask.feedback_action = data.feedback_data.action;
c.ftask.feedback_rating = data.feedback_data.rating
c.ftask.action= "createFeedbackTask";
}
});
c.launchFeedbackTaskModal = function(){
c.clearFeedbackTask();
modal = $uibModal.open({
title : c.data.messages.FEEDBACK,
windowClass : 'app-modal-window',
scope : $scope,
templateUrl : 'volvo-kb-feedback-task-modal'
});
modal.closed.then(function(){
if(!c.submitted){
c.data.reason = "4";
c.data.details ="";
}
if(c.ftask.action == "createFeedbackTaskWithFlagComment" && !c.submitted)
return;
modal = null;
c.server.get({action : c.ftask.action,
article_sys_id : c.data.article_sys_id,
reason : c.data.reason,
details : c.data.details,
feedback_action: c.ftask.feedback_action,
rating : c.ftask.feedback_rating
}).then(function(resp){
if(resp.data.responseMessage){
if(resp.data.feedbackSuccess){
c.showUIMessage('info', resp.data.responseMessage);
}else{
c.showUIMessage('error', resp.data.responseMessage);
}
}
});
c.clearFeedbackTask();
});
}
c.clearComment = function(){
$scope.data.comment = '';
c.flagMessage = '';
c.closePopup();
}
c.showUIMessage = function(type,msg){
if(cabrillo.isNative()){
cabrillo.message.showMessage(type != 'error' ? cabrillo.message.SUCCESS_MESSAGE_STYLE : cabrillo.message.ERROR_MESSAGE_STYLE, msg);
}else{
if(type == 'error')
spUtil.addErrorMessage(msg);
else
spUtil.addInfoMessage(msg);
}
}
c.closePopup = function(){
if(modal){
modal.dismiss();
}
}
c.clearFeedbackTask = function(){
c.submitted = false;
c.data.reason = '4';
c.data.details = '';
c.flagMessage = '';
c.ftask = {};
c.closePopup();
}
c.submitFeedbackTask = function(){
if(!c.data.reason){
c.flagMessage = "${Please provide the mandatory details}";
$("#detailsComment").focus();
return false;
}
else{
c.submitted = true;
c.closePopup();
}
}
c.imgModalClose = function(){
c.imageInstance.close();
}
$scope.$on("$destroy", taskPopUp);
}
where to add this in my case? I tried in multiple places and the page load is on loop and never ends. System might crash due to this. Can you point me in the right direction?
TIA 🙂
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-21-2019 01:38 AM
Good Morning,
I use this in the client script to refresh the page:
window.setTimeout(restartscreen,2000);
function restartscreen(){
location.reload(true);
}
The 2000 part is the number of seconds to wait until you trigger the function i.e. 2 seconds
Hope it helps
Kind Regards
Ashley Pyle