Expand my Community achievements bar.

July 31st AEM Gems Webinar: Elevate your AEM development to master the integration of private GitHub repositories within AEM Cloud Manager.
SOLVED

AEM 6.4 Touch UI Customization of inbox items

Avatar

Level 1

We have a requirement to customize the list of items in the inbox. We have a business logic to identify / build the list of items.

When I tried to customize /libs/cq/workflow/components/inbox/list/json.jsp, I am able to see the data reflecting when called the URL explicitly http://localhost:4504/libs/cq/workflow/content/inbox/list.json .

Also, when I check on Custom UI i.e. http://localhost:4504/inbox the changes reflect for example logs.

However, these changes do not reflect on Touch UI i.e. http://localhost:4504/aem/inbox . Touch UI is still showing all the items assigned to the logged in user only. There is no log registered that was added to json.jsp.

Please guide on which file is fetching and rendering the inbox list for Touch UI. 

1 Accepted Solution

Avatar

Correct answer by
Level 3

The logic to fetch or create data for TouchUI inbox is not at the front end as in case of classicUI but at the Java side. below is the basic flow:

A request to '/aem/inbox' resolves to path '/libs/cq/inbox/content/inbox'

This renders data per [1] which creates the html page per [2]

At the same time [1] triggers a get request to fetch the data for the inbox page [3] which is handled by a servlet [4] and used by [2] to create the complete inbox page

Further on logic goes to [5] and [6] to fetch the data per the logic

[1] /libs/cq/inbox/content/inbox/jcr:content/views/list/datasource

[2] /libs/cq/inbox/gui/components/inbox/inboxitem/list/list.html

[3] cq/inbox/gui/components/inbox/datasource/itemsdatasource

[4] com.adobe.cq.inbox.impl.servlet.ItemsDataSourceServlet.java

[5] com.adobe.granite.workflow.core.WorkflowSessionImpl.java

[6] com.adobe.granite.workflow.core.jcr.WorkItemManager.java

View solution in original post

4 Replies

Avatar

Employee

/libs/cq/inbox/content/inbox

is a good starting point for touch UI customizations

Avatar

Level 1

@shunnar, @manasid69383774

I am also having same business requirement and getting my custom item list in http://localhost:4502/libs/cq/workflow/content/inbox/list.json

Can I extend / implement com.adobe.cq.inbox.ui.InboxItem to use my custom file for rendering?

If so, how? Also, how can I get which class is implementing this InboxItem interface that is being used in list.html. 

Avatar

Correct answer by
Level 3

The logic to fetch or create data for TouchUI inbox is not at the front end as in case of classicUI but at the Java side. below is the basic flow:

A request to '/aem/inbox' resolves to path '/libs/cq/inbox/content/inbox'

This renders data per [1] which creates the html page per [2]

At the same time [1] triggers a get request to fetch the data for the inbox page [3] which is handled by a servlet [4] and used by [2] to create the complete inbox page

Further on logic goes to [5] and [6] to fetch the data per the logic

[1] /libs/cq/inbox/content/inbox/jcr:content/views/list/datasource

[2] /libs/cq/inbox/gui/components/inbox/inboxitem/list/list.html

[3] cq/inbox/gui/components/inbox/datasource/itemsdatasource

[4] com.adobe.cq.inbox.impl.servlet.ItemsDataSourceServlet.java

[5] com.adobe.granite.workflow.core.WorkflowSessionImpl.java

[6] com.adobe.granite.workflow.core.jcr.WorkItemManager.java

Avatar

Level 1

Thanks @vijkumar for your response.

As these files can't be customized, I will reach out to business and seek a different solution.