Name
sn_table_builder.ListViewManager
Description
No description available
Script
var ListViewManager = Class.create();
ListViewManager.prototype = {
initialize: function(table, view) {
this.table = table;
this.view = view === 'default' ? '' : view;
this.viewId = this.getViewId();
},
/**
* @param {boolean} - if true gets the users personilized list
*/
getListElements: function(withCurrentUser) {
var elements = [];
var uiList = new GlideRecord(TBConstants.SYS_CLASS_UI_LIST);
// NOTE: consider only top level list view which don't have parent/relationship
uiList.addQuery('name', this.table);
uiList.addQuery('view', this.viewId);
uiList.addNullQuery('parent');
uiList.addNullQuery('relationship');
if (withCurrentUser)
uiList.addQuery('sys_user', gs.getUserID());
else
uiList.addNullQuery('sys_user');
uiList.query();
if (uiList.next()) {
var uiElement = new GlideRecord(TBConstants.SYS_CLASS_UI_LIST_ELEMENT);
uiElement.addQuery('list_id', uiList.getValue('sys_id'));
uiElement.orderBy('position');
uiElement.query();
while (uiElement.next()) {
elements.push(uiElement.getValue('element'));
}
}
return elements;
},
getViewId: function() {
var gr = new GlideRecord(TBConstants.SYS_CLASS_UI_VIEW);
gr.addQuery('name', this.view);
gr.query();
if (gr.next())
return gr.getValue('sys_id');
return '';
},
type: 'ListViewManager'
};
Sys ID
8487c3b4733150107419c907fbf6a797