Expand my Community achievements bar.

Learn about Edge Delivery Services in upcoming GEM session
SOLVED

Sort aem 6.5 inbox based on column

Avatar

Level 4

Hi Team,

I have a requirement to sort aem 6.5 inbox based on custom column.

OOTB availability, steps-

1. Navigate to /aem/inbox

2. Select settings from right panel and opt sort

3. It opens a dialog which shows the fields which could be sorted (populated via /libs/cq/inbox/content/inbox/dialogs/inboxsettingsdialog/items/inboxsettingsform)

 

Now ,in the above dropdown I want my custom column name to be added and available for sorting.

I was able to achieve adding the new column in the dropdown. However the sort is not working as expected.

 

On click of save of this dialog it saves the data to /libs/cq/inbox/gui/components/inbox/preferences.json and the submitted json looks like below-

manisha594391_0-1612996458846.png

 

I wanted to understand in order to do this customization, what should be the sortByProperty value. Also, which ootb aem service gets invoked to do the sorting
1 Accepted Solution

Avatar

Correct answer by
Community Advisor

Hi @manisha594391,

On submit of Inbox Settings dialog (after selecting sort property and sort order), this preference is saved to user node via a POST call to user path/preferences

(Eg: http://localhost:4502/home/users/8/8knGQKO0VU9chrDmTnwz/preferences - Cross check your preferences node in CRXDE after saving settings dialog, you should see the property named cq.inbox.settings ) 

This preferences are considered for Filtering while rendering the Active Inbox items and the implementation is hidden.

 

High level detail of OOTB flow for Inbox items display.

Customization in this case is like rewriting whole of the implementation. 

View solution in original post

3 Replies

Avatar

Correct answer by
Community Advisor

Hi @manisha594391,

On submit of Inbox Settings dialog (after selecting sort property and sort order), this preference is saved to user node via a POST call to user path/preferences

(Eg: http://localhost:4502/home/users/8/8knGQKO0VU9chrDmTnwz/preferences - Cross check your preferences node in CRXDE after saving settings dialog, you should see the property named cq.inbox.settings ) 

This preferences are considered for Filtering while rendering the Active Inbox items and the implementation is hidden.

 

High level detail of OOTB flow for Inbox items display.

Customization in this case is like rewriting whole of the implementation. 

Avatar

Level 4

Thanks @Vijayalakshmi_S for the inputs.

I updated the settings and tried to enable sorting using column other than start date, may be "Assignee" for example.

As I mentioned earlier, the property "cq.inbox.settings" gets updated in the user preferences as below- { "sharingPreferences": { "sharesInboxWith": [], "rejectedRequests": [], "pendingRequestMap": {} }, "outOfOfficePreferences": { "isOutOfOffice": false, "dateRange": { "startTime": 1605739898157, "endTime": 0 }, "outOfOfficeDesignates": [], "isOutOfOfficeDesignateProvided": false }, "sortByProperty": "assignee", "sortOrder": "ASC" }

 

Now, here "sortByProperty" is set to assignee and the sortOrder is ASC. But still the data is not sorted based on "assignee column instead it continues to get sorted with "Start date" column.

To add "assignee" is available in the workflow metadata node.

Avatar

Community Advisor

Implementation for filtering/sorting is hidden in Granite Workflow API. So we will not be able to arrive at what other columns/property can be used for sorting. This is the reason why I mentioned Customization for this use case is like rewriting the implementation.