Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

How to Sort Items in "ALL" and "Pinned" Tabs on Change Catalog Vie

NikhithaNikki
Tera Contributor

When creating a new Change request in our ServiceNow instance, we see four tabs in the catalog view: Pinned, Models, Preapproved, and All.

The Models and Preapproved tabs are already sorted in a meaningful order, but the Pinned and All tabs appear unsorted, making it harder for users to find relevant items quickly.

I'd like to know:

  • Is there a way to customize the sorting of items in the All and Pinned tabs?
  • Can this be done via configuration, or does it require scripting or customization?
  • Are there any best practices or recommended approaches for sorting catalog items in these views?

Any guidance or examples would be greatly appreciated!

Thanks in advance!

NikhithaNikki_0-1754945185771.png

 

I have added below script in "StandardChangeTemplate" But it is only working for pre approved tab. It is not working for ALL , Pinned tabs.

var StandardChangeTemplate = Class.create();

StandardChangeTemplate.findById = StandardChangeTemplateSNC.findById;
StandardChangeTemplate.findAll = StandardChangeTemplateSNC.findAll;

StandardChangeTemplate.prototype = Object.extendsObject(StandardChangeTemplateSNC, {

    initialize: function(_gr, _gs) {
        StandardChangeTemplateSNC.prototype.initialize.call(this, _gr, _gs);
    },

    type: "StandardChangeTemplate"
});

StandardChangeTemplate.findAll = function(orderBy, textSearch, encodedQuery) {
    orderBy = orderBy || ChangeProcess.NAME;

    var changeRecordProducerGr = new GlideRecordSecure(StandardChangeTemplateSNC.CHANGE_RECORD_PRODUCER);
    changeRecordProducerGr.addActiveQuery();
    changeRecordProducerGr.addQuery("retired", false);

    if (textSearch !== undefined && textSearch !== "undefined" && textSearch.trim() !== "")
        changeRecordProducerGr.addQuery("name", "CONTAINS", textSearch).addOrCondition("short_description", "CONTAINS", textSearch);

    if (encodedQuery !== undefined && encodedQuery !== "undefined" && encodedQuery.trim() !== "")
        changeRecordProducerGr.addEncodedQuery(encodedQuery);

    changeRecordProducerGr.orderBy(orderBy);
    changeRecordProducerGr.query();

    //Get a list of readable templates which might have user criteria in place if enabled
    if ((gs.getProperty("com.snc.change_request.standard_change.use_user_criteria", 'true') === 'true') && (gs.getProperty("glide.sc.use_user_criteria", 'true') === 'true')) {
        var readableRecords = [];
        while (changeRecordProducerGr.next()) {
            var sysId = changeRecordProducerGr.getUniqueValue();
            if (new sn_sc.CatItem(sysId).canView())
                readableRecords.push(sysId);
        }

        changeRecordProducerGr = new GlideRecord(StandardChangeTemplateSNC.CHANGE_RECORD_PRODUCER);
        changeRecordProducerGr.addQuery('sys_id', "IN", readableRecords.join());
// START OF MODIFIED CODE THAT ENSURES CARDS ARE SORTED IN ORDER
        changeRecordProducerGr.orderBy(orderBy);
// END OF MODIFIED CODE THAT ENSURES CARDS ARE SORTED IN ORDER
        changeRecordProducerGr.query();
    }

    return changeRecordProducerGr;
};

 

   Thanks!
0 REPLIES 0