Goal
Extend the List view of Inbox (/aem/inbox,/mnt/overlay/cq/inbox/content/inbox.html) and add column - Path
Also check column provider
Demo | Package Install | Github
Product
Extension
1) Login to CRXDE Lite, create folder (nt:folder) /apps/eaem-touchui-inbox-add-column-folder
2) Create clientlib (type cq:ClientLibraryFolder) /apps/eaem-touchui-inbox-add-column-folder/clientlib and set a property categories of String[] type to [cq.inbox.gui], dependencies of type String[] with value lodash
3) Create file ( type nt:file ) /apps/eaem-touchui-inbox-add-column-folder/clientlib/js.txt, add the following
add-column.js
4) Create file ( type nt:file ) /apps/eaem-touchui-inbox-add-column-folder/clientlib/add-column.js, add the following code
Product
Extension
Solution
1) Login to CRXDE Lite, create folder (nt:folder) /apps/eaem-touchui-inbox-add-column-folder
2) Create clientlib (type cq:ClientLibraryFolder) /apps/eaem-touchui-inbox-add-column-folder/clientlib and set a property categories of String[] type to [cq.inbox.gui], dependencies of type String[] with value lodash
3) Create file ( type nt:file ) /apps/eaem-touchui-inbox-add-column-folder/clientlib/js.txt, add the following
add-column.js
4) Create file ( type nt:file ) /apps/eaem-touchui-inbox-add-column-folder/clientlib/add-column.js, add the following code
(function($, $document){
var _ = window._,
INBOX_UI_PAGE_VANITY = "/aem/inbox",
INBOX_UI_PAGE = "/mnt/overlay/cq/inbox/content/inbox.html",
LAYOUT_LIST_VIEW = "list",
columnAdded = false;
$document.on("foundation-contentloaded", addColumn);
function isInboxPage() {
var pathName = window.location.pathname;
return ((pathName.indexOf(INBOX_UI_PAGE) >= 0) || (pathName.indexOf(INBOX_UI_PAGE_VANITY) >= 0));
}
function addColumn(){
if(!isInboxPage() || columnAdded){
return;
}
var $thead = $("thead");
if(_.isEmpty($thead)){
return;
}
columnAdded = true;
$thead.find("tr").append(getFolderColumnHeader());
addContent();
}
function addContent(){
var $table = $("table"),
foundationLayout = $table.data("foundation-layout");
if(_.isEmpty(foundationLayout)){
return;
}
var layoutId = foundationLayout.layoutId;
if(layoutId !== LAYOUT_LIST_VIEW){
return;
}
$(".foundation-collection-item").each(function(index, item){
itemHandler($(item) );
});
}
function itemHandler($item){
var payLoadLink = $item.data("payload-link");
$item.append(getListCellHtml(_.isEmpty(payLoadLink) ? "" : payLoadLink.substring(payLoadLink.indexOf("/content"))));
}
function getListCellHtml(itemName){
return '<td is="coral-table-cell">' + itemName + '</td>';
}
function getFolderColumnHeader(){
return '<th is="coral-table-headercell">Path</th>';
}
}(jQuery, jQuery(document)));


No comments:
Post a Comment