How to add a column to incident list in Portal

Alon Grod
Tera Expert

Hi,

How can I add another column to the list. I tried to go to the widget but there is no list of fields.

 

12 REPLIES 12

didnt help

Mike_R
Kilo Patron
Kilo Patron

Usually the Data Table widget let's you edit the instance options and add or remove columns.

From your screenshot, it looks like this is a custom widget. Can you please go into the widget code and see if the columns are hardcoded?

they are not

Are you able to share the code for the custom widget? This way we can look to see how it's deciding what columns to display.

 

 

Server:

(function() {
deleteOptions(['table','field_list','filter','order_by', 'order_direction','order','maximum_entries']);
data.window_size = '20';


if (input) {
data.table = input.table;
data.view = input.view;
} else {
data.table = $sp.getParameter('table') || $sp.getParameter('t');
data.view = $sp.getParameter('view');
}

if (!data.table) {
data.invalid_table = true;
data.table_label = "";
return;
}

var gr = new GlideRecordSecure(data.table);
if (!gr.isValid()) {
data.invalid_table = true;
data.table_label = data.table;
//data.table_label ="Incidents";
return;
}

// page is where the record URLs go, URL parameter wins
data.page_id = $sp.getParameter("target_page_id");
if (!data.page_id) {
var sp_page = $sp.getValue('sp_page');
if (sp_page) {
var pageGR = new GlideRecord('sp_page');
pageGR.get(sp_page);
data.page_id = pageGR.id.getDisplayValue();
}
}

// widget parameters
data.table_label = gr.getLabel();

//data.table_label ="Incidents";
data.fields = $sp.getListColumns(data.table, data.view);
copyParameters(data, ['p', 'o', 'd', 'filter']);
copyParameters(data, ['relationship_id', 'apply_to', 'apply_to_sys_id']);
data.filterACLs = true;
data.show_new = true;
data.show_keywords = true;
data.show_breadcrumbs = true;
data.fromUrl = true;
data.headerTitle = (options.use_instance_title == "true") ? options.title : gr.getPlural();
data.enable_filter = input.enable_filter || options.enable_filter == true || options.enable_filter == "true";
if (data.page_id=='sapiens_csm_ticket_case'){
data.dataTableWidget = $sp.getWidget('case_incident_data_table', data);
}
else{
data.dataTableWidget = $sp.getWidget('request_data_table', data);
}


function copyParameters(to, names) {
names.forEach(function(name) {
data[name] = $sp.getParameter(name);
})
}

// in case this widget is tied to the wrong instance type
function deleteOptions(names) {
names.forEach(function(name) {
delete options[name];
})
}
})()

 

Client:

function($scope, $rootScope, $location, spUtil, $timeout, spAriaFocusManager) {
var canNavigate = true;
if ($scope.data.dataTableWidget)
angular.extend($scope.data.dataTableWidget.options, $scope.options);

$scope.$on('data_table.click', callDataClick);

$scope.$on('select2.ready', function(e, $el){
if ($scope.data.invalid_table){
e.stopPropagation();
$el.select2('open');
}
})

$scope.selectedTable = {
displayValue: $scope.data.table,
value: $scope.data.table
}

function resetParams(){
delete $scope.data.p;
delete $scope.data.o;
delete $scope.data.d;
delete $scope.data.q;
delete $scope.data.table;
}

$scope.onChange = function() {
resetParams();
$scope.data.table = $scope.selectedTable.value;
$scope.data.fields = ""; // reset
$scope.data.invalid_table = false;
getData(true);
}

function callDataClick(e, parms) {
var oid = $location.search().id;
var p = $scope.data.page_id || 'form';
var s = {id: p, table: parms.table, sys_id: parms.sys_id, view: $scope.data.view};
if (oid == p) {
s.spa = 1;
var t = $location.search();
s = angular.extend(t, s);
$rootScope.$broadcast('$sp.list.click', s);
}

var newURL = $location.search(s);
spAriaFocusManager.navigateToLink(newURL.url());
}

function getData(updateUrl) {
var f = $scope.data;
spUtil.update($scope).then(function(data) {
$scope.data.dataTableWidget = null;
$timeout(function(){
$scope.data.dataTableWidget = data.dataTableWidget;
angular.extend($scope.data.dataTableWidget.options, $scope.options);
if (updateUrl)
setPermalink(f.table);
});
});
}

function setPermalink(table) {
$scope.ignoreLocationChange = true;
var searchParms = $location.search();
var search = {
spa: 1,
table: table,
id: searchParms.id
};
$location.search(search);
}
}