The client controller is not working on Service Portal.

Shri8
Tera Contributor

There are two variables one as widget and the other is glide list. The widget variable display in tree structure format.

The value choosen in widget variable should be populated in glide list variable. As of now, the value choosen in widget variable is populating in glide list variable but on choosing the new value the old value is disappearing. Please suggest.

Below is the script (Client controller on widget) -- 

 

function($scope,spUtil) {
  /* widget controller */
  var c = this;
 
$scope.pageNo = 1;
 
$scope.searching = false;
 
//Retrieve initial tree list
getPage($scope.pageNo,'');
 
$scope.$watch('dep.currentNode', function( newObj, oldObj ) {
    if( $scope.dep && angular.isObject($scope.dep.currentNode)) {
var id = $scope.dep.currentNode.id;
var depID = $scope.dep.currentNode.depID;
$scope.page.g_form.setValue('u_select_values','','');
var selected = $scope.page.g_form.getValue('u_select_values');
var sysIDs = '';
var labels = '';
 
alert("Tree Picker");
//Get server to build new value/label pairs to insert into list collector
c.server.get({id:id,selected:selected}).then(function(r) {
sysIDs = r.data.sys_ids;
labels = r.data.labels;
$scope.page.g_form.setValue('u_select_values',sysIDs,labels);
r.data.sys_ids = '';
r.data.labels = '';
});
    }
}, false);
 
$scope.getPage = function(pageNumber) {
$scope.pageNo = pageNumber;
getPage($scope.pageNo,$scope.data.filter);
}
 
$scope.nextPage = function() {
$scope.pageNo++;
$scope.newPageNumber = $scope.pageNo;
getPage($scope.pageNo,$scope.data.filter);
 
}
 
$scope.getFilter = function() {
var filter = $scope.data.filter;
if (filter.length == 1) //Dont search for only 1 character
return;
$scope.pageNo = 1;
$scope.searching = true;
getPage($scope.pageNo,filter);
}
 
function getPage(page,filter) {
c.server.get({page:page,filter:filter}).then(function(r) {
$scope.searching = false;
$scope.data.treedata = r.data.treedata;
$scope.data.count = r.data.count;
$scope.data.pageSize = r.data.pageSize;
});
}
}
5 REPLIES 5

Shri8
Tera Contributor

@Sunny3008 -- Please suggest on this.

Hello @Shri8 ,

 

Can you please try with following code.

 

function($scope,spUtil) {
  /* widget controller */
  var c = this;
 
$scope.pageNo = 1;
 
$scope.searching = false;
 
//Retrieve initial tree list
getPage($scope.pageNo,'');
 
$scope.$watch('dep.currentNode', function( newObj, oldObj ) {
    if( $scope.dep && angular.isObject($scope.dep.currentNode)) {
var id = $scope.dep.currentNode.id;
var depID = $scope.dep.currentNode.depID;
$scope.page.g_form.setValue('u_select_values','','');
var selected = $scope.page.g_form.getValue('u_select_values');
var sysIDs = '';
var labels = '';
 
alert("Tree Picker");
//Get server to build new value/label pairs to insert into list collector
c.server.get({id:id,selected:selected}).then(function(r) {
sysIDs = r.data.sys_ids;
labels = r.data.labels;
var temp=$scope.page.g_form.getValue('u_select_values').toString()+','+sysIDs.tostring();
$scope.page.g_form.setValue('u_select_values',temp);
r.data.sys_ids = '';
r.data.labels = '';
});
    }
}, false);
 
$scope.getPage = function(pageNumber) {
$scope.pageNo = pageNumber;
getPage($scope.pageNo,$scope.data.filter);
}
 
$scope.nextPage = function() {
$scope.pageNo++;
$scope.newPageNumber = $scope.pageNo;
getPage($scope.pageNo,$scope.data.filter);
 
}
 
$scope.getFilter = function() {
var filter = $scope.data.filter;
if (filter.length == 1) //Dont search for only 1 character
return;
$scope.pageNo = 1;
$scope.searching = true;
getPage($scope.pageNo,filter);
}
 
function getPage(page,filter) {
c.server.get({page:page,filter:filter}).then(function(r) {
$scope.searching = false;
$scope.data.treedata = r.data.treedata;
$scope.data.count = r.data.count;
$scope.data.pageSize = r.data.pageSize;
});
}
}

Shri8
Tera Contributor

Hi @Sunny3008 -- The script is not working. Could you please suggest.

Hello @Shri8 ,

 

What output are you getting by the above code?