How to display Approvals from newest to oldest on ESC portal?

Tejaswi Gundu
Tera Contributor

Hi,

 

I'm having a requirement where client wants to display approvals in ascending order i.e. from newest to oldest on ESC Portal. Currently it is showing in Descending order from oldest to newest.

 

When user wants to check the new approvals, he/she needs to go through all the approvals. So, he wants to display them in Ascending Order.

 

TejaswiGundu_0-1711448654184.png

 

Please share your ideas to achieve the requirement.

 

Thanks in advance,

Tejaswi G

7 REPLIES 7

Hi @Dr Atul G- LNG, Good day!

 

I have checked the link which you have given, there they have used "gr.orderByDesc('sys_created_on');' in server script.

I don't have idea where to add it in server script.

Here is the server script:

(function() {
//Check if current task is survey
data.isTaskSurvey = false;
var filters = $sp.getParameter('filters');
data.selectedFiltersFromTodoPage = [];
if (input && input.action == 'checkTaskType'){
var gr = new GlideRecordSecure(input.table);
if (gr.get(input.sysId) && gr.hr_task_type == 'take_survey')
data.isTaskSurvey = true;
} if(input && input.action == 'addNotification' && new GlidePluginManager().isActive('sn_lp')) {
var pulseUtils = new sn_lp.PulseUtilsAjax();
data.taskInfo = pulseUtils.checkForTriggeredConditions ? pulseUtils.checkForTriggeredConditions(input.table, input.taskId) : {};
}
 
// translated text
data.i18n = {
DELEGATED: gs.getMessage("Delegated"),
DELEGATED_BY: gs.getMessage("Delegated by: {}")
};
 
data.isMobile = gs.isMobile();
data.todoSummaryLeftPanel = true;
data.todosToShow = {
recordsToShow : {},
recordWatchers : []
};
data.watchers =[];
data.async = (input && input.onTicketPage) ? false : true;
 
var util = new sn_hr_sp.todoPageUtils();
data.tabs = util.getTabs();
  data.defaultTab = data.tabs[0].name;
data.queryLimit = todoPageUtils.QUERY_LIMIT;
 
data.todosFilters = $sp.getWidget('todos-filters', {});
 
data.txt = {
empty: {},
onComplete: gs.getMessage('All tasks are Complete'),
title: gs.getMessage('My tasks'),
breadcrumb: gs.getMessage('My tasks')
};
data.txt.empty[data.defaultTab] = {
title: gs.getMessage("You don't have any tasks right now.")
};
 
data.txt.empty.completed = {
title: gs.getMessage("You don't have any completed tasks yet.")
};
 
if (input && input.action == "loadFromTicketPage") {
data.todosToShow.recordsToShow = util.splitInTabs(new sn_hr_sp.hr_PortalUtil().processRecordsForSummary(input.recordsToShow), data.defaultTab);
data.todosToShow.recordWatchers = input.recordWatchers;
data.watchers = data.todosToShow.recordWatchers||[];
data.onTodoPage = false;
data.onTicketPage = true;
data.parentCaseId = input.parent;
data.activitySetName = input.activitySetName;
data.activitySetId = input.activitySetId;
data.selectedTodo = input.todoSelected;
data.currentTodoIndex = (data.todosToShow.recordsToShow[data.defaultTab] && data.todosToShow.recordsToShow[data.defaultTab].length > input.currentTodoIndex) ? input.currentTodoIndex: 0;
data.hideTodoSummary = input.hideTodoSummary;
} else if (input && input.action == "loadTodos") {
data.onTodoPage = true;
data.onTicketPage = false;
if(input.tab){
data.tab = input.tab;
} else{
data.tab = data.defaultTab;
}
if(input.selectedFiltersFromTodoPage){
data.todosToShow = util.getMyTodos(data.queryLimit, [], input.includeTodo,undefined,undefined,input.selectedFiltersFromTodoPage.finalFilterConditions,input.selectedFiltersFromTodoPage.applyFilters,data.tab);
} else{
data.todosToShow = util.getMyTodos(data.queryLimit, [], input.includeTodo,undefined,undefined,undefined,undefined, data.tab);
}
 
data.watchers = data.todosToShow.recordWatchers||[];
} else if (input && input.action == "loadFilteredTodos") {
data.selectedFiltersFromTodoPage = util.fetchSelectedFilters(input.filtersData);
data.onTodoPage = true;
data.onTicketPage = false;
data.todosToShow = util.getMyTodos(data.queryLimit, [], input.includeTodo,undefined,undefined,data.selectedFiltersFromTodoPage.finalFilterConditions,data.selectedFiltersFromTodoPage.applyFilters);
data.watchers = data.todosToShow.recordWatchers||[];
} else if (input && input.action == "insertOrUpdateTodoRecord") {
var noOfRecords = Math.ceil(input.currentCount/data.queryLimit)*data.queryLimit;
if(noOfRecords < (todoPageUtils.QUERY_LIMIT*2))
noOfRecords = todoPageUtils.QUERY_LIMIT*2;
data.onTodoPage = true;
data.onTicketPage = false;
data.newTodosList = util.getMyTodos(noOfRecords,undefined,undefined,undefined,undefined,data.selectedFiltersFromTodoPage);
} else if (input && input.action == "loadMoreTodos") {
data.todosToShow = util.getMyTodos(data.queryLimit,input.excludeList,undefined,undefined,undefined,input.selectedFiltersFromTodoPage.finalFilterConditions,input.selectedFiltersFromTodoPage.applyFilters);
} else if (input && input.action == "loadFillerTodos"){
data.fillerTodosList = util.getMyTodos(input.fillerCount, input.fillerExcludeList,undefined,undefined,undefined,data.selectedFiltersFromTodoPage.finalFilterConditions,data.selectedFiltersFromTodoPage.applyFilters);
}
 
Object.keys(data.todosToShow.recordsToShow).forEach(function(tab) {
(data.todosToShow.recordsToShow[tab] || []).forEach(function(todo) {
if (!todo.displayValueList) return;
todo.displayValueList = todo.displayValueList.map(function (displayValue) {
return GlideSecurityUtils.escapeScript(displayValue);
});
});
});
 
if (data.onTicketPage) {
data.txt.empty[data.defaultTab].message = gs.getMessage('All tasks are Complete');
}
 
})();
Please suggest me where to add it.
Regards,
Tejaswi G

Hi @Tejaswi Gundu 

 

really sorry, I am not a coder to guide you here. 

 

@AshishKM any thoughts

*************************************************************************************************************
If my response proves useful, please indicate its helpfulness by selecting " Accept as Solution" and " Helpful." This action benefits both the community and me.

Regards
Dr. Atul G. - Learn N Grow Together
ServiceNow Techno - Functional Trainer
LinkedIn: https://www.linkedin.com/in/dratulgrover
YouTube: https://www.youtube.com/@LearnNGrowTogetherwithAtulG
Topmate: https://topmate.io/atul_grover_lng [ Connect for 1-1 Session]

****************************************************************************************************************

nkumari
Tera Contributor

Have similar requirement, please suggest for solution